[INFO] updating cached repository saulshanabrook/graph-computation-play [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/saulshanabrook/graph-computation-play [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/saulshanabrook/graph-computation-play" "work/ex/clippy-test-run/sources/stable/gh/saulshanabrook/graph-computation-play"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/saulshanabrook/graph-computation-play'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/saulshanabrook/graph-computation-play" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/saulshanabrook/graph-computation-play"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/saulshanabrook/graph-computation-play'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] b6a782a5be49bfaa372b226ceb59a68e26b6ea61 [INFO] sha for GitHub repo saulshanabrook/graph-computation-play: b6a782a5be49bfaa372b226ceb59a68e26b6ea61 [INFO] validating manifest of saulshanabrook/graph-computation-play 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 saulshanabrook/graph-computation-play 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 saulshanabrook/graph-computation-play [INFO] finished frobbing saulshanabrook/graph-computation-play [INFO] frobbed toml for saulshanabrook/graph-computation-play written to work/ex/clippy-test-run/sources/stable/gh/saulshanabrook/graph-computation-play/Cargo.toml [INFO] started frobbing saulshanabrook/graph-computation-play [INFO] finished frobbing saulshanabrook/graph-computation-play [INFO] frobbed toml for saulshanabrook/graph-computation-play written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/saulshanabrook/graph-computation-play/Cargo.toml [INFO] crate saulshanabrook/graph-computation-play has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on the registry index [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting saulshanabrook/graph-computation-play against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/saulshanabrook/graph-computation-play:/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] 63a272504c7744e90ea0d9eae7fa3d087cc39b94d5e3d21fe29252f6eec06c69 [INFO] running `"docker" "start" "-a" "63a272504c7744e90ea0d9eae7fa3d087cc39b94d5e3d21fe29252f6eec06c69"` [INFO] [stderr] Checking graph-computation-play v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> main.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | genomes: genomes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `genomes` [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] --> main.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | genomes: genomes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `genomes` [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: unneeded return statement [INFO] [stderr] --> main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | return random_gene.ind_sample(rng); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `random_gene.ind_sample(rng)` [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] --> main.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | return genome; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `genome` [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] --> main.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | return genome.into_iter().sum(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `genome.into_iter().sum()` [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] --> main.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | return genome; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `genome` [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] --> main.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | return genome_a; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `genome_a` [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] --> main.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | return es; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `es` [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] --> main.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / return Population { [INFO] [stderr] 69 | | genomes: genomes, [INFO] [stderr] 70 | | errors: errors_from_genomes(genomes), [INFO] [stderr] 71 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 68 | Population { [INFO] [stderr] 69 | genomes: genomes, [INFO] [stderr] 70 | errors: errors_from_genomes(genomes), [INFO] [stderr] 71 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> main.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | return population_from_genomes(gs); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `population_from_genomes(gs)` [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] --> main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | return random_gene.ind_sample(rng); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `random_gene.ind_sample(rng)` [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] --> main.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | return genome; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `genome` [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] --> main.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | return genome.into_iter().sum(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `genome.into_iter().sum()` [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] --> main.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | return genome; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `genome` [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] --> main.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | return genome_a; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `genome_a` [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] --> main.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | return es; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `es` [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] --> main.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / return Population { [INFO] [stderr] 69 | | genomes: genomes, [INFO] [stderr] 70 | | errors: errors_from_genomes(genomes), [INFO] [stderr] 71 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 68 | Population { [INFO] [stderr] 69 | genomes: genomes, [INFO] [stderr] 70 | errors: errors_from_genomes(genomes), [INFO] [stderr] 71 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> main.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | return population_from_genomes(gs); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `population_from_genomes(gs)` [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: constant item is never used: `POP_SIZE` [INFO] [stderr] --> main.rs:51:1 [INFO] [stderr] | [INFO] [stderr] 51 | const POP_SIZE: usize = 100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `Genomes` [INFO] [stderr] --> main.rs:52:1 [INFO] [stderr] | [INFO] [stderr] 52 | type Genomes = [Genome; POP_SIZE]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `Errors` [INFO] [stderr] --> main.rs:53:1 [INFO] [stderr] | [INFO] [stderr] 53 | type Errors = [Error; POP_SIZE]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `errors_from_genomes` [INFO] [stderr] --> main.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | fn errors_from_genomes(genomes: Genomes) -> Errors { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Population` [INFO] [stderr] --> main.rs:62:1 [INFO] [stderr] | [INFO] [stderr] 62 | struct Population { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `population_from_genomes` [INFO] [stderr] --> main.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | fn population_from_genomes(genomes: Genomes) -> Population { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `initial_population` [INFO] [stderr] --> main.rs:74:1 [INFO] [stderr] | [INFO] [stderr] 74 | fn initial_population(random_gene: &Range, rng: &mut R) -> Population { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> main.rs:11:34 [INFO] [stderr] | [INFO] [stderr] 11 | fn new_gene(random_gene: &Range, rng: &mut R) -> Gene { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Range` [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] --> main.rs:15:36 [INFO] [stderr] | [INFO] [stderr] 15 | fn new_genome(random_gene: &Range, rng: &mut R) -> Genome { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Range` [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: the loop variable `i` is only used to index `genome`. [INFO] [stderr] --> main.rs:17:14 [INFO] [stderr] | [INFO] [stderr] 17 | for i in 0..L { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 17 | for in genome.iter_mut().take(L) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> main.rs:24:19 [INFO] [stderr] | [INFO] [stderr] 24 | return genome.into_iter().sum(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> main.rs:29:18 [INFO] [stderr] | [INFO] [stderr] 29 | random_gene: &Range, [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Range` [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: it looks like you're manually copying between slices [INFO] [stderr] --> main.rs:45:14 [INFO] [stderr] | [INFO] [stderr] 45 | for i in 0..crossover_point { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `genome_a[..crossover_point].clone_from_slice(&genome_b[..crossover_point])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> main.rs:74:44 [INFO] [stderr] | [INFO] [stderr] 74 | fn initial_population(random_gene: &Range, rng: &mut R) -> Population { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Range` [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: the loop variable `i` is only used to index `gs`. [INFO] [stderr] --> main.rs:76:14 [INFO] [stderr] | [INFO] [stderr] 76 | for i in 0..L { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 76 | for in gs.iter_mut().take(L) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `POP_SIZE` [INFO] [stderr] --> main.rs:51:1 [INFO] [stderr] | [INFO] [stderr] 51 | const POP_SIZE: usize = 100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `Genomes` [INFO] [stderr] --> main.rs:52:1 [INFO] [stderr] | [INFO] [stderr] 52 | type Genomes = [Genome; POP_SIZE]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `Errors` [INFO] [stderr] --> main.rs:53:1 [INFO] [stderr] | [INFO] [stderr] 53 | type Errors = [Error; POP_SIZE]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `errors_from_genomes` [INFO] [stderr] --> main.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | fn errors_from_genomes(genomes: Genomes) -> Errors { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Population` [INFO] [stderr] --> main.rs:62:1 [INFO] [stderr] | [INFO] [stderr] 62 | struct Population { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `population_from_genomes` [INFO] [stderr] --> main.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | fn population_from_genomes(genomes: Genomes) -> Population { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `initial_population` [INFO] [stderr] --> main.rs:74:1 [INFO] [stderr] | [INFO] [stderr] 74 | fn initial_population(random_gene: &Range, rng: &mut R) -> Population { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> main.rs:11:34 [INFO] [stderr] | [INFO] [stderr] 11 | fn new_gene(random_gene: &Range, rng: &mut R) -> Gene { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Range` [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] --> main.rs:15:36 [INFO] [stderr] | [INFO] [stderr] 15 | fn new_genome(random_gene: &Range, rng: &mut R) -> Genome { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Range` [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: the loop variable `i` is only used to index `genome`. [INFO] [stderr] --> main.rs:17:14 [INFO] [stderr] | [INFO] [stderr] 17 | for i in 0..L { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 17 | for in genome.iter_mut().take(L) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> main.rs:24:19 [INFO] [stderr] | [INFO] [stderr] 24 | return genome.into_iter().sum(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> main.rs:29:18 [INFO] [stderr] | [INFO] [stderr] 29 | random_gene: &Range, [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Range` [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: it looks like you're manually copying between slices [INFO] [stderr] --> main.rs:45:14 [INFO] [stderr] | [INFO] [stderr] 45 | for i in 0..crossover_point { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `genome_a[..crossover_point].clone_from_slice(&genome_b[..crossover_point])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> main.rs:74:44 [INFO] [stderr] | [INFO] [stderr] 74 | fn initial_population(random_gene: &Range, rng: &mut R) -> Population { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Range` [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: the loop variable `i` is only used to index `gs`. [INFO] [stderr] --> main.rs:76:14 [INFO] [stderr] | [INFO] [stderr] 76 | for i in 0..L { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 76 | for in gs.iter_mut().take(L) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.85s [INFO] running `"docker" "inspect" "63a272504c7744e90ea0d9eae7fa3d087cc39b94d5e3d21fe29252f6eec06c69"` [INFO] running `"docker" "rm" "-f" "63a272504c7744e90ea0d9eae7fa3d087cc39b94d5e3d21fe29252f6eec06c69"` [INFO] [stdout] 63a272504c7744e90ea0d9eae7fa3d087cc39b94d5e3d21fe29252f6eec06c69