[INFO] updating cached repository pancelor/rust-alttp-randomizer [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/pancelor/rust-alttp-randomizer [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/pancelor/rust-alttp-randomizer" "work/ex/clippy-test-run/sources/stable/gh/pancelor/rust-alttp-randomizer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/pancelor/rust-alttp-randomizer'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/pancelor/rust-alttp-randomizer" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/pancelor/rust-alttp-randomizer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/pancelor/rust-alttp-randomizer'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 22da5b829fcf1061e66dbd2e3d30c05e88a82543 [INFO] sha for GitHub repo pancelor/rust-alttp-randomizer: 22da5b829fcf1061e66dbd2e3d30c05e88a82543 [INFO] validating manifest of pancelor/rust-alttp-randomizer 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 pancelor/rust-alttp-randomizer 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 pancelor/rust-alttp-randomizer [INFO] finished frobbing pancelor/rust-alttp-randomizer [INFO] frobbed toml for pancelor/rust-alttp-randomizer written to work/ex/clippy-test-run/sources/stable/gh/pancelor/rust-alttp-randomizer/Cargo.toml [INFO] started frobbing pancelor/rust-alttp-randomizer [INFO] finished frobbing pancelor/rust-alttp-randomizer [INFO] frobbed toml for pancelor/rust-alttp-randomizer written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/pancelor/rust-alttp-randomizer/Cargo.toml [INFO] crate pancelor/rust-alttp-randomizer has a lockfile. skipping [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 pancelor/rust-alttp-randomizer against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/pancelor/rust-alttp-randomizer:/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] 1d2f4a3bcc86105c43bda0e8fc24d04034f50372c60347cdc5e543111d3d1270 [INFO] running `"docker" "start" "-a" "1d2f4a3bcc86105c43bda0e8fc24d04034f50372c60347cdc5e543111d3d1270"` [INFO] [stderr] Checking group-by v1.0.0 [INFO] [stderr] Checking maplit v1.0.1 [INFO] [stderr] Checking rand v0.4.1 [INFO] [stderr] Checking rando-rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/items.rs:239:3 [INFO] [stderr] | [INFO] [stderr] 239 | return res; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `res` [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: unneeded return statement [INFO] [stderr] --> src/items.rs:252:3 [INFO] [stderr] | [INFO] [stderr] 252 | return res; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `res` [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/items.rs:271:3 [INFO] [stderr] | [INFO] [stderr] 271 | return res; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `res` [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/items.rs:322:3 [INFO] [stderr] | [INFO] [stderr] 322 | return res; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `res` [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/items.rs:239:3 [INFO] [stderr] | [INFO] [stderr] 239 | return res; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `res` [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: unneeded return statement [INFO] [stderr] --> src/items.rs:252:3 [INFO] [stderr] | [INFO] [stderr] 252 | return res; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `res` [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/items.rs:271:3 [INFO] [stderr] | [INFO] [stderr] 271 | return res; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `res` [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/items.rs:322:3 [INFO] [stderr] | [INFO] [stderr] 322 | return res; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `res` [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: the function has a cyclomatic complexity of 29 [INFO] [stderr] --> src/items.rs:207:1 [INFO] [stderr] | [INFO] [stderr] 207 | / pub fn get_advancement_items() -> Vec { [INFO] [stderr] 208 | | let mut res = Vec::new(); [INFO] [stderr] 209 | | for _ in 0..4 { res.push(Item::ProgressiveSword); } [INFO] [stderr] 210 | | // @hack: the web code randomly chooses a specific bottle each seed [INFO] [stderr] ... | [INFO] [stderr] 239 | | return res; [INFO] [stderr] 240 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 47 [INFO] [stderr] --> src/items.rs:274:1 [INFO] [stderr] | [INFO] [stderr] 274 | / pub fn get_dungeon_pool() -> Vec { [INFO] [stderr] 275 | | let mut res = Vec::new(); [INFO] [stderr] 276 | | for _ in 0..1 { res.push(Item::BigKeyA2); } [INFO] [stderr] 277 | | for _ in 0..1 { res.push(Item::BigKeyD1); } [INFO] [stderr] ... | [INFO] [stderr] 322 | | return res; [INFO] [stderr] 323 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 29 [INFO] [stderr] --> src/items.rs:207:1 [INFO] [stderr] | [INFO] [stderr] 207 | / pub fn get_advancement_items() -> Vec { [INFO] [stderr] 208 | | let mut res = Vec::new(); [INFO] [stderr] 209 | | for _ in 0..4 { res.push(Item::ProgressiveSword); } [INFO] [stderr] 210 | | // @hack: the web code randomly chooses a specific bottle each seed [INFO] [stderr] ... | [INFO] [stderr] 239 | | return res; [INFO] [stderr] 240 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 47 [INFO] [stderr] --> src/items.rs:274:1 [INFO] [stderr] | [INFO] [stderr] 274 | / pub fn get_dungeon_pool() -> Vec { [INFO] [stderr] 275 | | let mut res = Vec::new(); [INFO] [stderr] 276 | | for _ in 0..1 { res.push(Item::BigKeyA2); } [INFO] [stderr] 277 | | for _ in 0..1 { res.push(Item::BigKeyD1); } [INFO] [stderr] ... | [INFO] [stderr] 322 | | return res; [INFO] [stderr] 323 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/world.rs:47:26 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn get(&self, loc: &Location2) -> Option<&Item> { [INFO] [stderr] | ^^^^^^^^^^ help: consider passing by value instead: `Location2` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/world.rs:52:35 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn contains_key(&self, loc: &Location2) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: consider passing by value instead: `Location2` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/generator.rs:88:14 [INFO] [stderr] | [INFO] [stderr] 88 | locations: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Location2]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/generator.rs:103:14 [INFO] [stderr] | [INFO] [stderr] 103 | locations: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Location2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/generator.rs:104:23 [INFO] [stderr] | [INFO] [stderr] 104 | base_assumed_items: &Vec, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 104 | base_assumed_items: &[Item], [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] help: change `base_assumed_items.clone()` to [INFO] [stderr] | [INFO] [stderr] 110 | let mut assumed_items = base_assumed_items.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/generator.rs:117:27 [INFO] [stderr] | [INFO] [stderr] 117 | let loc: &Location2 = locations.iter() [INFO] [stderr] | ___________________________^ [INFO] [stderr] 118 | | .filter(|&&loc| !world.contains_key(&loc)) [INFO] [stderr] 119 | | .filter(|&&loc| allowed_locations.contains(&loc)) [INFO] [stderr] 120 | | .filter(|&&loc| WG.item_can_be_placed_at(item, loc)) // TODO: do this earlier to save work? [INFO] [stderr] 121 | | .next() [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::filter_next)] on by default [INFO] [stderr] = note: replace `filter(|&&loc| WG.item_can_be_placed_at(item, loc)).next()` with `find(|&&loc| WG.item_can_be_placed_at(item, loc))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/world.rs:47:26 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn get(&self, loc: &Location2) -> Option<&Item> { [INFO] [stderr] | ^^^^^^^^^^ help: consider passing by value instead: `Location2` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/world.rs:52:35 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn contains_key(&self, loc: &Location2) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: consider passing by value instead: `Location2` [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: length comparison to zero [INFO] [stderr] --> src/generator.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | while stack.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!stack.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: length comparison to zero [INFO] [stderr] --> src/generator.rs:158:8 [INFO] [stderr] | [INFO] [stderr] 158 | if keyfrontier.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `keyfrontier.is_empty()` [INFO] [stderr] | [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 pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/generator.rs:162:20 [INFO] [stderr] | [INFO] [stderr] 162 | .flat_map(|&ref locset| locset) [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `&ref` part and just keep: `locset` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_borrowed_reference)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/generator.rs:179:29 [INFO] [stderr] | [INFO] [stderr] 179 | let dungeon: &Dungeon = ALL_DUNGEONS.iter() [INFO] [stderr] | _____________________________^ [INFO] [stderr] 180 | | .filter(|&&dgn| !WG.keyfrontier_from_dungeon(dgn).is_disjoint(&keyfrontier)) // only keep dungeons with common keydoors [INFO] [stderr] 181 | | .next() [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: replace `filter(|&&dgn| !WG.keyfrontier_from_dungeon(dgn).is_disjoint(&keyfrontier)).next()` with `find(|&&dgn| !WG.keyfrontier_from_dungeon(dgn).is_disjoint(&keyfrontier))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/generator.rs:88:14 [INFO] [stderr] | [INFO] [stderr] 88 | locations: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Location2]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/generator.rs:186:27 [INFO] [stderr] | [INFO] [stderr] 186 | let num_keys: usize = current_dive.keycounts().get(&WG.dungeon_info(*dungeon).key).expect("bad key").clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*current_dive.keycounts().get(&WG.dungeon_info(*dungeon).key).expect("bad key")` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/generator.rs:103:14 [INFO] [stderr] | [INFO] [stderr] 103 | locations: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Location2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/generator.rs:104:23 [INFO] [stderr] | [INFO] [stderr] 104 | base_assumed_items: &Vec, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 104 | base_assumed_items: &[Item], [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] help: change `base_assumed_items.clone()` to [INFO] [stderr] | [INFO] [stderr] 110 | let mut assumed_items = base_assumed_items.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: ==-comparison of unit values detected. This will always be true [INFO] [stderr] --> src/dive.rs:30:8 [INFO] [stderr] | [INFO] [stderr] 30 | && self.items.clone().sort() == other.items.clone().sort() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unit_cmp)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_cmp [INFO] [stderr] [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] --> src/generator.rs:117:27 [INFO] [stderr] | [INFO] [stderr] 117 | let loc: &Location2 = locations.iter() [INFO] [stderr] | ___________________________^ [INFO] [stderr] 118 | | .filter(|&&loc| !world.contains_key(&loc)) [INFO] [stderr] 119 | | .filter(|&&loc| allowed_locations.contains(&loc)) [INFO] [stderr] 120 | | .filter(|&&loc| WG.item_can_be_placed_at(item, loc)) // TODO: do this earlier to save work? [INFO] [stderr] 121 | | .next() [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::filter_next)] on by default [INFO] [stderr] = note: replace `filter(|&&loc| WG.item_can_be_placed_at(item, loc)).next()` with `find(|&&loc| WG.item_can_be_placed_at(item, loc))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/dive.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | self.items.clone().sort().hash(state) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 38 | ().hash(state) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/dive.rs:81:18 [INFO] [stderr] | [INFO] [stderr] 81 | .flat_map(|&ref kdoorset| kdoorset) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `&ref` part and just keep: `kdoorset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/dive.rs:97:18 [INFO] [stderr] | [INFO] [stderr] 97 | .flat_map(|&ref idoorset| idoorset) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `&ref` part and just keep: `idoorset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/generator.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | while stack.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!stack.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: length comparison to zero [INFO] [stderr] --> src/generator.rs:158:8 [INFO] [stderr] | [INFO] [stderr] 158 | if keyfrontier.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `keyfrontier.is_empty()` [INFO] [stderr] | [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 pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/generator.rs:162:20 [INFO] [stderr] | [INFO] [stderr] 162 | .flat_map(|&ref locset| locset) [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `&ref` part and just keep: `locset` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_borrowed_reference)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dive.rs:125:12 [INFO] [stderr] | [INFO] [stderr] 125 | if new_zones.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `new_zones.is_empty()` [INFO] [stderr] | [INFO] [stderr] warning: called `filter(p).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(p)` instead. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] --> src/generator.rs:179:29 [INFO] [stderr] | [INFO] [stderr] 179 | let dungeon: &Dungeon = ALL_DUNGEONS.iter() [INFO] [stderr] | _____________________________^ [INFO] [stderr] 180 | | .filter(|&&dgn| !WG.keyfrontier_from_dungeon(dgn).is_disjoint(&keyfrontier)) // only keep dungeons with common keydoors [INFO] [stderr] [INFO] [stderr] 181 | | .next() [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: replace `filter(|&&dgn| !WG.keyfrontier_from_dungeon(dgn).is_disjoint(&keyfrontier)).next()` with `find(|&&dgn| !WG.keyfrontier_from_dungeon(dgn).is_disjoint(&keyfrontier))` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/generator.rs:186:27 [INFO] [stderr] | [INFO] [stderr] 186 | let num_keys: usize = current_dive.keycounts().get(&WG.dungeon_info(*dungeon).key).expect("bad key").clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*current_dive.keycounts().get(&WG.dungeon_info(*dungeon).key).expect("bad key")` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dive.rs:138:57 [INFO] [stderr] | [INFO] [stderr] 138 | fn do_one_exploration_pass_on_frontier(&self, ifront: &Vec<&ItemDoor>) -> HashSet { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[&ItemDoor]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/dive.rs:162:18 [INFO] [stderr] | [INFO] [stderr] 162 | .flat_map(|&ref kdoorset| kdoorset) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `&ref` part and just keep: `kdoorset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] error: ==-comparison of unit values detected. This will always be true [INFO] [stderr] --> src/dive.rs:30:8 [INFO] [stderr] | [INFO] [stderr] 30 | && self.items.clone().sort() == other.items.clone().sort() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unit_cmp)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_cmp [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/dive.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | self.items.clone().sort().hash(state) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 38 | ().hash(state) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/dive.rs:81:18 [INFO] [stderr] | [INFO] [stderr] 81 | .flat_map(|&ref kdoorset| kdoorset) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `&ref` part and just keep: `kdoorset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/dive.rs:97:18 [INFO] [stderr] | [INFO] [stderr] 97 | .flat_map(|&ref idoorset| idoorset) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `&ref` part and just keep: `idoorset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/connections.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | fn equals(&self, other: &Self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/connections.rs:32:27 [INFO] [stderr] | [INFO] [stderr] 32 | fn equals(&self, other: &Self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/connections.rs:58:33 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn can_pass(&self, items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/dive.rs:125:12 [INFO] [stderr] | [INFO] [stderr] 125 | if new_zones.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `new_zones.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/dive.rs:138:57 [INFO] [stderr] | [INFO] [stderr] 138 | fn do_one_exploration_pass_on_frontier(&self, ifront: &Vec<&ItemDoor>) -> HashSet { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[&ItemDoor]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/dive.rs:162:18 [INFO] [stderr] | [INFO] [stderr] 162 | .flat_map(|&ref kdoorset| kdoorset) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `&ref` part and just keep: `kdoorset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/connections.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | fn equals(&self, other: &Self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/connections.rs:32:27 [INFO] [stderr] | [INFO] [stderr] 32 | fn equals(&self, other: &Self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/connections.rs:58:33 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn can_pass(&self, items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/connections.rs:428:10 [INFO] [stderr] | [INFO] [stderr] 428 | .or_insert(BTreeSet::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(BTreeSet::new)` [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: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/connections.rs:471:22 [INFO] [stderr] | [INFO] [stderr] 471 | .flat_map(|&ref kdoorset| kdoorset) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `&ref` part and just keep: `kdoorset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/connections.rs:486:22 [INFO] [stderr] | [INFO] [stderr] 486 | .flat_map(|&ref locset| locset) [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `&ref` part and just keep: `locset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:6:37 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn count(item: &Item, my_items: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/logic.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn count(item: &Item, my_items: &Vec) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Item` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:12:33 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn can_lift_rocks(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:18:38 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn can_lift_dark_rocks(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:23:36 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn can_light_torches(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:28:34 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn can_melt_things(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:33:26 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn can_fly(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:38:33 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn can_spin_speed(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:45:35 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn can_shoot_arrows(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:51:35 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn can_block_lasers(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:56:35 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn can_extend_magic(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:62:46 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn glitched_link_in_dark_world(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:67:39 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn can_kill_most_things(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:76:36 [INFO] [stderr] | [INFO] [stderr] 76 | pub fn can_get_good_bee(_my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:80:28 [INFO] [stderr] | [INFO] [stderr] 80 | pub fn has_sword(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:87:37 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn has_upgraded_sword(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:95:31 [INFO] [stderr] | [INFO] [stderr] 95 | pub fn has_a_bottle(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/connections.rs:428:10 [INFO] [stderr] | [INFO] [stderr] 428 | .or_insert(BTreeSet::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(BTreeSet::new)` [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: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/connections.rs:471:22 [INFO] [stderr] | [INFO] [stderr] 471 | .flat_map(|&ref kdoorset| kdoorset) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `&ref` part and just keep: `kdoorset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/connections.rs:486:22 [INFO] [stderr] | [INFO] [stderr] 486 | .flat_map(|&ref locset| locset) [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `&ref` part and just keep: `locset` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:6:37 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn count(item: &Item, my_items: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/logic.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn count(item: &Item, my_items: &Vec) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `Item` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:12:33 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn can_lift_rocks(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:18:38 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn can_lift_dark_rocks(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:23:36 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn can_light_torches(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:28:34 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn can_melt_things(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:33:26 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn can_fly(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:38:33 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn can_spin_speed(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:45:35 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn can_shoot_arrows(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:51:35 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn can_block_lasers(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:56:35 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn can_extend_magic(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:62:46 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn glitched_link_in_dark_world(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:67:39 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn can_kill_most_things(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:76:36 [INFO] [stderr] | [INFO] [stderr] 76 | pub fn can_get_good_bee(_my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:80:28 [INFO] [stderr] | [INFO] [stderr] 80 | pub fn has_sword(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:87:37 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn has_upgraded_sword(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/logic.rs:95:31 [INFO] [stderr] | [INFO] [stderr] 95 | pub fn has_a_bottle(my_items: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Item]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `rando-rust`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `rando-rust`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "1d2f4a3bcc86105c43bda0e8fc24d04034f50372c60347cdc5e543111d3d1270"` [INFO] running `"docker" "rm" "-f" "1d2f4a3bcc86105c43bda0e8fc24d04034f50372c60347cdc5e543111d3d1270"` [INFO] [stdout] 1d2f4a3bcc86105c43bda0e8fc24d04034f50372c60347cdc5e543111d3d1270