[INFO] crate num-rational 0.2.1 is already in cache [INFO] extracting crate num-rational 0.2.1 into work/ex/clippy-test-run/sources/stable/reg/num-rational/0.2.1 [INFO] extracting crate num-rational 0.2.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/num-rational/0.2.1 [INFO] validating manifest of num-rational-0.2.1 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 num-rational-0.2.1 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 num-rational-0.2.1 [INFO] finished frobbing num-rational-0.2.1 [INFO] frobbed toml for num-rational-0.2.1 written to work/ex/clippy-test-run/sources/stable/reg/num-rational/0.2.1/Cargo.toml [INFO] started frobbing num-rational-0.2.1 [INFO] finished frobbing num-rational-0.2.1 [INFO] frobbed toml for num-rational-0.2.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/num-rational/0.2.1/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 num-rational-0.2.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/num-rational/0.2.1:/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] a7d4e291daca9e27d86b613875ae0e994740fa1e1faa932d0ade9872d368249f [INFO] running `"docker" "start" "-a" "a7d4e291daca9e27d86b613875ae0e994740fa1e1faa932d0ade9872d368249f"` [INFO] [stderr] Compiling num-rational v0.2.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | numer: numer, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `numer` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | denom: denom, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `denom` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/lib.rs:1218:13 [INFO] [stderr] | [INFO] [stderr] 1218 | let d = a.clone() * d1.clone() + d0.clone(); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/lib.rs:1227:13 [INFO] [stderr] | [INFO] [stderr] 1227 | let g = Integer::gcd(&n1, &d1); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | numer: numer, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `numer` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | denom: denom, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `denom` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/lib.rs:1218:13 [INFO] [stderr] | [INFO] [stderr] 1218 | let d = a.clone() * d1.clone() + d0.clone(); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/lib.rs:1227:13 [INFO] [stderr] | [INFO] [stderr] 1227 | let g = Integer::gcd(&n1, &d1); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:1395:77 [INFO] [stderr] | [INFO] [stderr] 1395 | assert_eq!(Ratio::::from_f64(f64::EPSILON), Some(Ratio::new(1, 4503599627370496))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `4_503_599_627_370_496` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:1793:14 [INFO] [stderr] | [INFO] [stderr] 1793 | test(3.14159265359f32, ("13176795", "4194304")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `3.141_592_653_59f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unary minus has lower precedence than method call [INFO] [stderr] --> src/lib.rs:1795:14 [INFO] [stderr] | [INFO] [stderr] 1795 | test(-2f32.powf(100.), ("-1267650600228229401496703205376", "1")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider adding parentheses to clarify your intent: `-(2f32.powf(100.))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:1798:14 [INFO] [stderr] | [INFO] [stderr] 1798 | test(684729.48391f32, ("1369459", "2")); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider: `684_729.483_91f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:1799:15 [INFO] [stderr] | [INFO] [stderr] 1799 | test(-8573.5918555f32, ("-4389679", "512")); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider: `8_573.591_855_5f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:1802:14 [INFO] [stderr] | [INFO] [stderr] 1802 | test(3.14159265359f64, ("3537118876014453", "1125899906842624")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `3.141_592_653_59f64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unary minus has lower precedence than method call [INFO] [stderr] --> src/lib.rs:1804:14 [INFO] [stderr] | [INFO] [stderr] 1804 | test(-2f64.powf(100.), ("-1267650600228229401496703205376", "1")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider adding parentheses to clarify your intent: `-(2f64.powf(100.))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:1805:14 [INFO] [stderr] | [INFO] [stderr] 1805 | test(684729.48391f64, ("367611342500051", "536870912")); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider: `684_729.483_91f64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:1806:15 [INFO] [stderr] | [INFO] [stderr] 1806 | test(-8573.5918555f64, ("-4713381968463931", "549755813888")); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider: `8_573.591_855_5f64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:1856:35 [INFO] [stderr] | [INFO] [stderr] 1856 | let a = Rational::new_raw(123456789, 1000); [INFO] [stderr] | ^^^^^^^^^ help: consider: `123_456_789` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:1857:35 [INFO] [stderr] | [INFO] [stderr] 1857 | let b = Rational::new_raw(123456789 * 5, 5000); [INFO] [stderr] | ^^^^^^^^^ help: consider: `123_456_789` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | / pub fn numer<'a>(&'a self) -> &'a T { [INFO] [stderr] 106 | | &self.numer [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | / pub fn denom<'a>(&'a self) -> &'a T { [INFO] [stderr] 112 | | &self.denom [INFO] [stderr] 113 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:341:13 [INFO] [stderr] | [INFO] [stderr] 341 | numer = numer << (exponent as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `numer <<= (exponent as usize)` [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] error: Suspicious use of binary operator in `AddAssign` impl [INFO] [stderr] --> src/lib.rs:503:46 [INFO] [stderr] | [INFO] [stderr] 503 | self.numer += self.denom.clone() * other.numer; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::suspicious_op_assign_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `RemAssign` impl [INFO] [stderr] --> src/lib.rs:528:46 [INFO] [stderr] | [INFO] [stderr] 528 | self.numer %= self.denom.clone() * other.numer; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `SubAssign` impl [INFO] [stderr] --> src/lib.rs:537:46 [INFO] [stderr] | [INFO] [stderr] 537 | self.numer -= self.denom.clone() * other.numer; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `AddAssign` impl [INFO] [stderr] --> src/lib.rs:546:46 [INFO] [stderr] | [INFO] [stderr] 546 | self.numer += self.denom.clone() * other; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `RemAssign` impl [INFO] [stderr] --> src/lib.rs:568:46 [INFO] [stderr] | [INFO] [stderr] 568 | self.numer %= self.denom.clone() * other; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `SubAssign` impl [INFO] [stderr] --> src/lib.rs:576:46 [INFO] [stderr] | [INFO] [stderr] 576 | self.numer -= self.denom.clone() * other; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/lib.rs:718:31 [INFO] [stderr] | [INFO] [stderr] 718 | Ratio::new(self.numer * rhs.denom, [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::suspicious_arithmetic_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/lib.rs:719:31 [INFO] [stderr] | [INFO] [stderr] 719 | self.denom * rhs.numer) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/lib.rs:731:31 [INFO] [stderr] | [INFO] [stderr] 731 | self.denom * rhs) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/lib.rs:743:40 [INFO] [stderr] | [INFO] [stderr] 743 | Ratio::new((self.numer * rhs.denom.clone()).$method(self.denom.clone() * rhs.numer), [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 759 | arith_impl!(impl Add, add); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/lib.rs:743:88 [INFO] [stderr] | [INFO] [stderr] 743 | Ratio::new((self.numer * rhs.denom.clone()).$method(self.denom.clone() * rhs.numer), [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 759 | arith_impl!(impl Add, add); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/lib.rs:744:39 [INFO] [stderr] | [INFO] [stderr] 744 | self.denom * rhs.denom) [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 759 | arith_impl!(impl Add, add); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/lib.rs:752:66 [INFO] [stderr] | [INFO] [stderr] 752 | Ratio::new(self.numer.$method(self.denom.clone() * rhs), [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 759 | arith_impl!(impl Add, add); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Sub` impl [INFO] [stderr] --> src/lib.rs:743:40 [INFO] [stderr] | [INFO] [stderr] 743 | Ratio::new((self.numer * rhs.denom.clone()).$method(self.denom.clone() * rhs.numer), [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 760 | arith_impl!(impl Sub, sub); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Sub` impl [INFO] [stderr] --> src/lib.rs:743:88 [INFO] [stderr] | [INFO] [stderr] 743 | Ratio::new((self.numer * rhs.denom.clone()).$method(self.denom.clone() * rhs.numer), [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 760 | arith_impl!(impl Sub, sub); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Sub` impl [INFO] [stderr] --> src/lib.rs:744:39 [INFO] [stderr] | [INFO] [stderr] 744 | self.denom * rhs.denom) [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 760 | arith_impl!(impl Sub, sub); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Sub` impl [INFO] [stderr] --> src/lib.rs:752:66 [INFO] [stderr] | [INFO] [stderr] 752 | Ratio::new(self.numer.$method(self.denom.clone() * rhs), [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 760 | arith_impl!(impl Sub, sub); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:1051:20 [INFO] [stderr] | [INFO] [stderr] 1051 | fn description(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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] error: aborting due to 17 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `num-rational`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | / pub fn numer<'a>(&'a self) -> &'a T { [INFO] [stderr] 106 | | &self.numer [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | / pub fn denom<'a>(&'a self) -> &'a T { [INFO] [stderr] 112 | | &self.denom [INFO] [stderr] 113 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:341:13 [INFO] [stderr] | [INFO] [stderr] 341 | numer = numer << (exponent as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `numer <<= (exponent as usize)` [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] error: Suspicious use of binary operator in `AddAssign` impl [INFO] [stderr] --> src/lib.rs:503:46 [INFO] [stderr] | [INFO] [stderr] 503 | self.numer += self.denom.clone() * other.numer; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::suspicious_op_assign_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `RemAssign` impl [INFO] [stderr] --> src/lib.rs:528:46 [INFO] [stderr] | [INFO] [stderr] 528 | self.numer %= self.denom.clone() * other.numer; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `SubAssign` impl [INFO] [stderr] --> src/lib.rs:537:46 [INFO] [stderr] | [INFO] [stderr] 537 | self.numer -= self.denom.clone() * other.numer; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `AddAssign` impl [INFO] [stderr] --> src/lib.rs:546:46 [INFO] [stderr] | [INFO] [stderr] 546 | self.numer += self.denom.clone() * other; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `RemAssign` impl [INFO] [stderr] --> src/lib.rs:568:46 [INFO] [stderr] | [INFO] [stderr] 568 | self.numer %= self.denom.clone() * other; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `SubAssign` impl [INFO] [stderr] --> src/lib.rs:576:46 [INFO] [stderr] | [INFO] [stderr] 576 | self.numer -= self.denom.clone() * other; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_op_assign_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/lib.rs:718:31 [INFO] [stderr] | [INFO] [stderr] 718 | Ratio::new(self.numer * rhs.denom, [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::suspicious_arithmetic_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/lib.rs:719:31 [INFO] [stderr] | [INFO] [stderr] 719 | self.denom * rhs.numer) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/lib.rs:731:31 [INFO] [stderr] | [INFO] [stderr] 731 | self.denom * rhs) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/lib.rs:743:40 [INFO] [stderr] | [INFO] [stderr] 743 | Ratio::new((self.numer * rhs.denom.clone()).$method(self.denom.clone() * rhs.numer), [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 759 | arith_impl!(impl Add, add); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/lib.rs:743:88 [INFO] [stderr] | [INFO] [stderr] 743 | Ratio::new((self.numer * rhs.denom.clone()).$method(self.denom.clone() * rhs.numer), [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 759 | arith_impl!(impl Add, add); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/lib.rs:744:39 [INFO] [stderr] | [INFO] [stderr] 744 | self.denom * rhs.denom) [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 759 | arith_impl!(impl Add, add); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/lib.rs:752:66 [INFO] [stderr] | [INFO] [stderr] 752 | Ratio::new(self.numer.$method(self.denom.clone() * rhs), [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 759 | arith_impl!(impl Add, add); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Sub` impl [INFO] [stderr] --> src/lib.rs:743:40 [INFO] [stderr] | [INFO] [stderr] 743 | Ratio::new((self.numer * rhs.denom.clone()).$method(self.denom.clone() * rhs.numer), [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 760 | arith_impl!(impl Sub, sub); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Sub` impl [INFO] [stderr] --> src/lib.rs:743:88 [INFO] [stderr] | [INFO] [stderr] 743 | Ratio::new((self.numer * rhs.denom.clone()).$method(self.denom.clone() * rhs.numer), [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 760 | arith_impl!(impl Sub, sub); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Sub` impl [INFO] [stderr] --> src/lib.rs:744:39 [INFO] [stderr] | [INFO] [stderr] 744 | self.denom * rhs.denom) [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 760 | arith_impl!(impl Sub, sub); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Sub` impl [INFO] [stderr] --> src/lib.rs:752:66 [INFO] [stderr] | [INFO] [stderr] 752 | Ratio::new(self.numer.$method(self.denom.clone() * rhs), [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 760 | arith_impl!(impl Sub, sub); [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#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:1051:20 [INFO] [stderr] | [INFO] [stderr] 1051 | fn description(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/lib.rs:1368:5 [INFO] [stderr] | [INFO] [stderr] 1368 | / fn test_approximate_float() { [INFO] [stderr] 1369 | | assert_eq!(Ratio::from_f32(0.5f32), Some(Ratio::new(1i64, 2))); [INFO] [stderr] 1370 | | assert_eq!(Ratio::from_f64(0.5f64), Some(Ratio::new(1i32, 2))); [INFO] [stderr] 1371 | | assert_eq!(Ratio::from_f32(5f32), Some(Ratio::new(5i64, 1))); [INFO] [stderr] ... | [INFO] [stderr] 1397 | | assert_eq!(Ratio::::from_f64(-0.0), Some(Ratio::new(0, 1))); [INFO] [stderr] 1398 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `==` [INFO] [stderr] --> src/lib.rs:1402:17 [INFO] [stderr] | [INFO] [stderr] 1402 | assert!(_0 == _0 && _1 == _1); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `==` [INFO] [stderr] --> src/lib.rs:1402:29 [INFO] [stderr] | [INFO] [stderr] 1402 | assert!(_0 == _0 && _1 == _1); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `&&` [INFO] [stderr] --> src/lib.rs:1403:17 [INFO] [stderr] | [INFO] [stderr] 1403 | assert!(_0 != _1 && _1 != _0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `<=` [INFO] [stderr] --> src/lib.rs:1407:17 [INFO] [stderr] | [INFO] [stderr] 1407 | assert!(_0 <= _0 && _1 <= _1); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `<=` [INFO] [stderr] --> src/lib.rs:1407:29 [INFO] [stderr] | [INFO] [stderr] 1407 | assert!(_0 <= _0 && _1 <= _1); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `>=` [INFO] [stderr] --> src/lib.rs:1410:17 [INFO] [stderr] | [INFO] [stderr] 1410 | assert!(_0 >= _0 && _1 >= _1); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `>=` [INFO] [stderr] --> src/lib.rs:1410:29 [INFO] [stderr] | [INFO] [stderr] 1410 | assert!(_0 >= _0 && _1 >= _1); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `-` [INFO] [stderr] --> src/lib.rs:1625:24 [INFO] [stderr] | [INFO] [stderr] 1625 | assert_eq!(_0 - _0, _0); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 37 [INFO] [stderr] --> src/lib.rs:1646:5 [INFO] [stderr] | [INFO] [stderr] 1646 | / fn test_round() { [INFO] [stderr] 1647 | | assert_eq!(_1_3.ceil(), _1); [INFO] [stderr] 1648 | | assert_eq!(_1_3.floor(), _0); [INFO] [stderr] 1649 | | assert_eq!(_1_3.round(), _0); [INFO] [stderr] ... | [INFO] [stderr] 1701 | | assert_eq!(_large_rat8.round(), Zero::zero()); [INFO] [stderr] 1702 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/lib.rs:1793:14 [INFO] [stderr] | [INFO] [stderr] 1793 | test(3.14159265359f32, ("13176795", "4194304")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `3.141_592_7` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::excessive_precision)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] error: approximate value of `f32::consts::PI` found. Consider using it directly [INFO] [stderr] --> src/lib.rs:1793:14 [INFO] [stderr] | [INFO] [stderr] 1793 | test(3.14159265359f32, ("13176795", "4194304")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::approx_constant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/lib.rs:1798:14 [INFO] [stderr] | [INFO] [stderr] 1798 | test(684729.48391f32, ("1369459", "2")); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `684_729.5` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/lib.rs:1799:15 [INFO] [stderr] | [INFO] [stderr] 1799 | test(-8573.5918555f32, ("-4389679", "512")); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `8_573.592` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] error: approximate value of `f64::consts::PI` found. Consider using it directly [INFO] [stderr] --> src/lib.rs:1802:14 [INFO] [stderr] | [INFO] [stderr] 1802 | test(3.14159265359f64, ("3537118876014453", "1125899906842624")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant [INFO] [stderr] [INFO] [stderr] error: aborting due to 27 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `num-rational`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "a7d4e291daca9e27d86b613875ae0e994740fa1e1faa932d0ade9872d368249f"` [INFO] running `"docker" "rm" "-f" "a7d4e291daca9e27d86b613875ae0e994740fa1e1faa932d0ade9872d368249f"` [INFO] [stdout] a7d4e291daca9e27d86b613875ae0e994740fa1e1faa932d0ade9872d368249f