[INFO] updating cached repository Jon-Davis/calc [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Jon-Davis/calc [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Jon-Davis/calc" "work/ex/clippy-test-run/sources/stable/gh/Jon-Davis/calc"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Jon-Davis/calc'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Jon-Davis/calc" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Jon-Davis/calc"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Jon-Davis/calc'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 13b1de91d032ba24ca1775141210df957100ae33 [INFO] sha for GitHub repo Jon-Davis/calc: 13b1de91d032ba24ca1775141210df957100ae33 [INFO] validating manifest of Jon-Davis/calc 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 Jon-Davis/calc 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 Jon-Davis/calc [INFO] finished frobbing Jon-Davis/calc [INFO] frobbed toml for Jon-Davis/calc written to work/ex/clippy-test-run/sources/stable/gh/Jon-Davis/calc/Cargo.toml [INFO] started frobbing Jon-Davis/calc [INFO] finished frobbing Jon-Davis/calc [INFO] frobbed toml for Jon-Davis/calc written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Jon-Davis/calc/Cargo.toml [INFO] crate Jon-Davis/calc has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting Jon-Davis/calc against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Jon-Davis/calc:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dclippy::into_iter_on_array" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 73e6e62c8c4ba8372c4b3bc9d1ccb35167045128fd593e439a79b9095f1ccf35 [INFO] running `"docker" "start" "-a" "73e6e62c8c4ba8372c4b3bc9d1ccb35167045128fd593e439a79b9095f1ccf35"` [INFO] [stderr] Checking calc v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/integer.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | negative: negative, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `negative` [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/integer.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | negative: negative, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `negative` [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: unused imports: `Div`, `Rem` [INFO] [stderr] --> src/integer.rs:12:26 [INFO] [stderr] | [INFO] [stderr] 12 | use std::ops::{Add, Sub, Div, Mul, Rem, Neg}; [INFO] [stderr] | ^^^ ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/integer.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | return Some(Ordering::Equal); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(Ordering::Equal)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/integer.rs:90:12 [INFO] [stderr] | [INFO] [stderr] 90 | if (other.negative) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/integer.rs:224:54 [INFO] [stderr] | [INFO] [stderr] 224 | let (min_low_32, min_high_32) = (min_i & 0xFFFFFFFF, min_i >> 32); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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/integer.rs:233:62 [INFO] [stderr] | [INFO] [stderr] 233 | let (max_low_32, max_high_32) = (max_i & 0xFFFFFFFF, max_i >> 32); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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: unneeded return statement [INFO] [stderr] --> src/integer.rs:290:9 [INFO] [stderr] | [INFO] [stderr] 290 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/integer.rs:303:9 [INFO] [stderr] | [INFO] [stderr] 303 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Div`, `Rem` [INFO] [stderr] --> src/integer.rs:12:26 [INFO] [stderr] | [INFO] [stderr] 12 | use std::ops::{Add, Sub, Div, Mul, Rem, Neg}; [INFO] [stderr] | ^^^ ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/integer.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | return Some(Ordering::Equal); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(Ordering::Equal)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/integer.rs:90:12 [INFO] [stderr] | [INFO] [stderr] 90 | if (other.negative) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/integer.rs:224:54 [INFO] [stderr] | [INFO] [stderr] 224 | let (min_low_32, min_high_32) = (min_i & 0xFFFFFFFF, min_i >> 32); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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/integer.rs:233:62 [INFO] [stderr] | [INFO] [stderr] 233 | let (max_low_32, max_high_32) = (max_i & 0xFFFFFFFF, max_i >> 32); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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: unneeded return statement [INFO] [stderr] --> src/integer.rs:290:9 [INFO] [stderr] | [INFO] [stderr] 290 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/integer.rs:303:9 [INFO] [stderr] | [INFO] [stderr] 303 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/integer.rs:34:27 [INFO] [stderr] | [INFO] [stderr] 34 | Integer::from_u64(init as u64) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(init)` [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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/integer.rs:40:27 [INFO] [stderr] | [INFO] [stderr] 40 | Integer::from_i64(init as i64) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(init)` [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: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/integer.rs:53:25 [INFO] [stderr] | [INFO] [stderr] 53 | let negative = if init < 0 {true} else {false}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `init < 0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of right operand [INFO] [stderr] --> src/integer.rs:106:22 [INFO] [stderr] | [INFO] [stderr] 106 | result = &result * &self; [INFO] [stderr] | ^^^^^^^^^^----- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `self` [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 if-then-else expression returns a bool literal [INFO] [stderr] --> src/integer.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | / if self.value.len() == 1 && self.value[0] == 0 { [INFO] [stderr] 115 | | true [INFO] [stderr] 116 | | } else { [INFO] [stderr] 117 | | false [INFO] [stderr] 118 | | } [INFO] [stderr] | |_________^ help: you can reduce it to: `self.value.len() == 1 && self.value[0] == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/integer.rs:143:26 [INFO] [stderr] | [INFO] [stderr] 143 | let (a,b) = (i.0.clone(),i.1.clone()); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*i.0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/integer.rs:143:38 [INFO] [stderr] | [INFO] [stderr] 143 | let (a,b) = (i.0.clone(),i.1.clone()); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*i.1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/integer.rs:149:38 [INFO] [stderr] | [INFO] [stderr] 149 | carry = if overflow1 || overflow2 {1} else {0}; [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:220:64 [INFO] [stderr] | [INFO] [stderr] 220 | let mut new_value = Vec::with_capacity(self.value.len()+num.value.len()); [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:224:52 [INFO] [stderr] | [INFO] [stderr] 224 | let (min_low_32, min_high_32) = (min_i & 0xFFFFFFFF, min_i >> 32); [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:224:72 [INFO] [stderr] | [INFO] [stderr] 224 | let (min_low_32, min_high_32) = (min_i & 0xFFFFFFFF, min_i >> 32); [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:230:44 [INFO] [stderr] | [INFO] [stderr] 230 | let mut index = init_index + i; [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:233:60 [INFO] [stderr] | [INFO] [stderr] 233 | let (max_low_32, max_high_32) = (max_i & 0xFFFFFFFF, max_i >> 32); [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:233:80 [INFO] [stderr] | [INFO] [stderr] 233 | let (max_low_32, max_high_32) = (max_i & 0xFFFFFFFF, max_i >> 32); [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] warning: manual implementation of an assign operation [INFO] [stderr] --> src/integer.rs:249:25 [INFO] [stderr] | [INFO] [stderr] 249 | carry = carry + if overflow {1u64} else {0u64}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `carry += if overflow {1u64} else {0u64}` [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:249:39 [INFO] [stderr] | [INFO] [stderr] 249 | carry = carry + if overflow {1u64} else {0u64}; [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] warning: manual implementation of an assign operation [INFO] [stderr] --> src/integer.rs:253:21 [INFO] [stderr] | [INFO] [stderr] 253 | index = index + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Mul` impl [INFO] [stderr] --> src/integer.rs:253:35 [INFO] [stderr] | [INFO] [stderr] 253 | index = index + 1; [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] warning: manual implementation of an assign operation [INFO] [stderr] --> src/integer.rs:256:17 [INFO] [stderr] | [INFO] [stderr] 256 | init_index = init_index + 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `init_index += 2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Mul` impl [INFO] [stderr] --> src/integer.rs:256:41 [INFO] [stderr] | [INFO] [stderr] 256 | init_index = init_index + 2; [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] warning: re-implementing `PartialEq::ne` is unnecessary [INFO] [stderr] --> src/integer.rs:295:5 [INFO] [stderr] | [INFO] [stderr] 295 | / fn ne(&self, num : &Integer) -> bool{ [INFO] [stderr] 296 | | for i in self.value.iter().zip(num.value.iter()){ [INFO] [stderr] 297 | | if self.negative != num.negative { [INFO] [stderr] 298 | | return true; [INFO] [stderr] ... | [INFO] [stderr] 303 | | return true; [INFO] [stderr] 304 | | } // End of ne function [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::partialeq_ne_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_ne_impl [INFO] [stderr] [INFO] [stderr] error: aborting due to 10 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `calc`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/integer.rs:34:27 [INFO] [stderr] | [INFO] [stderr] 34 | Integer::from_u64(init as u64) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(init)` [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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/integer.rs:40:27 [INFO] [stderr] | [INFO] [stderr] 40 | Integer::from_i64(init as i64) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(init)` [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: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/integer.rs:53:25 [INFO] [stderr] | [INFO] [stderr] 53 | let negative = if init < 0 {true} else {false}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `init < 0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of right operand [INFO] [stderr] --> src/integer.rs:106:22 [INFO] [stderr] | [INFO] [stderr] 106 | result = &result * &self; [INFO] [stderr] | ^^^^^^^^^^----- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `self` [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 if-then-else expression returns a bool literal [INFO] [stderr] --> src/integer.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | / if self.value.len() == 1 && self.value[0] == 0 { [INFO] [stderr] 115 | | true [INFO] [stderr] 116 | | } else { [INFO] [stderr] 117 | | false [INFO] [stderr] 118 | | } [INFO] [stderr] | |_________^ help: you can reduce it to: `self.value.len() == 1 && self.value[0] == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/integer.rs:143:26 [INFO] [stderr] | [INFO] [stderr] 143 | let (a,b) = (i.0.clone(),i.1.clone()); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*i.0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/integer.rs:143:38 [INFO] [stderr] | [INFO] [stderr] 143 | let (a,b) = (i.0.clone(),i.1.clone()); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*i.1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/integer.rs:149:38 [INFO] [stderr] | [INFO] [stderr] 149 | carry = if overflow1 || overflow2 {1} else {0}; [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:220:64 [INFO] [stderr] | [INFO] [stderr] 220 | let mut new_value = Vec::with_capacity(self.value.len()+num.value.len()); [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:224:52 [INFO] [stderr] | [INFO] [stderr] 224 | let (min_low_32, min_high_32) = (min_i & 0xFFFFFFFF, min_i >> 32); [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:224:72 [INFO] [stderr] | [INFO] [stderr] 224 | let (min_low_32, min_high_32) = (min_i & 0xFFFFFFFF, min_i >> 32); [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:230:44 [INFO] [stderr] | [INFO] [stderr] 230 | let mut index = init_index + i; [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:233:60 [INFO] [stderr] | [INFO] [stderr] 233 | let (max_low_32, max_high_32) = (max_i & 0xFFFFFFFF, max_i >> 32); [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:233:80 [INFO] [stderr] | [INFO] [stderr] 233 | let (max_low_32, max_high_32) = (max_i & 0xFFFFFFFF, max_i >> 32); [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] warning: manual implementation of an assign operation [INFO] [stderr] --> src/integer.rs:249:25 [INFO] [stderr] | [INFO] [stderr] 249 | carry = carry + if overflow {1u64} else {0u64}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `carry += if overflow {1u64} else {0u64}` [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 `Mul` impl [INFO] [stderr] --> src/integer.rs:249:39 [INFO] [stderr] | [INFO] [stderr] 249 | carry = carry + if overflow {1u64} else {0u64}; [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] warning: manual implementation of an assign operation [INFO] [stderr] --> src/integer.rs:253:21 [INFO] [stderr] | [INFO] [stderr] 253 | index = index + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Mul` impl [INFO] [stderr] --> src/integer.rs:253:35 [INFO] [stderr] | [INFO] [stderr] 253 | index = index + 1; [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] warning: manual implementation of an assign operation [INFO] [stderr] --> src/integer.rs:256:17 [INFO] [stderr] | [INFO] [stderr] 256 | init_index = init_index + 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `init_index += 2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Mul` impl [INFO] [stderr] --> src/integer.rs:256:41 [INFO] [stderr] | [INFO] [stderr] 256 | init_index = init_index + 2; [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] warning: re-implementing `PartialEq::ne` is unnecessary [INFO] [stderr] --> src/integer.rs:295:5 [INFO] [stderr] | [INFO] [stderr] 295 | / fn ne(&self, num : &Integer) -> bool{ [INFO] [stderr] 296 | | for i in self.value.iter().zip(num.value.iter()){ [INFO] [stderr] 297 | | if self.negative != num.negative { [INFO] [stderr] 298 | | return true; [INFO] [stderr] ... | [INFO] [stderr] 303 | | return true; [INFO] [stderr] 304 | | } // End of ne function [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::partialeq_ne_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_ne_impl [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `==` [INFO] [stderr] --> src/integer.rs:443:13 [INFO] [stderr] | [INFO] [stderr] 443 | assert!(zero == zero, format!("\nEvaluated zero != zero, when they should be equal.\nzero = {:X}\nzero = {:X}\n", zero, zero)); [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/integer.rs:445:13 [INFO] [stderr] | [INFO] [stderr] 445 | assert!(zero == zero, format!("\nEvaluated zero != zero, when they should be equal.\nzero = {:X}\nzero = {:X}\n", zero, zero)); [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 use of negated comparison operators on partially ordered types produces code that is hard to read and refactor. Please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable. [INFO] [stderr] --> src/integer.rs:467:13 [INFO] [stderr] | [INFO] [stderr] 467 | assert!(!(zero < zero), format!("\nEvaluated zero < zero, when they should be equal.\nzero = {:X}\nzero = {:X}\n", zero, zero)); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::neg_cmp_op_on_partial_ord)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `<` [INFO] [stderr] --> src/integer.rs:467:14 [INFO] [stderr] | [INFO] [stderr] 467 | assert!(!(zero < zero), format!("\nEvaluated zero < zero, when they should be equal.\nzero = {:X}\nzero = {:X}\n", zero, zero)); [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 use of negated comparison operators on partially ordered types produces code that is hard to read and refactor. Please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable. [INFO] [stderr] --> src/integer.rs:468:13 [INFO] [stderr] | [INFO] [stderr] 468 | assert!(!(ten1 > ten1), format!("\nEvaluated ten1 > ten1, when they should be equal.\nten1 = {:X}\nten1 = {:X}\n", ten1, ten1)); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `>` [INFO] [stderr] --> src/integer.rs:468:14 [INFO] [stderr] | [INFO] [stderr] 468 | assert!(!(ten1 > ten1), format!("\nEvaluated ten1 > ten1, when they should be equal.\nten1 = {:X}\nten1 = {:X}\n", ten1, ten1)); [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 use of negated comparison operators on partially ordered types produces code that is hard to read and refactor. Please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable. [INFO] [stderr] --> src/integer.rs:473:13 [INFO] [stderr] | [INFO] [stderr] 473 | assert!(!(neg_ten > ten1), format!("\nEvaluated neg_ten >= ten1, when it should be less than.\nneg_ten = {:X}\nten1 = {:X}\n", neg_ten, ten1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/integer.rs:501:38 [INFO] [stderr] | [INFO] [stderr] 501 | assert!(&one + &neg_one == zero, format!("\nEvaluated one + neg_one being != zero, when it should be zero\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"\nEvaluated one + neg_one being != zero, when it should be zero\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `-` [INFO] [stderr] --> src/integer.rs:502:13 [INFO] [stderr] | [INFO] [stderr] 502 | assert!(&one - &one == zero, format!("\nEvaluated one - one being != zero, when it should be zero\n")); [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: useless use of `format!` [INFO] [stderr] --> src/integer.rs:502:34 [INFO] [stderr] | [INFO] [stderr] 502 | assert!(&one - &one == zero, format!("\nEvaluated one - one being != zero, when it should be zero\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"\nEvaluated one - one being != zero, when it should be zero\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/integer.rs:503:45 [INFO] [stderr] | [INFO] [stderr] 503 | assert!(&neg_one + &neg_one == neg_two, format!("\nEvaluated neg_one + neg_one being != neg_two, when they should be equal\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"\nEvaluated neg_one + neg_one being != neg_two, when they should be equal\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/integer.rs:504:38 [INFO] [stderr] | [INFO] [stderr] 504 | assert!(&neg_one + &one == zero, format!("\nEvaluated neg_one + one being != zero, when it should be zero\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"\nEvaluated neg_one + one being != zero, when it should be zero\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/integer.rs:505:34 [INFO] [stderr] | [INFO] [stderr] 505 | assert!(&ten - &nine == one, format!("\nEvaluated ten - nine to being != one, when it should be one\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"\nEvaluated ten - nine to being != one, when it should be one\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/integer.rs:506:34 [INFO] [stderr] | [INFO] [stderr] 506 | assert!(&ten - &one == nine, format!("\nEvaluated ten - one to being != nine, when it should be nine\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"\nEvaluated ten - one to being != nine, when it should be nine\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/integer.rs:507:38 [INFO] [stderr] | [INFO] [stderr] 507 | assert!(&neg_one + &one == zero, format!("\nEvaluated one + neg_one being != zero, when it should be zero\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"\nEvaluated one + neg_one being != zero, when it should be zero\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/integer.rs:508:36 [INFO] [stderr] | [INFO] [stderr] 508 | assert!(&zero + &zero == zero, format!("\nEvaluated zero + zero being != zero, when it should be zero\n")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"\nEvaluated zero + zero being != zero, when it should be zero\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/integer.rs:509:13 [INFO] [stderr] | [INFO] [stderr] 509 | assert!(&ten == &ten_from_one, format!("\nEvaluated ten != to &ten_from_one when it should be equal\nten = {:X}\nten_from_one = {:X}",ten,ten_from_one)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 509 | assert!(ten == ten_from_one, format!("\nEvaluated ten != to &ten_from_one when it should be equal\nten = {:X}\nten_from_one = {:X}",ten,ten_from_one)); [INFO] [stderr] | ^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `-` [INFO] [stderr] --> src/integer.rs:511:13 [INFO] [stderr] | [INFO] [stderr] 511 | assert!(&max_one - &max_one == zero, format!("\nEvaluated max_one - max_one to be != zero\nmax_one = {:X}\nmax_one = {:X}",max_one,max_one)); [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: aborting due to 16 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `calc`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "73e6e62c8c4ba8372c4b3bc9d1ccb35167045128fd593e439a79b9095f1ccf35"` [INFO] running `"docker" "rm" "-f" "73e6e62c8c4ba8372c4b3bc9d1ccb35167045128fd593e439a79b9095f1ccf35"` [INFO] [stdout] 73e6e62c8c4ba8372c4b3bc9d1ccb35167045128fd593e439a79b9095f1ccf35