[INFO] updating cached repository Eragra3/GA [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Eragra3/GA [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Eragra3/GA" "work/ex/clippy-test-run/sources/stable/gh/Eragra3/GA"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Eragra3/GA'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Eragra3/GA" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Eragra3/GA"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Eragra3/GA'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] a277d0a9cbacc3147b2e6dc13ed9bd7b1efa2fc0 [INFO] sha for GitHub repo Eragra3/GA: a277d0a9cbacc3147b2e6dc13ed9bd7b1efa2fc0 [INFO] validating manifest of Eragra3/GA 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 Eragra3/GA 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 Eragra3/GA [INFO] finished frobbing Eragra3/GA [INFO] frobbed toml for Eragra3/GA written to work/ex/clippy-test-run/sources/stable/gh/Eragra3/GA/Cargo.toml [INFO] started frobbing Eragra3/GA [INFO] finished frobbing Eragra3/GA [INFO] frobbed toml for Eragra3/GA written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Eragra3/GA/Cargo.toml [INFO] crate Eragra3/GA 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 Eragra3/GA 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/gh/Eragra3/GA:/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] 543a90b0febfc43a117d66c9504d162d65a09ae2032348391adde30c61ca0c27 [INFO] running `"docker" "start" "-a" "543a90b0febfc43a117d66c9504d162d65a09ae2032348391adde30c61ca0c27"` [INFO] [stderr] Checking gnuplot v0.0.22 [INFO] [stderr] Checking memchr v1.0.1 [INFO] [stderr] Checking chrono v0.4.0 [INFO] [stderr] Checking pbr v1.0.0 [INFO] [stderr] Checking csv-core v0.1.2 [INFO] [stderr] Checking csv v1.0.0-beta.3 [INFO] [stderr] Checking genetic v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/specimen.rs:107:20 [INFO] [stderr] | [INFO] [stderr] 107 | Specimen { genotype: genotype } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `genotype` [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/city.rs:12:13 [INFO] [stderr] | [INFO] [stderr] 12 | x: x, [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/city.rs:13:13 [INFO] [stderr] | [INFO] [stderr] 13 | y: y, [INFO] [stderr] | ^^^^ help: replace it with: `y` [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/main.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | best_fitness: best_fitness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `best_fitness` [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/main.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | avg_fitness: avg_fitness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `avg_fitness` [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/main.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | worst_fitness: worst_fitness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `worst_fitness` [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: using `println!("")` [INFO] [stderr] --> src/main.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:180:17 [INFO] [stderr] | [INFO] [stderr] 180 | best_fitness: best_fitness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `best_fitness` [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/main.rs:181:17 [INFO] [stderr] | [INFO] [stderr] 181 | avg_fitness: avg_fitness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `avg_fitness` [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/main.rs:182:17 [INFO] [stderr] | [INFO] [stderr] 182 | worst_fitness: worst_fitness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `worst_fitness` [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/specimen.rs:107:20 [INFO] [stderr] | [INFO] [stderr] 107 | Specimen { genotype: genotype } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `genotype` [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/city.rs:12:13 [INFO] [stderr] | [INFO] [stderr] 12 | x: x, [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/city.rs:13:13 [INFO] [stderr] | [INFO] [stderr] 13 | y: y, [INFO] [stderr] | ^^^^ help: replace it with: `y` [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/main.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | best_fitness: best_fitness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `best_fitness` [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/main.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | avg_fitness: avg_fitness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `avg_fitness` [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/main.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | worst_fitness: worst_fitness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `worst_fitness` [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: using `println!("")` [INFO] [stderr] --> src/main.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:180:17 [INFO] [stderr] | [INFO] [stderr] 180 | best_fitness: best_fitness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `best_fitness` [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/main.rs:181:17 [INFO] [stderr] | [INFO] [stderr] 181 | avg_fitness: avg_fitness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `avg_fitness` [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/main.rs:182:17 [INFO] [stderr] | [INFO] [stderr] 182 | worst_fitness: worst_fitness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `worst_fitness` [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: unused import: `Rng` [INFO] [stderr] --> src/mutators.rs:3:12 [INFO] [stderr] | [INFO] [stderr] 3 | use rand::{Rng}; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Normal` [INFO] [stderr] --> src/mutators.rs:4:35 [INFO] [stderr] | [INFO] [stderr] 4 | use rand::distributions::normal::{Normal}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:275:5 [INFO] [stderr] | [INFO] [stderr] 275 | return (*winner).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(*winner).clone()` [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: unused import: `Rng` [INFO] [stderr] --> src/mutators.rs:3:12 [INFO] [stderr] | [INFO] [stderr] 3 | use rand::{Rng}; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Normal` [INFO] [stderr] --> src/mutators.rs:4:35 [INFO] [stderr] | [INFO] [stderr] 4 | use rand::distributions::normal::{Normal}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:275:5 [INFO] [stderr] | [INFO] [stderr] 275 | return (*winner).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(*winner).clone()` [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: unused variable: `worst_specimens_fitness` [INFO] [stderr] --> src/main.rs:73:13 [INFO] [stderr] | [INFO] [stderr] 73 | let mut worst_specimens_fitness: Vec = Vec::with_capacity(evolution_params.population_count + 1 as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_worst_specimens_fitness` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `avg_specimens_fitness` [INFO] [stderr] --> src/main.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | let mut avg_specimens_fitness: Vec = Vec::with_capacity(evolution_params.population_count + 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `_avg_specimens_fitness` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `best_specimens_fitness` [INFO] [stderr] --> src/main.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | let mut best_specimens_fitness: Vec = Vec::with_capacity(evolution_params.population_count + 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_best_specimens_fitness` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mutator` [INFO] [stderr] --> src/main.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | let mutator = RandomSwap::new(); [INFO] [stderr] | ^^^^^^^ help: consider using `_mutator` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `new_specimens_perc` [INFO] [stderr] --> src/main.rs:174:17 [INFO] [stderr] | [INFO] [stderr] 174 | let new_specimens_perc = new_specimens_count as f64 / evolution_params.population_count as f64 * 100.; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using `_new_specimens_perc` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index` [INFO] [stderr] --> src/mutators.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | for index in 0..value.len() { [INFO] [stderr] | ^^^^^ help: consider using `_index` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | let mut worst_specimens_fitness: Vec = Vec::with_capacity(evolution_params.population_count + 1 as usize); [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: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | let mut avg_specimens_fitness: Vec = Vec::with_capacity(evolution_params.population_count + 1); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | let mut best_specimens_fitness: Vec = Vec::with_capacity(evolution_params.population_count + 1); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `worst_specimens_fitness` [INFO] [stderr] --> src/main.rs:73:13 [INFO] [stderr] | [INFO] [stderr] 73 | let mut worst_specimens_fitness: Vec = Vec::with_capacity(evolution_params.population_count + 1 as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_worst_specimens_fitness` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `avg_specimens_fitness` [INFO] [stderr] --> src/main.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | let mut avg_specimens_fitness: Vec = Vec::with_capacity(evolution_params.population_count + 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `_avg_specimens_fitness` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `best_specimens_fitness` [INFO] [stderr] --> src/main.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | let mut best_specimens_fitness: Vec = Vec::with_capacity(evolution_params.population_count + 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_best_specimens_fitness` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mutator` [INFO] [stderr] --> src/main.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | let mutator = RandomSwap::new(); [INFO] [stderr] | ^^^^^^^ help: consider using `_mutator` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `new_specimens_perc` [INFO] [stderr] --> src/main.rs:174:17 [INFO] [stderr] | [INFO] [stderr] 174 | let new_specimens_perc = new_specimens_count as f64 / evolution_params.population_count as f64 * 100.; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using `_new_specimens_perc` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index` [INFO] [stderr] --> src/mutators.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | for index in 0..value.len() { [INFO] [stderr] | ^^^^^ help: consider using `_index` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/mutators.rs:16:50 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn mutate(& self, mutation_rate: f64, mut value: &[T]) [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `swap_random` [INFO] [stderr] --> src/specimen.rs:143:1 [INFO] [stderr] | [INFO] [stderr] 143 | fn swap_random(mutable_vector: &mut [T], index: usize, range: f64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `mutate` [INFO] [stderr] --> src/mutators.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / pub fn mutate(& self, mutation_rate: f64, mut value: &[T]) [INFO] [stderr] 17 | | where T : Copy { [INFO] [stderr] 18 | | for index in 0..value.len() { [INFO] [stderr] 19 | | if rand::random::() < mutation_rate { [INFO] [stderr] ... | [INFO] [stderr] 22 | | } [INFO] [stderr] 23 | | } [INFO] [stderr] | |_____^ [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/specimen.rs:38:29 [INFO] [stderr] | [INFO] [stderr] 38 | fn random<'b: 'a>(data: &'b Vec) -> Specimen<'a, T>; [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[T]` [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: use of `expect` followed by a function call [INFO] [stderr] --> src/specimen.rs:114:14 [INFO] [stderr] | [INFO] [stderr] 114 | .expect(format!("Couldn't create file at \"{:?}\"", path_str).as_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Couldn't create file at \"{:?}\"", path_str))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | let mut worst_specimens_fitness: Vec = Vec::with_capacity(evolution_params.population_count + 1 as usize); [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: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | let mut avg_specimens_fitness: Vec = Vec::with_capacity(evolution_params.population_count + 1); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | let mut best_specimens_fitness: Vec = Vec::with_capacity(evolution_params.population_count + 1); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/uwaterloo_reader.rs:48:38 [INFO] [stderr] | [INFO] [stderr] 48 | let mut values = l.split(" "); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | generations_logger.serialize(row); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:112:13 [INFO] [stderr] | [INFO] [stderr] 112 | / let mut new_specimen; [INFO] [stderr] 113 | | if rand::random::() < evolution_params.crossover_rate { [INFO] [stderr] 114 | | let mut waifu = tournament(¤t_generation, &evolution_params); [INFO] [stderr] 115 | | [INFO] [stderr] ... | [INFO] [stderr] 122 | | new_specimen = parent; [INFO] [stderr] 123 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let new_specimen = if rand::random::() < evolution_params.crossover_rate { ..; parent.crossover(&waifu) } else { parent };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/main.rs:151:93 [INFO] [stderr] | [INFO] [stderr] 151 | else if best_specimen.as_ref().map_or(false, |b| b.fitness() < fitness) { [INFO] [stderr] | _____________________________________________________________________________________________^ [INFO] [stderr] 152 | | best_specimen = Some((*best).clone()); [INFO] [stderr] 153 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/main.rs:148:48 [INFO] [stderr] | [INFO] [stderr] 148 | if best_specimen.is_none() { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 149 | | best_specimen = Some((*best).clone()); [INFO] [stderr] 150 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | generations_logger.serialize(row); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [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/main.rs:213:54 [INFO] [stderr] | [INFO] [stderr] 213 | fn get_generation_fitness(vector: &Vec) -> (f64, f64, f64) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [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/main.rs:231:17 [INFO] [stderr] | [INFO] [stderr] 231 | fn plot(cities: &Vec, plot_lines: bool) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[City]` [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/main.rs:255:53 [INFO] [stderr] | [INFO] [stderr] 255 | fn tournament(specimens: &Vec, [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [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/main.rs:279:25 [INFO] [stderr] | [INFO] [stderr] 279 | fn random_index(vec: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [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: variable does not need to be mutable [INFO] [stderr] --> src/mutators.rs:16:50 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn mutate(& self, mutation_rate: f64, mut value: &[T]) [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `swap_random` [INFO] [stderr] --> src/specimen.rs:143:1 [INFO] [stderr] | [INFO] [stderr] 143 | fn swap_random(mutable_vector: &mut [T], index: usize, range: f64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `mutate` [INFO] [stderr] --> src/mutators.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / pub fn mutate(& self, mutation_rate: f64, mut value: &[T]) [INFO] [stderr] 17 | | where T : Copy { [INFO] [stderr] 18 | | for index in 0..value.len() { [INFO] [stderr] 19 | | if rand::random::() < mutation_rate { [INFO] [stderr] ... | [INFO] [stderr] 22 | | } [INFO] [stderr] 23 | | } [INFO] [stderr] | |_____^ [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/specimen.rs:38:29 [INFO] [stderr] | [INFO] [stderr] 38 | fn random<'b: 'a>(data: &'b Vec) -> Specimen<'a, T>; [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[T]` [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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `genetic`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/specimen.rs:114:14 [INFO] [stderr] | [INFO] [stderr] 114 | .expect(format!("Couldn't create file at \"{:?}\"", path_str).as_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Couldn't create file at \"{:?}\"", path_str))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/uwaterloo_reader.rs:48:38 [INFO] [stderr] | [INFO] [stderr] 48 | let mut values = l.split(" "); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | generations_logger.serialize(row); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:112:13 [INFO] [stderr] | [INFO] [stderr] 112 | / let mut new_specimen; [INFO] [stderr] 113 | | if rand::random::() < evolution_params.crossover_rate { [INFO] [stderr] 114 | | let mut waifu = tournament(¤t_generation, &evolution_params); [INFO] [stderr] 115 | | [INFO] [stderr] ... | [INFO] [stderr] 122 | | new_specimen = parent; [INFO] [stderr] 123 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let new_specimen = if rand::random::() < evolution_params.crossover_rate { ..; parent.crossover(&waifu) } else { parent };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/main.rs:151:93 [INFO] [stderr] | [INFO] [stderr] 151 | else if best_specimen.as_ref().map_or(false, |b| b.fitness() < fitness) { [INFO] [stderr] | _____________________________________________________________________________________________^ [INFO] [stderr] 152 | | best_specimen = Some((*best).clone()); [INFO] [stderr] 153 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/main.rs:148:48 [INFO] [stderr] | [INFO] [stderr] 148 | if best_specimen.is_none() { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 149 | | best_specimen = Some((*best).clone()); [INFO] [stderr] 150 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | generations_logger.serialize(row); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [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/main.rs:213:54 [INFO] [stderr] | [INFO] [stderr] 213 | fn get_generation_fitness(vector: &Vec) -> (f64, f64, f64) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [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/main.rs:231:17 [INFO] [stderr] | [INFO] [stderr] 231 | fn plot(cities: &Vec, plot_lines: bool) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[City]` [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/main.rs:255:53 [INFO] [stderr] | [INFO] [stderr] 255 | fn tournament(specimens: &Vec, [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [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/main.rs:279:25 [INFO] [stderr] | [INFO] [stderr] 279 | fn random_index(vec: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [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 `genetic`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "543a90b0febfc43a117d66c9504d162d65a09ae2032348391adde30c61ca0c27"` [INFO] running `"docker" "rm" "-f" "543a90b0febfc43a117d66c9504d162d65a09ae2032348391adde30c61ca0c27"` [INFO] [stdout] 543a90b0febfc43a117d66c9504d162d65a09ae2032348391adde30c61ca0c27