[INFO] crate constellation 0.2.0 is already in cache [INFO] extracting crate constellation 0.2.0 into work/ex/clippy-test-run/sources/stable/reg/constellation/0.2.0 [INFO] extracting crate constellation 0.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/constellation/0.2.0 [INFO] validating manifest of constellation-0.2.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of constellation-0.2.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing constellation-0.2.0 [INFO] finished frobbing constellation-0.2.0 [INFO] frobbed toml for constellation-0.2.0 written to work/ex/clippy-test-run/sources/stable/reg/constellation/0.2.0/Cargo.toml [INFO] started frobbing constellation-0.2.0 [INFO] finished frobbing constellation-0.2.0 [INFO] frobbed toml for constellation-0.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/constellation/0.2.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting constellation-0.2.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/constellation/0.2.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 67fe1ecdcafb12ac16d097437fe4e60bbbf706ecc6dfa2dbe8c6ef98107524f0 [INFO] running `"docker" "start" "-a" "67fe1ecdcafb12ac16d097437fe4e60bbbf706ecc6dfa2dbe8c6ef98107524f0"` [INFO] [stderr] Checking rayon v0.6.0 [INFO] [stderr] Checking constellation v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/entities.rs:164:13 [INFO] [stderr] | [INFO] [stderr] 164 | entities: entities, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `entities` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/entities.rs:165:13 [INFO] [stderr] | [INFO] [stderr] 165 | iter: iter, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/world.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | resource: resource, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `resource` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/world.rs:480:13 [INFO] [stderr] | [INFO] [stderr] 480 | entities: entities, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `entities` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/world.rs:481:13 [INFO] [stderr] | [INFO] [stderr] 481 | read_resources: read_resources, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `read_resources` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/world.rs:482:13 [INFO] [stderr] | [INFO] [stderr] 482 | write_resources: write_resources, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `write_resources` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/entities.rs:164:13 [INFO] [stderr] | [INFO] [stderr] 164 | entities: entities, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `entities` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/entities.rs:165:13 [INFO] [stderr] | [INFO] [stderr] 165 | iter: iter, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/world.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | resource: resource, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `resource` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/world.rs:480:13 [INFO] [stderr] | [INFO] [stderr] 480 | entities: entities, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `entities` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/world.rs:481:13 [INFO] [stderr] | [INFO] [stderr] 481 | read_resources: read_resources, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `read_resources` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/world.rs:482:13 [INFO] [stderr] | [INFO] [stderr] 482 | write_resources: write_resources, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `write_resources` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entities.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | return Entity::new(index as Index, 0 as Generation); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Entity::new(index as Index, 0 as Generation)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/world.rs:19:29 [INFO] [stderr] | [INFO] [stderr] 19 | const ENTITY_DATA = 0b00000001 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:144:9 [INFO] [stderr] | [INFO] [stderr] 144 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/resource.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | return component; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `component` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bitset.rs:20:28 [INFO] [stderr] | [INFO] [stderr] 20 | pub const MAX_EID: usize = 2 << MAX - 1; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider parenthesizing your expression: `2 << (MAX - 1)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bitset.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bitset.rs:552:9 [INFO] [stderr] | [INFO] [stderr] 552 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/entities.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | return Entity::new(index as Index, 0 as Generation); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Entity::new(index as Index, 0 as Generation)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/world.rs:19:29 [INFO] [stderr] | [INFO] [stderr] 19 | const ENTITY_DATA = 0b00000001 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/world.rs:144:9 [INFO] [stderr] | [INFO] [stderr] 144 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `entities::*` [INFO] [stderr] --> src/world.rs:594:9 [INFO] [stderr] | [INFO] [stderr] 594 | use entities::*; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `resource::*` [INFO] [stderr] --> src/world.rs:595:9 [INFO] [stderr] | [INFO] [stderr] 595 | use resource::*; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/resource.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | return component; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `component` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `entities::*` [INFO] [stderr] --> src/resource.rs:463:9 [INFO] [stderr] | [INFO] [stderr] 463 | use entities::*; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `world::*` [INFO] [stderr] --> src/resource.rs:464:9 [INFO] [stderr] | [INFO] [stderr] 464 | use world::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bitset.rs:20:28 [INFO] [stderr] | [INFO] [stderr] 20 | pub const MAX_EID: usize = 2 << MAX - 1; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider parenthesizing your expression: `2 << (MAX - 1)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bitset.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bitset.rs:552:9 [INFO] [stderr] | [INFO] [stderr] 552 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entities.rs:35:41 [INFO] [stderr] | [INFO] [stderr] 35 | Entity((index & INDEX_MASK) | ((generation as u32 & GENERATION_MASK) << INDEX_BITS)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(generation)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `entities::Entities` [INFO] [stderr] --> src/entities.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | / pub fn new() -> Entities { [INFO] [stderr] 66 | | Entities { [INFO] [stderr] 67 | | generations: Vec::new(), [INFO] [stderr] 68 | | free: SegQueue::new(), [INFO] [stderr] ... | [INFO] [stderr] 72 | | } [INFO] [stderr] 73 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 63 | impl Default for entities::Entities { [INFO] [stderr] 64 | fn default() -> Self { [INFO] [stderr] 65 | Self::new() [INFO] [stderr] 66 | } [INFO] [stderr] 67 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/entities.rs:91:36 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn is_alive(&self, entity: &Entity) -> bool { [INFO] [stderr] | ^^^^^^^ help: consider passing by value instead: `Entity` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/entities.rs:118:22 [INFO] [stderr] | [INFO] [stderr] 118 | deleted: self.deleted_pool.try_pop().unwrap_or(Vec::new()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.deleted_pool.try_pop().unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/entities.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | self.generations[index] = self.generations[index] + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.generations[index] += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/entities.rs:134:17 [INFO] [stderr] | [INFO] [stderr] 134 | freed = freed + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `freed += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/entities.rs:218:36 [INFO] [stderr] | [INFO] [stderr] 218 | pub fn is_alive(&self, entity: &Entity) -> bool { [INFO] [stderr] | ^^^^^^^ help: consider passing by value instead: `Entity` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/entities.rs:229:26 [INFO] [stderr] | [INFO] [stderr] 229 | pub fn to_change_set(self) -> EntityChangeSet { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] error: mutable borrow from immutable input(s) [INFO] [stderr] --> src/world.rs:34:37 [INFO] [stderr] | [INFO] [stderr] 34 | pub unsafe fn get_mut(&self) -> &mut Resource { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::mut_from_ref)] on by default [INFO] [stderr] note: immutable borrow here [INFO] [stderr] --> src/world.rs:34:27 [INFO] [stderr] | [INFO] [stderr] 34 | pub unsafe fn get_mut(&self) -> &mut Resource { [INFO] [stderr] | ^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_from_ref [INFO] [stderr] [INFO] [stderr] error: mutable borrow from immutable input(s) [INFO] [stderr] --> src/world.rs:44:53 [INFO] [stderr] | [INFO] [stderr] 44 | pub unsafe fn get_as_mut(&self) -> &mut T { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: immutable borrow here [INFO] [stderr] --> src/world.rs:44:43 [INFO] [stderr] | [INFO] [stderr] 44 | pub unsafe fn get_as_mut(&self) -> &mut T { [INFO] [stderr] | ^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_from_ref [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/world.rs:66:25 [INFO] [stderr] | [INFO] [stderr] 66 | fn to_resource_cell(self) -> ResourceCell { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `world::World` [INFO] [stderr] --> src/world.rs:97:5 [INFO] [stderr] | [INFO] [stderr] 97 | / pub fn new() -> World { [INFO] [stderr] 98 | | World { [INFO] [stderr] 99 | | entities: Entities::new(), [INFO] [stderr] 100 | | resources: FnvHashMap::default(), [INFO] [stderr] ... | [INFO] [stderr] 103 | | } [INFO] [stderr] 104 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 95 | impl Default for world::World { [INFO] [stderr] 96 | fn default() -> Self { [INFO] [stderr] 97 | Self::new() [INFO] [stderr] 98 | } [INFO] [stderr] 99 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/world.rs:220:22 [INFO] [stderr] | [INFO] [stderr] 220 | fn to_change_set(self) -> EntityChangeSet { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `world::SystemCommandBuffer` [INFO] [stderr] --> src/world.rs:250:5 [INFO] [stderr] | [INFO] [stderr] 250 | / pub fn new() -> SystemCommandBuffer { [INFO] [stderr] 251 | | SystemCommandBuffer { batches: Vec::new() } [INFO] [stderr] 252 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 237 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/world.rs:281:12 [INFO] [stderr] | [INFO] [stderr] 281 | if batch.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!batch.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/world.rs:493:13 [INFO] [stderr] | [INFO] [stderr] 493 | / pub fn $name<'b, $($read,)* $($write,)*>(&self, $($read: &'b $read,)* $($write: &'b mut $write,)*) -> EntityIteratorBuilder<'a, ($(&'b $read,)*), ($(&'b mut $write,)*)> [INFO] [stderr] 494 | | where $($read: EntityResource,)* [INFO] [stderr] 495 | | $($write: EntityResource,)* [INFO] [stderr] 496 | | { [INFO] [stderr] 497 | | EntityIteratorBuilder::new(self.entities, ($($read,)*), ($($write,)*)) [INFO] [stderr] 498 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 589 | impl_entity_iterators!(iter_r4w3 [R0:R0Api, R1:R1Api, R2:R2Api, R3:R3Api] [W0:W0Api, W1:W1Api, W3:W2Api] [BitIter>, BitSetAnd, BitSetAnd<&BitSet, &BitSet>>>>]); [INFO] [stderr] | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `resource::MapResource` [INFO] [stderr] --> src/resource.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / pub fn new() -> MapResource { [INFO] [stderr] 109 | | MapResource { [INFO] [stderr] 110 | | filter: BitSet::new(), [INFO] [stderr] 111 | | storage: MapStorage::new(), [INFO] [stderr] 112 | | } [INFO] [stderr] 113 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 106 | impl Default for resource::MapResource { [INFO] [stderr] 107 | fn default() -> Self { [INFO] [stderr] 108 | Self::new() [INFO] [stderr] 109 | } [INFO] [stderr] 110 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/resource.rs:211:9 [INFO] [stderr] | [INFO] [stderr] 211 | self.m.get(&entity).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.m[&entity]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `resource::VecResource` [INFO] [stderr] --> src/resource.rs:248:5 [INFO] [stderr] | [INFO] [stderr] 248 | / pub fn new() -> VecResource { [INFO] [stderr] 249 | | VecResource { [INFO] [stderr] 250 | | filter: BitSet::new(), [INFO] [stderr] 251 | | storage: VecStorage::new(), [INFO] [stderr] 252 | | } [INFO] [stderr] 253 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 246 | impl Default for resource::VecResource { [INFO] [stderr] 247 | fn default() -> Self { [INFO] [stderr] 248 | Self::new() [INFO] [stderr] 249 | } [INFO] [stderr] 250 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/resource.rs:413:13 [INFO] [stderr] | [INFO] [stderr] 413 | self.i = self.i + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.i += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/resource.rs:443:13 [INFO] [stderr] | [INFO] [stderr] 443 | self.i = self.i + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.i += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bitset::BitSet` [INFO] [stderr] --> src/bitset.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | / pub fn new() -> BitSet { [INFO] [stderr] 49 | | BitSet { [INFO] [stderr] 50 | | layer3: 0, [INFO] [stderr] 51 | | layer2: Vec::new(), [INFO] [stderr] ... | [INFO] [stderr] 54 | | } [INFO] [stderr] 55 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 34 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bitset.rs:268:9 [INFO] [stderr] | [INFO] [stderr] 268 | self.layer2.get(i).map(|&x| x).unwrap_or(0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.layer2.get(i).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bitset.rs:272:9 [INFO] [stderr] | [INFO] [stderr] 272 | self.layer1.get(i).map(|&x| x).unwrap_or(0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.layer1.get(i).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bitset.rs:276:9 [INFO] [stderr] | [INFO] [stderr] 276 | self.layer0.get(i).map(|&x| x).unwrap_or(0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.layer0.get(i).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bitset.rs:446:9 [INFO] [stderr] | [INFO] [stderr] 446 | self.atom.get().map(|l0| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 447 | || for l in &l0[..] { [INFO] [stderr] 448 | || l.store(0, Ordering::Relaxed); [INFO] [stderr] 449 | || } [INFO] [stderr] 450 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(l0) = self.atom.get() { ... }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bitset::AtomicBitSet` [INFO] [stderr] --> src/bitset.rs:478:5 [INFO] [stderr] | [INFO] [stderr] 478 | / pub fn new() -> AtomicBitSet { [INFO] [stderr] 479 | | AtomicBitSet { [INFO] [stderr] 480 | | layer3: AtomicUsize::new(0), [INFO] [stderr] 481 | | layer2: repeat(0).map(|_| AtomicUsize::new(0)).take(1 << BITS).collect(), [INFO] [stderr] 482 | | layer1: repeat(0).map(|_| AtomicBlock::new()).take(1 << (2 * BITS)).collect(), [INFO] [stderr] 483 | | } [INFO] [stderr] 484 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 470 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `constellation`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/world.rs:654:17 [INFO] [stderr] | [INFO] [stderr] 654 | let (_, mut test) = unsafe { world.get_resource_mut::().unwrap() }; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/entities.rs:35:41 [INFO] [stderr] | [INFO] [stderr] 35 | Entity((index & INDEX_MASK) | ((generation as u32 & GENERATION_MASK) << INDEX_BITS)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(generation)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `entities::Entities` [INFO] [stderr] --> src/entities.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | / pub fn new() -> Entities { [INFO] [stderr] 66 | | Entities { [INFO] [stderr] 67 | | generations: Vec::new(), [INFO] [stderr] 68 | | free: SegQueue::new(), [INFO] [stderr] ... | [INFO] [stderr] 72 | | } [INFO] [stderr] 73 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 63 | impl Default for entities::Entities { [INFO] [stderr] 64 | fn default() -> Self { [INFO] [stderr] 65 | Self::new() [INFO] [stderr] 66 | } [INFO] [stderr] 67 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/entities.rs:91:36 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn is_alive(&self, entity: &Entity) -> bool { [INFO] [stderr] | ^^^^^^^ help: consider passing by value instead: `Entity` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/entities.rs:118:22 [INFO] [stderr] | [INFO] [stderr] 118 | deleted: self.deleted_pool.try_pop().unwrap_or(Vec::new()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.deleted_pool.try_pop().unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/entities.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | self.generations[index] = self.generations[index] + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.generations[index] += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/entities.rs:134:17 [INFO] [stderr] | [INFO] [stderr] 134 | freed = freed + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `freed += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/entities.rs:218:36 [INFO] [stderr] | [INFO] [stderr] 218 | pub fn is_alive(&self, entity: &Entity) -> bool { [INFO] [stderr] | ^^^^^^^ help: consider passing by value instead: `Entity` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/entities.rs:229:26 [INFO] [stderr] | [INFO] [stderr] 229 | pub fn to_change_set(self) -> EntityChangeSet { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] error: mutable borrow from immutable input(s) [INFO] [stderr] --> src/world.rs:34:37 [INFO] [stderr] | [INFO] [stderr] 34 | pub unsafe fn get_mut(&self) -> &mut Resource { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::mut_from_ref)] on by default [INFO] [stderr] note: immutable borrow here [INFO] [stderr] --> src/world.rs:34:27 [INFO] [stderr] | [INFO] [stderr] 34 | pub unsafe fn get_mut(&self) -> &mut Resource { [INFO] [stderr] | ^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_from_ref [INFO] [stderr] [INFO] [stderr] error: mutable borrow from immutable input(s) [INFO] [stderr] --> src/world.rs:44:53 [INFO] [stderr] | [INFO] [stderr] 44 | pub unsafe fn get_as_mut(&self) -> &mut T { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: immutable borrow here [INFO] [stderr] --> src/world.rs:44:43 [INFO] [stderr] | [INFO] [stderr] 44 | pub unsafe fn get_as_mut(&self) -> &mut T { [INFO] [stderr] | ^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_from_ref [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/world.rs:66:25 [INFO] [stderr] | [INFO] [stderr] 66 | fn to_resource_cell(self) -> ResourceCell { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `world::World` [INFO] [stderr] --> src/world.rs:97:5 [INFO] [stderr] | [INFO] [stderr] 97 | / pub fn new() -> World { [INFO] [stderr] 98 | | World { [INFO] [stderr] 99 | | entities: Entities::new(), [INFO] [stderr] 100 | | resources: FnvHashMap::default(), [INFO] [stderr] ... | [INFO] [stderr] 103 | | } [INFO] [stderr] 104 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 95 | impl Default for world::World { [INFO] [stderr] 96 | fn default() -> Self { [INFO] [stderr] 97 | Self::new() [INFO] [stderr] 98 | } [INFO] [stderr] 99 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/world.rs:220:22 [INFO] [stderr] | [INFO] [stderr] 220 | fn to_change_set(self) -> EntityChangeSet { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `world::SystemCommandBuffer` [INFO] [stderr] --> src/world.rs:250:5 [INFO] [stderr] | [INFO] [stderr] 250 | / pub fn new() -> SystemCommandBuffer { [INFO] [stderr] 251 | | SystemCommandBuffer { batches: Vec::new() } [INFO] [stderr] 252 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 237 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/world.rs:281:12 [INFO] [stderr] | [INFO] [stderr] 281 | if batch.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!batch.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/world.rs:493:13 [INFO] [stderr] | [INFO] [stderr] 493 | / pub fn $name<'b, $($read,)* $($write,)*>(&self, $($read: &'b $read,)* $($write: &'b mut $write,)*) -> EntityIteratorBuilder<'a, ($(&'b $read,)*), ($(&'b mut $write,)*)> [INFO] [stderr] 494 | | where $($read: EntityResource,)* [INFO] [stderr] 495 | | $($write: EntityResource,)* [INFO] [stderr] 496 | | { [INFO] [stderr] 497 | | EntityIteratorBuilder::new(self.entities, ($($read,)*), ($($write,)*)) [INFO] [stderr] 498 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 589 | impl_entity_iterators!(iter_r4w3 [R0:R0Api, R1:R1Api, R2:R2Api, R3:R3Api] [W0:W0Api, W1:W1Api, W3:W2Api] [BitIter>, BitSetAnd, BitSetAnd<&BitSet, &BitSet>>>>]); [INFO] [stderr] | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `resource::MapResource` [INFO] [stderr] --> src/resource.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / pub fn new() -> MapResource { [INFO] [stderr] 109 | | MapResource { [INFO] [stderr] 110 | | filter: BitSet::new(), [INFO] [stderr] 111 | | storage: MapStorage::new(), [INFO] [stderr] 112 | | } [INFO] [stderr] 113 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 106 | impl Default for resource::MapResource { [INFO] [stderr] 107 | fn default() -> Self { [INFO] [stderr] 108 | Self::new() [INFO] [stderr] 109 | } [INFO] [stderr] 110 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/resource.rs:211:9 [INFO] [stderr] | [INFO] [stderr] 211 | self.m.get(&entity).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.m[&entity]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `resource::VecResource` [INFO] [stderr] --> src/resource.rs:248:5 [INFO] [stderr] | [INFO] [stderr] 248 | / pub fn new() -> VecResource { [INFO] [stderr] 249 | | VecResource { [INFO] [stderr] 250 | | filter: BitSet::new(), [INFO] [stderr] 251 | | storage: VecStorage::new(), [INFO] [stderr] 252 | | } [INFO] [stderr] 253 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 246 | impl Default for resource::VecResource { [INFO] [stderr] 247 | fn default() -> Self { [INFO] [stderr] 248 | Self::new() [INFO] [stderr] 249 | } [INFO] [stderr] 250 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/resource.rs:413:13 [INFO] [stderr] | [INFO] [stderr] 413 | self.i = self.i + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.i += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/resource.rs:443:13 [INFO] [stderr] | [INFO] [stderr] 443 | self.i = self.i + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.i += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/resource.rs:558:30 [INFO] [stderr] | [INFO] [stderr] 558 | *x = (*v.get(e).unwrap() + *m.get(e).unwrap()) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(*v.get(e).unwrap() + *m.get(e).unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/resource.rs:569:36 [INFO] [stderr] | [INFO] [stderr] 569 | (m.get(e).unwrap() + v.get(e).unwrap()) as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(m.get(e).unwrap() + v.get(e).unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/resource.rs:570:25 [INFO] [stderr] | [INFO] [stderr] 570 | checked = checked + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `checked += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bitset::BitSet` [INFO] [stderr] --> src/bitset.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | / pub fn new() -> BitSet { [INFO] [stderr] 49 | | BitSet { [INFO] [stderr] 50 | | layer3: 0, [INFO] [stderr] 51 | | layer2: Vec::new(), [INFO] [stderr] ... | [INFO] [stderr] 54 | | } [INFO] [stderr] 55 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 34 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bitset.rs:268:9 [INFO] [stderr] | [INFO] [stderr] 268 | self.layer2.get(i).map(|&x| x).unwrap_or(0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.layer2.get(i).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bitset.rs:272:9 [INFO] [stderr] | [INFO] [stderr] 272 | self.layer1.get(i).map(|&x| x).unwrap_or(0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.layer1.get(i).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bitset.rs:276:9 [INFO] [stderr] | [INFO] [stderr] 276 | self.layer0.get(i).map(|&x| x).unwrap_or(0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.layer0.get(i).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/bitset.rs:446:9 [INFO] [stderr] | [INFO] [stderr] 446 | self.atom.get().map(|l0| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 447 | || for l in &l0[..] { [INFO] [stderr] 448 | || l.store(0, Ordering::Relaxed); [INFO] [stderr] 449 | || } [INFO] [stderr] 450 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(l0) = self.atom.get() { ... }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bitset::AtomicBitSet` [INFO] [stderr] --> src/bitset.rs:478:5 [INFO] [stderr] | [INFO] [stderr] 478 | / pub fn new() -> AtomicBitSet { [INFO] [stderr] 479 | | AtomicBitSet { [INFO] [stderr] 480 | | layer3: AtomicUsize::new(0), [INFO] [stderr] 481 | | layer2: repeat(0).map(|_| AtomicUsize::new(0)).take(1 << BITS).collect(), [INFO] [stderr] 482 | | layer1: repeat(0).map(|_| AtomicBlock::new()).take(1 << (2 * BITS)).collect(), [INFO] [stderr] 483 | | } [INFO] [stderr] 484 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 470 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `constellation`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "67fe1ecdcafb12ac16d097437fe4e60bbbf706ecc6dfa2dbe8c6ef98107524f0"` [INFO] running `"docker" "rm" "-f" "67fe1ecdcafb12ac16d097437fe4e60bbbf706ecc6dfa2dbe8c6ef98107524f0"` [INFO] [stdout] 67fe1ecdcafb12ac16d097437fe4e60bbbf706ecc6dfa2dbe8c6ef98107524f0