Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

deserialize_individually macro fails clippy due to unnecessary mut

未关闭
#149 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
1/5
预计耗时
1 小时以内
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
停滞
技术栈
rust
领域
tooling

调研方向

打开 src/arena/saveload.rs 并检查 deserialize_individually 宏,尤其是传递给 DeserializeComponents::deserialize 的 entities 参数。运行 Clippy 以确认不必要的可变引用警告,然后验证该警告已消失且反序列化仍然正常工作。

由索引模型根据 Issue 内容生成。

描述

Here https://bfnightly.bracketproductions.com/rustbook/chapter_11.html#actually-loading-the-game

This code:


macro_rules! deserialize_individually {
    ($ecs:expr, $de:expr, $data:expr, $( $type:ty),*) => {
        $(
        DeserializeComponents::<NoError, _>::deserialize(
            &mut ( &mut $ecs.write_storage::<$type>(), ),
            &mut $data.0, // entities

can be


macro_rules! deserialize_individually {
    ($ecs:expr, $de:expr, $data:expr, $( $type:ty),*) => {
        $(
        DeserializeComponents::<NoError, _>::deserialize(
            &mut ( &mut $ecs.write_storage::<$type>(), ),
            &$data.0, // entities

to prevent this clippy warning:

warning: The function/method `DeserializeComponents<NoError, _>::deserialize` doesn't need a mutable reference
   --> src/arena/saveload.rs:35:13
    |
35  |               &mut $data.0, // entities
    |               ^^^^^^^^^^^^
...
115 | /         deserialize_individually!(
116 | |             ecs,
117 | |             de,
118 | |             d,
...   |
135 | |             SerializationHelper
136 | |         );
    | |__________- in this macro invocation
    |
    = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed
    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

warning: The function/method `DeserializeComponents<NoError, _>::deserialize` doesn't need a mutable reference
   --> src/arena/saveload.rs:35:13
    |
35  |               &mut $data.0, // entities
    |               ^^^^^^^^^^^^
...
115 | /         deserialize_individually!(
116 | |             ecs,
117 | |             de,
118 | |             d,
...   |
135 | |             SerializationHelper
136 | |         );
    | |__________- in this macro invocation
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed
    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
主要语言
Rust
星标
967
派生
166
PR 合并指标
30 天内没有已合并 PR

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

amethyst/rustrogueliketutorial 的其他 Issue

查看 amethyst/rustrogueliketutorial 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。