[INFO] crate cute-dnd-dice 2.0.0 is already in cache [INFO] extracting crate cute-dnd-dice 2.0.0 into work/ex/clippy-test-run/sources/stable/reg/cute-dnd-dice/2.0.0 [INFO] extracting crate cute-dnd-dice 2.0.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/cute-dnd-dice/2.0.0 [INFO] validating manifest of cute-dnd-dice-2.0.0 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 cute-dnd-dice-2.0.0 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 cute-dnd-dice-2.0.0 [INFO] finished frobbing cute-dnd-dice-2.0.0 [INFO] frobbed toml for cute-dnd-dice-2.0.0 written to work/ex/clippy-test-run/sources/stable/reg/cute-dnd-dice/2.0.0/Cargo.toml [INFO] started frobbing cute-dnd-dice-2.0.0 [INFO] finished frobbing cute-dnd-dice-2.0.0 [INFO] frobbed toml for cute-dnd-dice-2.0.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/cute-dnd-dice/2.0.0/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 cute-dnd-dice-2.0.0 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/cute-dnd-dice/2.0.0:/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] d936453b27992ffdb42c7de45be541e3fea52151583e87eb81396e67e75a63c5 [INFO] running `"docker" "start" "-a" "d936453b27992ffdb42c7de45be541e3fea52151583e87eb81396e67e75a63c5"` [INFO] [stderr] Checking cute-dnd-dice v2.0.0 (/opt/crater/workdir) [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:93:42 [INFO] [stderr] | [INFO] [stderr] 93 | Modifier::Minus(modifier) => match other >= modifier { [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 94 | | true => Modifier::Plus(other - modifier), [INFO] [stderr] 95 | | false => Modifier::Minus(modifier - other), [INFO] [stderr] 96 | | }, [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if other >= modifier { Modifier::Plus(other - modifier) } else { Modifier::Minus(modifier - other) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/lib.rs:94:46 [INFO] [stderr] | [INFO] [stderr] 94 | true => Modifier::Plus(other - modifier), [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 `Add` impl [INFO] [stderr] --> src/lib.rs:95:51 [INFO] [stderr] | [INFO] [stderr] 95 | false => Modifier::Minus(modifier - other), [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:113:41 [INFO] [stderr] | [INFO] [stderr] 113 | Modifier::Plus(modifier) => match other > modifier { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 114 | | true => Modifier::Minus(other - modifier), [INFO] [stderr] 115 | | false => Modifier::Plus(modifier - other), [INFO] [stderr] 116 | | }, [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if other > modifier { Modifier::Minus(other - modifier) } else { Modifier::Plus(modifier - other) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [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:129:15 [INFO] [stderr] | [INFO] [stderr] 129 | fn modify(&self, value: u16) -> u16 { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:137:19 [INFO] [stderr] | [INFO] [stderr] 137 | pub fn is_neg(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/lib.rs:169:5 [INFO] [stderr] | [INFO] [stderr] 169 | / pub fn from_str(text: &str) -> Result { [INFO] [stderr] 170 | | const D: &[char] = &['d', 'D']; [INFO] [stderr] 171 | | const PLUS: char = '+'; [INFO] [stderr] 172 | | const MINUS: char = '-'; [INFO] [stderr] ... | [INFO] [stderr] 222 | | }) [INFO] [stderr] 223 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:199:42 [INFO] [stderr] | [INFO] [stderr] 199 | Some((idx, is_extra_neg)) => match text.len() - 1 == idx { [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 200 | | true => return Err(ParseError::MissingModifierValue), [INFO] [stderr] 201 | | false => match text[idx+1..].trim().parse() { [INFO] [stderr] 202 | | Ok(extra) => match is_extra_neg { [INFO] [stderr] ... | [INFO] [stderr] 207 | | }, [INFO] [stderr] 208 | | }, [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 199 | Some((idx, is_extra_neg)) => if text.len() - 1 == idx { return Err(ParseError::MissingModifierValue) } else { match text[idx+1..].trim().parse() { [INFO] [stderr] 200 | Ok(extra) => match is_extra_neg { [INFO] [stderr] 201 | true => (Modifier::Minus(extra), idx), [INFO] [stderr] 202 | false => (Modifier::Plus(extra), idx), [INFO] [stderr] 203 | } [INFO] [stderr] 204 | Err(_) => return Err(ParseError::InvalidExtra), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:202:34 [INFO] [stderr] | [INFO] [stderr] 202 | Ok(extra) => match is_extra_neg { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 203 | | true => (Modifier::Minus(extra), idx), [INFO] [stderr] 204 | | false => (Modifier::Plus(extra), idx), [INFO] [stderr] 205 | | } [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if is_extra_neg { (Modifier::Minus(extra), idx) } else { (Modifier::Plus(extra), idx) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `cute-dnd-dice`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:93:42 [INFO] [stderr] | [INFO] [stderr] 93 | Modifier::Minus(modifier) => match other >= modifier { [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 94 | | true => Modifier::Plus(other - modifier), [INFO] [stderr] 95 | | false => Modifier::Minus(modifier - other), [INFO] [stderr] 96 | | }, [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if other >= modifier { Modifier::Plus(other - modifier) } else { Modifier::Minus(modifier - other) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Add` impl [INFO] [stderr] --> src/lib.rs:94:46 [INFO] [stderr] | [INFO] [stderr] 94 | true => Modifier::Plus(other - modifier), [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 `Add` impl [INFO] [stderr] --> src/lib.rs:95:51 [INFO] [stderr] | [INFO] [stderr] 95 | false => Modifier::Minus(modifier - other), [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:113:41 [INFO] [stderr] | [INFO] [stderr] 113 | Modifier::Plus(modifier) => match other > modifier { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 114 | | true => Modifier::Minus(other - modifier), [INFO] [stderr] 115 | | false => Modifier::Plus(modifier - other), [INFO] [stderr] 116 | | }, [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if other > modifier { Modifier::Minus(other - modifier) } else { Modifier::Plus(modifier - other) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [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:129:15 [INFO] [stderr] | [INFO] [stderr] 129 | fn modify(&self, value: u16) -> u16 { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:137:19 [INFO] [stderr] | [INFO] [stderr] 137 | pub fn is_neg(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/lib.rs:169:5 [INFO] [stderr] | [INFO] [stderr] 169 | / pub fn from_str(text: &str) -> Result { [INFO] [stderr] 170 | | const D: &[char] = &['d', 'D']; [INFO] [stderr] 171 | | const PLUS: char = '+'; [INFO] [stderr] 172 | | const MINUS: char = '-'; [INFO] [stderr] ... | [INFO] [stderr] 222 | | }) [INFO] [stderr] 223 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:199:42 [INFO] [stderr] | [INFO] [stderr] 199 | Some((idx, is_extra_neg)) => match text.len() - 1 == idx { [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 200 | | true => return Err(ParseError::MissingModifierValue), [INFO] [stderr] 201 | | false => match text[idx+1..].trim().parse() { [INFO] [stderr] 202 | | Ok(extra) => match is_extra_neg { [INFO] [stderr] ... | [INFO] [stderr] 207 | | }, [INFO] [stderr] 208 | | }, [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 199 | Some((idx, is_extra_neg)) => if text.len() - 1 == idx { return Err(ParseError::MissingModifierValue) } else { match text[idx+1..].trim().parse() { [INFO] [stderr] 200 | Ok(extra) => match is_extra_neg { [INFO] [stderr] 201 | true => (Modifier::Minus(extra), idx), [INFO] [stderr] 202 | false => (Modifier::Plus(extra), idx), [INFO] [stderr] 203 | } [INFO] [stderr] 204 | Err(_) => return Err(ParseError::InvalidExtra), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:202:34 [INFO] [stderr] | [INFO] [stderr] 202 | Ok(extra) => match is_extra_neg { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 203 | | true => (Modifier::Minus(extra), idx), [INFO] [stderr] 204 | | false => (Modifier::Plus(extra), idx), [INFO] [stderr] 205 | | } [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if is_extra_neg { (Modifier::Minus(extra), idx) } else { (Modifier::Plus(extra), idx) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `cute-dnd-dice`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "d936453b27992ffdb42c7de45be541e3fea52151583e87eb81396e67e75a63c5"` [INFO] running `"docker" "rm" "-f" "d936453b27992ffdb42c7de45be541e3fea52151583e87eb81396e67e75a63c5"` [INFO] [stdout] d936453b27992ffdb42c7de45be541e3fea52151583e87eb81396e67e75a63c5