[INFO] crate genevo 0.1.4 is already in cache [INFO] extracting crate genevo 0.1.4 into work/ex/clippy-test-run/sources/stable/reg/genevo/0.1.4 [INFO] extracting crate genevo 0.1.4 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/genevo/0.1.4 [INFO] validating manifest of genevo-0.1.4 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 genevo-0.1.4 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 genevo-0.1.4 [INFO] removed 0 missing examples [INFO] finished frobbing genevo-0.1.4 [INFO] frobbed toml for genevo-0.1.4 written to work/ex/clippy-test-run/sources/stable/reg/genevo/0.1.4/Cargo.toml [INFO] started frobbing genevo-0.1.4 [INFO] removed 0 missing examples [INFO] finished frobbing genevo-0.1.4 [INFO] frobbed toml for genevo-0.1.4 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/genevo/0.1.4/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting genevo-0.1.4 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/genevo/0.1.4:/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] ebc1550c07b9a27b1194d0389bb7a1e3dca2f0e17e4e41e20581cade30cb06df [INFO] running `"docker" "start" "-a" "ebc1550c07b9a27b1194d0389bb7a1e3dca2f0e17e4e41e20581cade30cb06df"` [INFO] [stderr] Checking xorshift v0.1.3 [INFO] [stderr] Checking hamcrest v0.1.5 [INFO] [stderr] Checking quickcheck v0.5.0 [INFO] [stderr] Checking genevo v0.1.4 (/opt/crater/workdir) [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ga::builder::EmptyGeneticAlgorithmBuilder` [INFO] [stderr] --> src/ga/builder.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | / pub fn new() -> EmptyGeneticAlgorithmBuilder { [INFO] [stderr] 66 | | EmptyGeneticAlgorithmBuilder { [INFO] [stderr] 67 | | _g: PhantomData, [INFO] [stderr] 68 | | _f: PhantomData, [INFO] [stderr] 69 | | } [INFO] [stderr] 70 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 54 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ga/mod.rs:182:30 [INFO] [stderr] | [INFO] [stderr] 182 | processing_time: self.processing_time.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.processing_time` [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: use of `expect` followed by a function call [INFO] [stderr] --> src/ga/mod.rs:256:14 [INFO] [stderr] | [INFO] [stderr] 256 | .expect(&format!("No fitness value of {:?} found in this EvaluatedPopulation", [INFO] [stderr] | ______________^ [INFO] [stderr] 257 | | &score_board.highest_fitness())); [INFO] [stderr] | |_____________________________________________________________^ help: try this: `unwrap_or_else(|| panic!("No fitness value of {:?} found in this EvaluatedPopulation", &score_board.highest_fitness()))` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/ga/mod.rs:285:24 [INFO] [stderr] | [INFO] [stderr] 285 | let mut rng1 = rng.clone(); rng1.jump(1); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*rng` [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/ga/mod.rs:286:24 [INFO] [stderr] | [INFO] [stderr] 286 | let mut rng2 = rng.clone(); rng2.jump(2); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*rng` [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/simulation/simulator.rs:135:34 [INFO] [stderr] | [INFO] [stderr] 135 | processing_time: self.algorithm.processing_time().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.algorithm.processing_time()` [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/simulation/simulator.rs:174:47 [INFO] [stderr] | [INFO] [stderr] 174 | let processing_time = self.processing_time.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.processing_time` [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/simulation/simulator.rs:212:43 [INFO] [stderr] | [INFO] [stderr] 212 | let processing_time = self.processing_time.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.processing_time` [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: redundant closure found [INFO] [stderr] --> src/simulation/simulator.rs:249:40 [INFO] [stderr] | [INFO] [stderr] 249 | self.algorithm.reset().map_err(|error| SimError::AlgorithmError(error)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SimError::AlgorithmError` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `recombination::discrete::UniformCrossBreeder` [INFO] [stderr] --> src/recombination/discrete.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | / pub fn new() -> Self { [INFO] [stderr] 29 | | UniformCrossBreeder {} [INFO] [stderr] 30 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 25 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `recombination::discrete::DiscreteCrossBreeder` [INFO] [stderr] --> src/recombination/discrete.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | / pub fn new() -> Self { [INFO] [stderr] 76 | | DiscreteCrossBreeder {} [INFO] [stderr] 77 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 72 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `bit` is used to index `partner` [INFO] [stderr] --> src/recombination/discrete.rs:234:28 [INFO] [stderr] | [INFO] [stderr] 234 | for bit in start..end { [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] 234 | for (bit, ) in partner.iter().enumerate().take(end).skip(start) { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `recombination::order::OrderOneCrossover` [INFO] [stderr] --> src/recombination/order.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / pub fn new() -> Self { [INFO] [stderr] 27 | | OrderOneCrossover {} [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 23 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `recombination::order::PartiallyMappedCrossover` [INFO] [stderr] --> src/recombination/order.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | / pub fn new() -> Self { [INFO] [stderr] 58 | | PartiallyMappedCrossover {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 54 | #[derive(Default)] [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/recombination/order.rs:78:55 [INFO] [stderr] | [INFO] [stderr] 78 | fn multi_parents_cyclic_crossover<'a, FN, R>(parents: &'a Parents>, crossover: FN, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:66 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(sign)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [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: taken reference of right operand [INFO] [stderr] --> src/termination/limit.rs:58:12 [INFO] [stderr] | [INFO] [stderr] 58 | if highest_fitness >= &self.fitness_target { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^-------------------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `self.fitness_target` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/types/fmt.rs:68:40 [INFO] [stderr] | [INFO] [stderr] 68 | fn fmt_duration_seconds(duration_secs: &i64, always_print_till_seconds: bool) -> String { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/types/fmt.rs:128:45 [INFO] [stderr] | [INFO] [stderr] 128 | fn fmt_duration_sub_seconds(duration_nanos: &i64, always_print_millis: bool) -> String { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/types/mod.rs:44:21 [INFO] [stderr] | [INFO] [stderr] 44 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] ... [INFO] [stderr] 51 | implement_fitness_for_signed_integer!(i8, i16, i32, i64, isize); [INFO] [stderr] | ---------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/types/mod.rs:44:21 [INFO] [stderr] | [INFO] [stderr] 44 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] ... [INFO] [stderr] 51 | implement_fitness_for_signed_integer!(i8, i16, i32, i64, isize); [INFO] [stderr] | ---------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/types/mod.rs:44:21 [INFO] [stderr] | [INFO] [stderr] 44 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] ... [INFO] [stderr] 51 | implement_fitness_for_signed_integer!(i8, i16, i32, i64, isize); [INFO] [stderr] | ---------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/types/mod.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] ... [INFO] [stderr] 81 | implement_fitness_for_unsigned_integer!(u8, u16, u32, u64, usize); [INFO] [stderr] | ------------------------------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/types/mod.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] ... [INFO] [stderr] 81 | implement_fitness_for_unsigned_integer!(u8, u16, u32, u64, usize); [INFO] [stderr] | ------------------------------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/types/mod.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] ... [INFO] [stderr] 81 | implement_fitness_for_unsigned_integer!(u8, u16, u32, u64, usize); [INFO] [stderr] | ------------------------------------------------------------------ in this macro invocation [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] error[E0554]: #![feature] may not be used on the stable release channel [INFO] [stderr] --> benches/index_of_value_in_vector.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(test)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0554`. [INFO] [stderr] error: Could not compile `genevo`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> examples/queens/main.rs:47:32 [INFO] [stderr] | [INFO] [stderr] 47 | fn count_collisions(positions: &Positions) -> i16 { [INFO] [stderr] | ^^^^^^^^^^ [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: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> examples/queens/main.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | let score = (max_collisions - collisions) as f32 / (max_collisions + collisions) as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(max_collisions - collisions)` [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 i16 to f32 may become silently lossy if types change [INFO] [stderr] --> examples/queens/main.rs:73:60 [INFO] [stderr] | [INFO] [stderr] 73 | let score = (max_collisions - collisions) as f32 / (max_collisions + collisions) as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(max_collisions + collisions)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f64 may become silently lossy if types change [INFO] [stderr] --> examples/queens/main.rs:94:27 [INFO] [stderr] | [INFO] [stderr] 94 | y: value.y + (range.y as f64 * adjustment * sign as f64) as i16 [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(range.y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> examples/queens/main.rs:94:57 [INFO] [stderr] | [INFO] [stderr] 94 | y: value.y + (range.y as f64 * adjustment * sign as f64) as i16 [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(sign)` [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: digits grouped inconsistently by underscores [INFO] [stderr] --> examples/monkeys/main.rs:77:32 [INFO] [stderr] | [INFO] [stderr] 77 | (fraction * fraction * 100_00. + 0.5).floor() as usize [INFO] [stderr] | ^^^^^^^ help: consider: `10_000.` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> examples/monkeys/main.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | 100_00 [INFO] [stderr] | ^^^^^^ help: consider: `10_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ga::builder::EmptyGeneticAlgorithmBuilder` [INFO] [stderr] --> src/ga/builder.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | / pub fn new() -> EmptyGeneticAlgorithmBuilder { [INFO] [stderr] 66 | | EmptyGeneticAlgorithmBuilder { [INFO] [stderr] 67 | | _g: PhantomData, [INFO] [stderr] 68 | | _f: PhantomData, [INFO] [stderr] 69 | | } [INFO] [stderr] 70 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 54 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ga/mod.rs:182:30 [INFO] [stderr] | [INFO] [stderr] 182 | processing_time: self.processing_time.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.processing_time` [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: use of `expect` followed by a function call [INFO] [stderr] --> src/ga/mod.rs:256:14 [INFO] [stderr] | [INFO] [stderr] 256 | .expect(&format!("No fitness value of {:?} found in this EvaluatedPopulation", [INFO] [stderr] | ______________^ [INFO] [stderr] 257 | | &score_board.highest_fitness())); [INFO] [stderr] | |_____________________________________________________________^ help: try this: `unwrap_or_else(|| panic!("No fitness value of {:?} found in this EvaluatedPopulation", &score_board.highest_fitness()))` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/ga/mod.rs:285:24 [INFO] [stderr] | [INFO] [stderr] 285 | let mut rng1 = rng.clone(); rng1.jump(1); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*rng` [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/ga/mod.rs:286:24 [INFO] [stderr] | [INFO] [stderr] 286 | let mut rng2 = rng.clone(); rng2.jump(2); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*rng` [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/simulation/simulator.rs:135:34 [INFO] [stderr] | [INFO] [stderr] 135 | processing_time: self.algorithm.processing_time().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.algorithm.processing_time()` [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/simulation/simulator.rs:174:47 [INFO] [stderr] | [INFO] [stderr] 174 | let processing_time = self.processing_time.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.processing_time` [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/simulation/simulator.rs:212:43 [INFO] [stderr] | [INFO] [stderr] 212 | let processing_time = self.processing_time.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.processing_time` [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: redundant closure found [INFO] [stderr] --> src/simulation/simulator.rs:249:40 [INFO] [stderr] | [INFO] [stderr] 249 | self.algorithm.reset().map_err(|error| SimError::AlgorithmError(error)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SimError::AlgorithmError` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `recombination::discrete::UniformCrossBreeder` [INFO] [stderr] --> src/recombination/discrete.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | / pub fn new() -> Self { [INFO] [stderr] 29 | | UniformCrossBreeder {} [INFO] [stderr] 30 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 25 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `recombination::discrete::DiscreteCrossBreeder` [INFO] [stderr] --> src/recombination/discrete.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | / pub fn new() -> Self { [INFO] [stderr] 76 | | DiscreteCrossBreeder {} [INFO] [stderr] 77 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 72 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `bit` is used to index `partner` [INFO] [stderr] --> src/recombination/discrete.rs:234:28 [INFO] [stderr] | [INFO] [stderr] 234 | for bit in start..end { [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] 234 | for (bit, ) in partner.iter().enumerate().take(end).skip(start) { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `recombination::order::OrderOneCrossover` [INFO] [stderr] --> src/recombination/order.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / pub fn new() -> Self { [INFO] [stderr] 27 | | OrderOneCrossover {} [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 23 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `recombination::order::PartiallyMappedCrossover` [INFO] [stderr] --> src/recombination/order.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | / pub fn new() -> Self { [INFO] [stderr] 58 | | PartiallyMappedCrossover {} [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 54 | #[derive(Default)] [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/recombination/order.rs:78:55 [INFO] [stderr] | [INFO] [stderr] 78 | fn multi_parents_cyclic_crossover<'a, FN, R>(parents: &'a Parents>, crossover: FN, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> tests/algorithm_builder.rs:27:14 [INFO] [stderr] | [INFO] [stderr] 27 | (fitness_values.iter().sum::() as f64 / fitness_values.len() as f64 + 0.5).floor() as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(fitness_values.iter().sum::())` [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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:66 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(sign)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:22 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(value)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mutation/value.rs:224:37 [INFO] [stderr] | [INFO] [stderr] 224 | (value as f64 + *range as f64 * adjustment * sign as f64) as $t [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(*range)` [INFO] [stderr] ... [INFO] [stderr] 231 | impl_breeder_mutation!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); [INFO] [stderr] | ------------------------------------------------------------------------------------- in this macro invocation [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: taken reference of right operand [INFO] [stderr] --> src/termination/limit.rs:58:12 [INFO] [stderr] | [INFO] [stderr] 58 | if highest_fitness >= &self.fitness_target { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^-------------------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `self.fitness_target` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/types/fmt.rs:68:40 [INFO] [stderr] | [INFO] [stderr] 68 | fn fmt_duration_seconds(duration_secs: &i64, always_print_till_seconds: bool) -> String { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/types/fmt.rs:128:45 [INFO] [stderr] | [INFO] [stderr] 128 | fn fmt_duration_sub_seconds(duration_nanos: &i64, always_print_millis: bool) -> String { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `7` [INFO] [stderr] --> src/types/fmt_tests.rs:165:42 [INFO] [stderr] | [INFO] [stderr] 165 | assert_that!(&Duration::milliseconds(1 * 7 * 24 * 3600 * 1_000 + 999).fmt(), is(equal_to("1w 0d 0h 0m 0s 999ms"))); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/types/mod.rs:44:21 [INFO] [stderr] | [INFO] [stderr] 44 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] ... [INFO] [stderr] 51 | implement_fitness_for_signed_integer!(i8, i16, i32, i64, isize); [INFO] [stderr] | ---------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/types/mod.rs:44:21 [INFO] [stderr] | [INFO] [stderr] 44 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] ... [INFO] [stderr] 51 | implement_fitness_for_signed_integer!(i8, i16, i32, i64, isize); [INFO] [stderr] | ---------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/types/mod.rs:44:21 [INFO] [stderr] | [INFO] [stderr] 44 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] ... [INFO] [stderr] 51 | implement_fitness_for_signed_integer!(i8, i16, i32, i64, isize); [INFO] [stderr] | ---------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/types/mod.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] ... [INFO] [stderr] 81 | implement_fitness_for_unsigned_integer!(u8, u16, u32, u64, usize); [INFO] [stderr] | ------------------------------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f64 may become silently lossy if types change [INFO] [stderr] --> src/types/mod.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] ... [INFO] [stderr] 81 | implement_fitness_for_unsigned_integer!(u8, u16, u32, u64, usize); [INFO] [stderr] | ------------------------------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/types/mod.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | *self as f64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(*self)` [INFO] [stderr] ... [INFO] [stderr] 81 | implement_fitness_for_unsigned_integer!(u8, u16, u32, u64, usize); [INFO] [stderr] | ------------------------------------------------------------------ in this macro invocation [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] error: build failed [INFO] running `"docker" "inspect" "ebc1550c07b9a27b1194d0389bb7a1e3dca2f0e17e4e41e20581cade30cb06df"` [INFO] running `"docker" "rm" "-f" "ebc1550c07b9a27b1194d0389bb7a1e3dca2f0e17e4e41e20581cade30cb06df"` [INFO] [stdout] ebc1550c07b9a27b1194d0389bb7a1e3dca2f0e17e4e41e20581cade30cb06df