[INFO] updating cached repository Zuchis/genetic-algorithm-rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Zuchis/genetic-algorithm-rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Zuchis/genetic-algorithm-rust" "work/ex/clippy-test-run/sources/stable/gh/Zuchis/genetic-algorithm-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Zuchis/genetic-algorithm-rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Zuchis/genetic-algorithm-rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Zuchis/genetic-algorithm-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Zuchis/genetic-algorithm-rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 5bcf070273532deade17285dc55bb4ffaed1e1b0 [INFO] sha for GitHub repo Zuchis/genetic-algorithm-rust: 5bcf070273532deade17285dc55bb4ffaed1e1b0 [INFO] validating manifest of Zuchis/genetic-algorithm-rust 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 Zuchis/genetic-algorithm-rust 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 Zuchis/genetic-algorithm-rust [INFO] finished frobbing Zuchis/genetic-algorithm-rust [INFO] frobbed toml for Zuchis/genetic-algorithm-rust written to work/ex/clippy-test-run/sources/stable/gh/Zuchis/genetic-algorithm-rust/Cargo.toml [INFO] started frobbing Zuchis/genetic-algorithm-rust [INFO] finished frobbing Zuchis/genetic-algorithm-rust [INFO] frobbed toml for Zuchis/genetic-algorithm-rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Zuchis/genetic-algorithm-rust/Cargo.toml [INFO] crate Zuchis/genetic-algorithm-rust 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 Zuchis/genetic-algorithm-rust against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Zuchis/genetic-algorithm-rust:/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 -Dclippy::into_iter_on_array" "-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] 5449901beb901283064bafa57d8c6383e6e6145d272d4979e0a1924a5695efa8 [INFO] running `"docker" "start" "-a" "5449901beb901283064bafa57d8c6383e6e6145d272d4979e0a1924a5695efa8"` [INFO] [stderr] Checking num-complex v0.1.37 [INFO] [stderr] Checking num-bigint v0.1.37 [INFO] [stderr] Checking num-rational v0.1.36 [INFO] [stderr] Checking num v0.1.37 [INFO] [stderr] Checking genetic-algorithm-rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/ga.rs:54:17 [INFO] [stderr] | [INFO] [stderr] 54 | 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: using `println!("")` [INFO] [stderr] --> src/ga.rs:129:13 [INFO] [stderr] | [INFO] [stderr] 129 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> src/ga.rs:171:17 [INFO] [stderr] | [INFO] [stderr] 171 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> src/population.rs:387:13 [INFO] [stderr] | [INFO] [stderr] 387 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> src/population.rs:443:13 [INFO] [stderr] | [INFO] [stderr] 443 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> src/population.rs:494:13 [INFO] [stderr] | [INFO] [stderr] 494 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> src/helpers.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> src/ga.rs:54:17 [INFO] [stderr] | [INFO] [stderr] 54 | 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: using `println!("")` [INFO] [stderr] --> src/ga.rs:129:13 [INFO] [stderr] | [INFO] [stderr] 129 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> src/ga.rs:171:17 [INFO] [stderr] | [INFO] [stderr] 171 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> src/population.rs:387:13 [INFO] [stderr] | [INFO] [stderr] 387 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> src/population.rs:443:13 [INFO] [stderr] | [INFO] [stderr] 443 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> src/population.rs:494:13 [INFO] [stderr] | [INFO] [stderr] 494 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> src/helpers.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/helpers.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | max [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/helpers.rs:25:15 [INFO] [stderr] | [INFO] [stderr] 25 | let max = if x >= y {x} else {y}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/helpers.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | min [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/helpers.rs:30:15 [INFO] [stderr] | [INFO] [stderr] 30 | let min = if x <= y {x} else {y}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/helpers.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | truncated [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/helpers.rs:45:21 [INFO] [stderr] | [INFO] [stderr] 45 | let truncated = (value * power as f64).round() / power as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/crossover.rs:44:39 [INFO] [stderr] | [INFO] [stderr] 44 | let interval = Range::new(1usize, (parent1.len() -1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/helpers.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | max [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/helpers.rs:25:15 [INFO] [stderr] | [INFO] [stderr] 25 | let max = if x >= y {x} else {y}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/helpers.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | min [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/helpers.rs:30:15 [INFO] [stderr] | [INFO] [stderr] 30 | let min = if x <= y {x} else {y}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/helpers.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | truncated [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/helpers.rs:45:21 [INFO] [stderr] | [INFO] [stderr] 45 | let truncated = (value * power as f64).round() / power as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/crossover.rs:44:39 [INFO] [stderr] | [INFO] [stderr] 44 | let interval = Range::new(1usize, (parent1.len() -1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/ga.rs:56:43 [INFO] [stderr] | [INFO] [stderr] 56 | if pop.fit_array[0] >= 1.0 && found_opt == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!found_opt` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `best_of_gens`. [INFO] [stderr] --> src/ga.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | for i in 0 .. num_of_executions { [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] 65 | for in best_of_gens.iter().take(num_of_executions) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `opt_of_gens`. [INFO] [stderr] --> src/ga.rs:70:14 [INFO] [stderr] | [INFO] [stderr] 70 | for i in 0 .. num_of_executions { [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] 70 | for in opt_of_gens.iter().take(num_of_executions) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/ga.rs:56:43 [INFO] [stderr] | [INFO] [stderr] 56 | if pop.fit_array[0] >= 1.0 && found_opt == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!found_opt` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `best_of_gens`. [INFO] [stderr] --> src/ga.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | for i in 0 .. num_of_executions { [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] 65 | for in best_of_gens.iter().take(num_of_executions) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `opt_of_gens`. [INFO] [stderr] --> src/ga.rs:70:14 [INFO] [stderr] | [INFO] [stderr] 70 | for i in 0 .. num_of_executions { [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] 70 | for in opt_of_gens.iter().take(num_of_executions) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/ga.rs:173:43 [INFO] [stderr] | [INFO] [stderr] 173 | if pop.fit_array[0] >= 1.0 && found_opt == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!found_opt` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `best_of_gens`. [INFO] [stderr] --> src/ga.rs:182:14 [INFO] [stderr] | [INFO] [stderr] 182 | for i in 0 .. num_of_executions { [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] 182 | for in best_of_gens.iter().take(num_of_executions) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `opt_of_gens`. [INFO] [stderr] --> src/ga.rs:187:14 [INFO] [stderr] | [INFO] [stderr] 187 | for i in 0 .. num_of_executions { [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] 187 | for in opt_of_gens.iter().take(num_of_executions) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/ga.rs:173:43 [INFO] [stderr] | [INFO] [stderr] 173 | if pop.fit_array[0] >= 1.0 && found_opt == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!found_opt` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `best_of_gens`. [INFO] [stderr] --> src/ga.rs:182:14 [INFO] [stderr] | [INFO] [stderr] 182 | for i in 0 .. num_of_executions { [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] 182 | for in best_of_gens.iter().take(num_of_executions) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `opt_of_gens`. [INFO] [stderr] --> src/ga.rs:187:14 [INFO] [stderr] | [INFO] [stderr] 187 | for i in 0 .. num_of_executions { [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] 187 | for in opt_of_gens.iter().take(num_of_executions) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/population.rs:215:9 [INFO] [stderr] | [INFO] [stderr] 215 | / match fmin > (c * favg - fmax) / (c - 1.0) { [INFO] [stderr] 216 | | true => { [INFO] [stderr] 217 | | alpha = (favg * (c - 1.0)) / (fmax - favg); [INFO] [stderr] 218 | | beta = (favg * (fmax - c * favg)) / (fmax - favg); [INFO] [stderr] ... | [INFO] [stderr] 223 | | } [INFO] [stderr] 224 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 215 | if fmin > (c * favg - fmax) / (c - 1.0) { [INFO] [stderr] 216 | alpha = (favg * (c - 1.0)) / (fmax - favg); [INFO] [stderr] 217 | beta = (favg * (fmax - c * favg)) / (fmax - favg); [INFO] [stderr] 218 | } else { [INFO] [stderr] 219 | alpha = favg / (favg - fmin); [INFO] [stderr] 220 | beta = (-fmin * favg) / (favg - fmin); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/population.rs:248:32 [INFO] [stderr] | [INFO] [stderr] 248 | let mut new_range = if self.generation_gap == true {(new_percentage * self.pop_size as f32).floor() as usize} else {self.pop_size}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.generation_gap` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/population.rs:250:13 [INFO] [stderr] | [INFO] [stderr] 250 | new_range = new_range - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `new_range -= 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/population.rs:253:12 [INFO] [stderr] | [INFO] [stderr] 253 | if self.sharing == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.sharing` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/population.rs:282:12 [INFO] [stderr] | [INFO] [stderr] 282 | if self.generation_gap == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.generation_gap` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/population.rs:215:9 [INFO] [stderr] | [INFO] [stderr] 215 | / match fmin > (c * favg - fmax) / (c - 1.0) { [INFO] [stderr] 216 | | true => { [INFO] [stderr] 217 | | alpha = (favg * (c - 1.0)) / (fmax - favg); [INFO] [stderr] 218 | | beta = (favg * (fmax - c * favg)) / (fmax - favg); [INFO] [stderr] ... | [INFO] [stderr] 223 | | } [INFO] [stderr] 224 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/population.rs:294:19 [INFO] [stderr] | [INFO] [stderr] 294 | } else if self.crowding == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.crowding` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 215 | if fmin > (c * favg - fmax) / (c - 1.0) { [INFO] [stderr] 216 | alpha = (favg * (c - 1.0)) / (fmax - favg); [INFO] [stderr] 217 | beta = (favg * (fmax - c * favg)) / (fmax - favg); [INFO] [stderr] 218 | } else { [INFO] [stderr] 219 | alpha = favg / (favg - fmin); [INFO] [stderr] 220 | beta = (-fmin * favg) / (favg - fmin); [INFO] [stderr] ... [INFO] [stderr] warning: the loop variable `i` is only used to index `new_pop`. [INFO] [stderr] --> src/population.rs:296:22 [INFO] [stderr] | [INFO] [stderr] 296 | for i in 0 .. new_pop.len() { [INFO] [stderr] [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] 296 | for in &new_pop { [INFO] [stderr] | ^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/population.rs:248:32 [INFO] [stderr] | [INFO] [stderr] 248 | let mut new_range = if self.generation_gap == true {(new_percentage * self.pop_size as f32).floor() as usize} else {self.pop_size}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.generation_gap` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/population.rs:250:13 [INFO] [stderr] | [INFO] [stderr] 250 | new_range = new_range - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `new_range -= 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/population.rs:253:12 [INFO] [stderr] | [INFO] [stderr] 253 | if self.sharing == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.sharing` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/population.rs:282:12 [INFO] [stderr] | [INFO] [stderr] 282 | if self.generation_gap == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.generation_gap` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/population.rs:365:12 [INFO] [stderr] | [INFO] [stderr] 365 | if perm == true { [INFO] [stderr] | ^^^^^^^^^^^^ help: try simplifying it as shown: `perm` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/population.rs:294:19 [INFO] [stderr] | [INFO] [stderr] 294 | } else if self.crowding == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.crowding` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `new_pop`. [INFO] [stderr] --> src/population.rs:296:22 [INFO] [stderr] | [INFO] [stderr] 296 | for i in 0 .. new_pop.len() { [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] 296 | for in &new_pop { [INFO] [stderr] | ^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/population.rs:400:17 [INFO] [stderr] | [INFO] [stderr] 400 | variability = variability + helpers::euclidean_distance(&self.individuals[i],&self.individuals[j]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `variability += helpers::euclidean_distance(&self.individuals[i],&self.individuals[j])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/population.rs:455:17 [INFO] [stderr] | [INFO] [stderr] 455 | variability = variability + helpers::euclidean_distance(&self.individuals[i],&self.individuals[j]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `variability += helpers::euclidean_distance(&self.individuals[i],&self.individuals[j])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/population.rs:365:12 [INFO] [stderr] | [INFO] [stderr] 365 | if perm == true { [INFO] [stderr] | ^^^^^^^^^^^^ help: try simplifying it as shown: `perm` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/population.rs:400:17 [INFO] [stderr] | [INFO] [stderr] 400 | variability = variability + helpers::euclidean_distance(&self.individuals[i],&self.individuals[j]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `variability += helpers::euclidean_distance(&self.individuals[i],&self.individuals[j])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/population.rs:507:17 [INFO] [stderr] | [INFO] [stderr] 507 | variability = variability + helpers::hamming_distance(&self.individuals[i],&self.individuals[j]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `variability += helpers::hamming_distance(&self.individuals[i],&self.individuals[j])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/population.rs:542:36 [INFO] [stderr] | [INFO] [stderr] 542 | let distance = helpers::hamming_distance(&self.individuals[i], &self.individuals[j]) as f64 / self.ind_size as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(helpers::hamming_distance(&self.individuals[i], &self.individuals[j]))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/population.rs:564:36 [INFO] [stderr] | [INFO] [stderr] 564 | let distance = helpers::hamming_distance(&self.individuals[i], &self.individuals[j]) as f64 / self.ind_size as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(helpers::hamming_distance(&self.individuals[i], &self.individuals[j]))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/fitness.rs:17:31 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn binary_alternate (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | fit = fit + 1.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `fit += 1.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/fitness.rs:31:33 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn bin_parps_function (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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/fitness.rs:41:32 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn bin_radio_factory (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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/fitness.rs:57:38 [INFO] [stderr] | [INFO] [stderr] 57 | pub fn bin_pattern_recognition (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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/fitness.rs:69:33 [INFO] [stderr] | [INFO] [stderr] 69 | pub fn fully_deceptive_f3 (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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/fitness.rs:92:34 [INFO] [stderr] | [INFO] [stderr] 92 | pub fn fully_deceptive_f3s (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/population.rs:455:17 [INFO] [stderr] | [INFO] [stderr] 455 | variability = variability + helpers::euclidean_distance(&self.individuals[i],&self.individuals[j]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `variability += helpers::euclidean_distance(&self.individuals[i],&self.individuals[j])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/fitness.rs:119:26 [INFO] [stderr] | [INFO] [stderr] 119 | pub fn deceptive_n (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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: equality checks against true are unnecessary [INFO] [stderr] --> src/fitness.rs:129:16 [INFO] [stderr] | [INFO] [stderr] 129 | if ind[i] == true { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try simplifying it as shown: `ind[i]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [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/fitness.rs:150:35 [INFO] [stderr] | [INFO] [stderr] 150 | pub fn int_parity_alternate (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i64]` [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 boolean expression can be simplified [INFO] [stderr] --> src/fitness.rs:155:12 [INFO] [stderr] | [INFO] [stderr] 155 | if ((ind[current] % 2 == 0) && (ind[next] % 2 != 0)) || ((ind[current] % 2 != 0) && (ind[next] % 2 == 0)){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(ind[current] % 2 == 0) && (ind[next] % 2 != 0) || ind[current] % 2 != 0 && ind[next] % 2 == 0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | fit = fit + 1.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `fit += 1.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/fitness.rs:162:23 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn n_queens (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i64]` [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/fitness.rs:174:37 [INFO] [stderr] | [INFO] [stderr] 174 | pub fn labirinth_minimum_path (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i64]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/population.rs:507:17 [INFO] [stderr] | [INFO] [stderr] 507 | variability = variability + helpers::hamming_distance(&self.individuals[i],&self.individuals[j]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `variability += helpers::hamming_distance(&self.individuals[i],&self.individuals[j])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/population.rs:542:36 [INFO] [stderr] | [INFO] [stderr] 542 | let distance = helpers::hamming_distance(&self.individuals[i], &self.individuals[j]) as f64 / self.ind_size as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(helpers::hamming_distance(&self.individuals[i], &self.individuals[j]))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/population.rs:564:36 [INFO] [stderr] | [INFO] [stderr] 564 | let distance = helpers::hamming_distance(&self.individuals[i], &self.individuals[j]) as f64 / self.ind_size as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(helpers::hamming_distance(&self.individuals[i], &self.individuals[j]))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/fitness.rs:17:31 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn binary_alternate (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | fit = fit + 1.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `fit += 1.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/fitness.rs:31:33 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn bin_parps_function (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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: the loop variable `i` is only used to index `ind`. [INFO] [stderr] --> src/fitness.rs:214:14 [INFO] [stderr] | [INFO] [stderr] 214 | for i in 0usize .. ind.len() { [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] 214 | for in &ind { [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/fitness.rs:41:32 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn bin_radio_factory (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:218:27 [INFO] [stderr] | [INFO] [stderr] 218 | 1 => {x = x - 1; steps += 1}, [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `x -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:225:27 [INFO] [stderr] | [INFO] [stderr] 225 | 1 => {x = x + 1; steps += 1}, [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `x += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:231:27 [INFO] [stderr] | [INFO] [stderr] 231 | 1 => {y = y + 1; steps += 1}, [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `y += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/fitness.rs:57:38 [INFO] [stderr] | [INFO] [stderr] 57 | pub fn bin_pattern_recognition (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:237:27 [INFO] [stderr] | [INFO] [stderr] 237 | 1 => {y = y - 1; steps += 1}, [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `y -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/fitness.rs:256:34 [INFO] [stderr] | [INFO] [stderr] 256 | pub fn float_quadratic_min (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[f64]` [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/fitness.rs:69:33 [INFO] [stderr] | [INFO] [stderr] 69 | pub fn fully_deceptive_f3 (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:263:9 [INFO] [stderr] | [INFO] [stderr] 263 | fit = fit + (value * value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fit += (value * value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/helpers.rs:12:26 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn bin_to_int (bstr: &Vec) -> i64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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/fitness.rs:92:34 [INFO] [stderr] | [INFO] [stderr] 92 | pub fn fully_deceptive_f3s (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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: the variable `power` is used as a loop counter. Consider using `for (power, item) in (0..bstr.len()).rev().enumerate()` or similar iterators [INFO] [stderr] --> src/helpers.rs:15:14 [INFO] [stderr] | [INFO] [stderr] 15 | for i in (0..bstr.len()).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [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/fitness.rs:119:26 [INFO] [stderr] | [INFO] [stderr] 119 | pub fn deceptive_n (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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: equality checks against true are unnecessary [INFO] [stderr] --> src/fitness.rs:129:16 [INFO] [stderr] | [INFO] [stderr] 129 | if ind[i] == true { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try simplifying it as shown: `ind[i]` [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/helpers.rs:54:32 [INFO] [stderr] | [INFO] [stderr] 54 | let split = contents.split("\n"); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [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: single-character string constant used as pattern [INFO] [stderr] --> src/helpers.rs:57:27 [INFO] [stderr] | [INFO] [stderr] 57 | let arg = s.split("="); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/helpers.rs:63:29 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn print_vector(vec: &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: the loop variable `i` is only used to index `vec`. [INFO] [stderr] --> src/helpers.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | for i in 0 .. vec.len() { [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] 65 | for in &vec { [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/helpers.rs:71:32 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn hamming_distance(v1: &Vec, v2: &Vec) -> u32 [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/helpers.rs:71:45 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn hamming_distance(v1: &Vec, v2: &Vec) -> u32 [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/helpers.rs:82:34 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn euclidean_distance(v1: &Vec, v2: &Vec) -> T [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/helpers.rs:82:47 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn euclidean_distance(v1: &Vec, v2: &Vec) -> T [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/helpers.rs:93:31 [INFO] [stderr] | [INFO] [stderr] 93 | pub fn manhattan_distance(v1: &Vec, v2: &Vec) -> i64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i64]` [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/helpers.rs:93:46 [INFO] [stderr] | [INFO] [stderr] 93 | pub fn manhattan_distance(v1: &Vec, v2: &Vec) -> i64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i64]` [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/helpers.rs:101:33 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn is_in(value: &T, vec: &Vec) -> (bool,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: the loop variable `i` is used to index `vec` [INFO] [stderr] --> src/helpers.rs:103:14 [INFO] [stderr] | [INFO] [stderr] 103 | for i in 0usize .. vec.len() { [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] 103 | for (i, ) in vec.iter().enumerate() { [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/fitness.rs:150:35 [INFO] [stderr] | [INFO] [stderr] 150 | pub fn int_parity_alternate (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i64]` [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/helpers.rs:111:35 [INFO] [stderr] | [INFO] [stderr] 111 | pub fn has_repeated_elements(vec: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i64]` [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 boolean expression can be simplified [INFO] [stderr] --> src/fitness.rs:155:12 [INFO] [stderr] | [INFO] [stderr] 155 | if ((ind[current] % 2 == 0) && (ind[next] % 2 != 0)) || ((ind[current] % 2 != 0) && (ind[next] % 2 == 0)){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(ind[current] % 2 == 0) && (ind[next] % 2 != 0) || ind[current] % 2 != 0 && ind[next] % 2 == 0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/helpers.rs:114:12 [INFO] [stderr] | [INFO] [stderr] 114 | if marked[vec[i].abs() as usize] == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!marked[vec[i].abs() as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | fit = fit + 1.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `fit += 1.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/fitness.rs:162:23 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn n_queens (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i64]` [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/fitness.rs:174:37 [INFO] [stderr] | [INFO] [stderr] 174 | pub fn labirinth_minimum_path (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i64]` [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: the variable `matched_section_index` is used as a loop counter. Consider using `for (matched_section_index, item) in beg .. end.enumerate()` or similar iterators [INFO] [stderr] --> src/crossover.rs:61:14 [INFO] [stderr] | [INFO] [stderr] 61 | for i in beg .. end { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:62:21 [INFO] [stderr] | [INFO] [stderr] 62 | slice1.push(parent1[i].clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `parent1[i]` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:63:21 [INFO] [stderr] | [INFO] [stderr] 63 | slice2.push(parent2[i].clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `parent2[i]` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:65:22 [INFO] [stderr] | [INFO] [stderr] 65 | parent1[i] = slice2[matched_section_index].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `slice2[matched_section_index]` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:66:22 [INFO] [stderr] | [INFO] [stderr] 66 | parent2[i] = slice1[matched_section_index].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `slice1[matched_section_index]` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:87:26 [INFO] [stderr] | [INFO] [stderr] 87 | parent1[i] = slice1[position].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `slice1[position]` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:91:26 [INFO] [stderr] | [INFO] [stderr] 91 | parent2[i] = slice2[position2].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `slice2[position2]` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:98:26 [INFO] [stderr] | [INFO] [stderr] 98 | parent1[i] = slice1[position].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `slice1[position]` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:102:26 [INFO] [stderr] | [INFO] [stderr] 102 | parent2[i] = slice2[position2].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `slice2[position2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/crossover.rs:125:12 [INFO] [stderr] | [INFO] [stderr] 125 | if a != b { [INFO] [stderr] | ^^^^^^ help: consider comparing them within some error: `(a - b).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/crossover.rs:125:12 [INFO] [stderr] | [INFO] [stderr] 125 | if a != b { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `ind`. [INFO] [stderr] --> src/fitness.rs:214:14 [INFO] [stderr] | [INFO] [stderr] 214 | for i in 0usize .. ind.len() { [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] 214 | for in &ind { [INFO] [stderr] | ^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:218:27 [INFO] [stderr] | [INFO] [stderr] 218 | 1 => {x = x - 1; steps += 1}, [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `x -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/mutation.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | pop.individuals[ind][index] = y1 * delta + pop.individuals[ind][index]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `pop.individuals[ind][index] += y1 * delta` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/selection.rs:18:24 [INFO] [stderr] | [INFO] [stderr] 18 | let fit_array = if pop.linear_scaling == false {pop.fit_array.clone()} else {pop.fitness_scaling()}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!pop.linear_scaling` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:225:27 [INFO] [stderr] | [INFO] [stderr] 225 | 1 => {x = x + 1; steps += 1}, [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `x += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:231:27 [INFO] [stderr] | [INFO] [stderr] 231 | 1 => {y = y + 1; steps += 1}, [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `y += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:237:27 [INFO] [stderr] | [INFO] [stderr] 237 | 1 => {y = y - 1; steps += 1}, [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `y -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/fitness.rs:256:34 [INFO] [stderr] | [INFO] [stderr] 256 | pub fn float_quadratic_min (ind: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[f64]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/fitness.rs:263:9 [INFO] [stderr] | [INFO] [stderr] 263 | fit = fit + (value * value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fit += (value * value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/helpers.rs:12:26 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn bin_to_int (bstr: &Vec) -> i64 { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[bool]` [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: the variable `power` is used as a loop counter. Consider using `for (power, item) in (0..bstr.len()).rev().enumerate()` or similar iterators [INFO] [stderr] --> src/helpers.rs:15:14 [INFO] [stderr] | [INFO] [stderr] 15 | for i in (0..bstr.len()).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/helpers.rs:54:32 [INFO] [stderr] | [INFO] [stderr] 54 | let split = contents.split("\n"); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [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: single-character string constant used as pattern [INFO] [stderr] --> src/helpers.rs:57:27 [INFO] [stderr] | [INFO] [stderr] 57 | let arg = s.split("="); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/helpers.rs:63:29 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn print_vector(vec: &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: the loop variable `i` is only used to index `vec`. [INFO] [stderr] --> src/helpers.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | for i in 0 .. vec.len() { [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] 65 | for in &vec { [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/helpers.rs:71:32 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn hamming_distance(v1: &Vec, v2: &Vec) -> u32 [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/helpers.rs:71:45 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn hamming_distance(v1: &Vec, v2: &Vec) -> u32 [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/helpers.rs:82:34 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn euclidean_distance(v1: &Vec, v2: &Vec) -> T [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/helpers.rs:82:47 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn euclidean_distance(v1: &Vec, v2: &Vec) -> T [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/helpers.rs:93:31 [INFO] [stderr] | [INFO] [stderr] 93 | pub fn manhattan_distance(v1: &Vec, v2: &Vec) -> i64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i64]` [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/helpers.rs:93:46 [INFO] [stderr] | [INFO] [stderr] 93 | pub fn manhattan_distance(v1: &Vec, v2: &Vec) -> i64 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i64]` [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/helpers.rs:101:33 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn is_in(value: &T, vec: &Vec) -> (bool,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: the loop variable `i` is used to index `vec` [INFO] [stderr] --> src/helpers.rs:103:14 [INFO] [stderr] | [INFO] [stderr] 103 | for i in 0usize .. vec.len() { [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] 103 | for (i, ) in vec.iter().enumerate() { [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/helpers.rs:111:35 [INFO] [stderr] | [INFO] [stderr] 111 | pub fn has_repeated_elements(vec: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i64]` [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: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/helpers.rs:114:12 [INFO] [stderr] | [INFO] [stderr] 114 | if marked[vec[i].abs() as usize] == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!marked[vec[i].abs() as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] warning: the variable `matched_section_index` is used as a loop counter. Consider using `for (matched_section_index, item) in beg .. end.enumerate()` or similar iterators [INFO] [stderr] --> src/crossover.rs:61:14 [INFO] [stderr] | [INFO] [stderr] 61 | for i in beg .. end { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:62:21 [INFO] [stderr] | [INFO] [stderr] 62 | slice1.push(parent1[i].clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `parent1[i]` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:63:21 [INFO] [stderr] | [INFO] [stderr] 63 | slice2.push(parent2[i].clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `parent2[i]` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:65:22 [INFO] [stderr] | [INFO] [stderr] 65 | parent1[i] = slice2[matched_section_index].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `slice2[matched_section_index]` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:66:22 [INFO] [stderr] | [INFO] [stderr] 66 | parent2[i] = slice1[matched_section_index].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `slice1[matched_section_index]` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:87:26 [INFO] [stderr] | [INFO] [stderr] 87 | parent1[i] = slice1[position].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `slice1[position]` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:91:26 [INFO] [stderr] | [INFO] [stderr] 91 | parent2[i] = slice2[position2].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `slice2[position2]` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:98:26 [INFO] [stderr] | [INFO] [stderr] 98 | parent1[i] = slice1[position].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `slice1[position]` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/crossover.rs:102:26 [INFO] [stderr] | [INFO] [stderr] 102 | parent2[i] = slice2[position2].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `slice2[position2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/crossover.rs:125:12 [INFO] [stderr] | [INFO] [stderr] 125 | if a != b { [INFO] [stderr] | ^^^^^^ help: consider comparing them within some error: `(a - b).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/crossover.rs:125:12 [INFO] [stderr] | [INFO] [stderr] 125 | if a != b { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: Could not compile `genetic-algorithm-rust`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/mutation.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | pop.individuals[ind][index] = y1 * delta + pop.individuals[ind][index]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `pop.individuals[ind][index] += y1 * delta` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/selection.rs:18:24 [INFO] [stderr] | [INFO] [stderr] 18 | let fit_array = if pop.linear_scaling == false {pop.fit_array.clone()} else {pop.fitness_scaling()}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!pop.linear_scaling` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `genetic-algorithm-rust`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "5449901beb901283064bafa57d8c6383e6e6145d272d4979e0a1924a5695efa8"` [INFO] running `"docker" "rm" "-f" "5449901beb901283064bafa57d8c6383e6e6145d272d4979e0a1924a5695efa8"` [INFO] [stdout] 5449901beb901283064bafa57d8c6383e6e6145d272d4979e0a1924a5695efa8