deserialize_individually macro fails clippy due to unnecessary mut
Nobody has claimed this yet.
Assessment
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Newbie friendliness
- 45/100
Research direction
Open src/arena/saveload.rs and inspect the deserialize_individually macro, especially the entities argument passed to DeserializeComponents::deserialize. Run Clippy to confirm the unnecessary mutable-reference warning, then verify that the warning is gone while deserialization still works.
Written by the indexing model from the issue text.
Description
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)
- Dominant language
- Rust
- Stars
- 967
- Forks
- 166
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from amethyst/rustrogueliketutorial
-
Difficulty 1/5 Under an hour Newbie friendliness 68/100
-
Difficulty 1/5 Under an hour Newbie friendliness 68/100
-
Difficulty 1/5 Under an hour Newbie friendliness 68/100
-
Difficulty 1/5 Under an hour Newbie friendliness 68/100
-
Difficulty 1/5 1-3 hours Newbie friendliness 45/100
All issues in amethyst/rustrogueliketutorial
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
install: root SSH tmpfiles.d drop-in is labeled etc_runtime_t instead of etc_tPossibly taken @andrewdunndev claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
[Misdetection] `text/tab-separated-values` file misdetected as `text/tsv`Possibly taken @bact claimed this today. Openmisdetection needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
C-bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 2 days
-
vxc prints a debug line '[flat-codegen] emitted module via the flat path' on every compilePossibly taken @YodHeVauHe claimed this today. Opendevex good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day