[INFO] cloning repository https://github.com/Dark42ed/scrabby [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Dark42ed/scrabby" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDark42ed%2Fscrabby", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDark42ed%2Fscrabby'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c1254333cdfc9b4634abc2f56607395e316b8a22 [INFO] linting Dark42ed/scrabby against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDark42ed%2Fscrabby" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Dark42ed/scrabby [INFO] finished tweaking git repo https://github.com/Dark42ed/scrabby [INFO] tweaked toml for git repo https://github.com/Dark42ed/scrabby written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Dark42ed/scrabby on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Dark42ed/scrabby already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded quote v1.0.28 [INFO] [stderr] Downloaded colored v2.1.0 [INFO] [stderr] Downloaded unicode-ident v1.0.9 [INFO] [stderr] Downloaded serde_derive v1.0.164 [INFO] [stderr] Downloaded serde v1.0.164 [INFO] [stderr] Downloaded proc-macro2 v1.0.60 [INFO] [stderr] Downloaded syn v2.0.18 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ff46955b3cce74aa4b72909c1da515ff40a91f629689973fe20b171d2a6f2ba9 [INFO] running `Command { std: "docker" "start" "-a" "ff46955b3cce74aa4b72909c1da515ff40a91f629689973fe20b171d2a6f2ba9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ff46955b3cce74aa4b72909c1da515ff40a91f629689973fe20b171d2a6f2ba9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ff46955b3cce74aa4b72909c1da515ff40a91f629689973fe20b171d2a6f2ba9", kill_on_drop: false }` [INFO] [stdout] ff46955b3cce74aa4b72909c1da515ff40a91f629689973fe20b171d2a6f2ba9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e3b5573a3dd07b5f30704a5f6f77953d06444b75c102fdd4e0a977a75c154f5f [INFO] running `Command { std: "docker" "start" "-a" "e3b5573a3dd07b5f30704a5f6f77953d06444b75c102fdd4e0a977a75c154f5f", kill_on_drop: false }` [INFO] [stderr] Compiling scrabby v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stdout] warning: this `to_owned` call clones the `Cow<'_, str>` itself and does not cause its contents to become owned [INFO] [stdout] --> src/board.rs:61:47 [INFO] [stdout] | [INFO] [stdout] 61 | .push(Word::new(start, direction, Cow::Borrowed(word).to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_to_owned [INFO] [stdout] = note: `#[warn(clippy::suspicious_to_owned)]` on by default [INFO] [stdout] help: depending on intent, either make the `Cow` an `Owned` variant [INFO] [stdout] | [INFO] [stdout] 61 | .push(Word::new(start, direction, Cow::Borrowed(word).into_owned())); [INFO] [stdout] | ++ [INFO] [stdout] help: or clone the `Cow` itself [INFO] [stdout] | [INFO] [stdout] 61 - .push(Word::new(start, direction, Cow::Borrowed(word).to_owned())); [INFO] [stdout] 61 + .push(Word::new(start, direction, Cow::Borrowed(word).clone())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/computer.rs:49:38 [INFO] [stdout] | [INFO] [stdout] 49 | .filter(move |m| verify_move(&board, &m.1, word_list)) [INFO] [stdout] | ^^^^^^ help: change this to: `board` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/computer.rs:140:8 [INFO] [stdout] | [INFO] [stdout] 140 | if !new_word.is_empty() [INFO] [stdout] | ________^ [INFO] [stdout] 141 | | && !(word_list.contains(&&*new_word) [INFO] [stdout] 142 | | || board [INFO] [stdout] 143 | | .moves() [INFO] [stdout] ... | [INFO] [stdout] 146 | | .find(|word| **word == new_word) [INFO] [stdout] 147 | | .is_some()) [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 140 ~ if !(new_word.is_empty() || word_list.contains(&&*new_word) || board [INFO] [stdout] 141 + .moves() [INFO] [stdout] 142 + .iter() [INFO] [stdout] 143 + .map(|mov| &mov.word) [INFO] [stdout] 144 + .find(|word| **word == new_word) [INFO] [stdout] 145 + .is_some()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/computer.rs:168:12 [INFO] [stdout] | [INFO] [stdout] 168 | if !new_word.is_empty() [INFO] [stdout] | ____________^ [INFO] [stdout] 169 | | && !(word_list.contains(&&*new_word) [INFO] [stdout] 170 | | || board [INFO] [stdout] 171 | | .moves() [INFO] [stdout] ... | [INFO] [stdout] 174 | | .find(|word| **word == new_word) [INFO] [stdout] 175 | | .is_some()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 168 ~ if !(new_word.is_empty() || word_list.contains(&&*new_word) || board [INFO] [stdout] 169 + .moves() [INFO] [stdout] 170 + .iter() [INFO] [stdout] 171 + .map(|mov| &mov.word) [INFO] [stdout] 172 + .find(|word| **word == new_word) [INFO] [stdout] 173 + .is_some()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/computer.rs:181:5 [INFO] [stdout] | [INFO] [stdout] 181 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 181 - return true; [INFO] [stdout] 181 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `to_owned` call clones the `Cow<'_, str>` itself and does not cause its contents to become owned [INFO] [stdout] --> src/board.rs:61:47 [INFO] [stdout] | [INFO] [stdout] 61 | .push(Word::new(start, direction, Cow::Borrowed(word).to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_to_owned [INFO] [stdout] = note: `#[warn(clippy::suspicious_to_owned)]` on by default [INFO] [stdout] help: depending on intent, either make the `Cow` an `Owned` variant [INFO] [stdout] | [INFO] [stdout] 61 | .push(Word::new(start, direction, Cow::Borrowed(word).into_owned())); [INFO] [stdout] | ++ [INFO] [stdout] help: or clone the `Cow` itself [INFO] [stdout] | [INFO] [stdout] 61 - .push(Word::new(start, direction, Cow::Borrowed(word).to_owned())); [INFO] [stdout] 61 + .push(Word::new(start, direction, Cow::Borrowed(word).clone())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/computer.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | / return Word { [INFO] [stdout] 220 | | position: start_bound, [INFO] [stdout] 221 | | direction, [INFO] [stdout] 222 | | word: boundary_word, [INFO] [stdout] 223 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 219 ~ Word { [INFO] [stdout] 220 + position: start_bound, [INFO] [stdout] 221 + direction, [INFO] [stdout] 222 + word: boundary_word, [INFO] [stdout] 223 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/computer.rs:269:17 [INFO] [stdout] | [INFO] [stdout] 269 | &crate::DEFAULT_WORD_LIST [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `crate::DEFAULT_WORD_LIST` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/computer.rs:279:9 [INFO] [stdout] | [INFO] [stdout] 279 | / assert_eq!( [INFO] [stdout] 280 | | computer::verify_move( [INFO] [stdout] 281 | | &b, [INFO] [stdout] 282 | | &Word::new( [INFO] [stdout] ... | [INFO] [stdout] 289 | | false [INFO] [stdout] 290 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 279 ~ assert!( [INFO] [stdout] 280 ~ !computer::verify_move( [INFO] [stdout] 281 | &b, [INFO] [stdout] ... [INFO] [stdout] 287 | &crate::DEFAULT_WORD_LIST [INFO] [stdout] 288 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/computer.rs:287:17 [INFO] [stdout] | [INFO] [stdout] 287 | &crate::DEFAULT_WORD_LIST [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `crate::DEFAULT_WORD_LIST` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/computer.rs:49:38 [INFO] [stdout] | [INFO] [stdout] 49 | .filter(move |m| verify_move(&board, &m.1, word_list)) [INFO] [stdout] | ^^^^^^ help: change this to: `board` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/computer.rs:140:8 [INFO] [stdout] | [INFO] [stdout] 140 | if !new_word.is_empty() [INFO] [stdout] | ________^ [INFO] [stdout] 141 | | && !(word_list.contains(&&*new_word) [INFO] [stdout] 142 | | || board [INFO] [stdout] 143 | | .moves() [INFO] [stdout] ... | [INFO] [stdout] 146 | | .find(|word| **word == new_word) [INFO] [stdout] 147 | | .is_some()) [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 140 ~ if !(new_word.is_empty() || word_list.contains(&&*new_word) || board [INFO] [stdout] 141 + .moves() [INFO] [stdout] 142 + .iter() [INFO] [stdout] 143 + .map(|mov| &mov.word) [INFO] [stdout] 144 + .find(|word| **word == new_word) [INFO] [stdout] 145 + .is_some()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/computer.rs:168:12 [INFO] [stdout] | [INFO] [stdout] 168 | if !new_word.is_empty() [INFO] [stdout] | ____________^ [INFO] [stdout] 169 | | && !(word_list.contains(&&*new_word) [INFO] [stdout] 170 | | || board [INFO] [stdout] 171 | | .moves() [INFO] [stdout] ... | [INFO] [stdout] 174 | | .find(|word| **word == new_word) [INFO] [stdout] 175 | | .is_some()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 168 ~ if !(new_word.is_empty() || word_list.contains(&&*new_word) || board [INFO] [stdout] 169 + .moves() [INFO] [stdout] 170 + .iter() [INFO] [stdout] 171 + .map(|mov| &mov.word) [INFO] [stdout] 172 + .find(|word| **word == new_word) [INFO] [stdout] 173 + .is_some()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/computer.rs:181:5 [INFO] [stdout] | [INFO] [stdout] 181 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 181 - return true; [INFO] [stdout] 181 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its body itself [INFO] [stdout] --> src/letter.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | / match c { [INFO] [stdout] 116 | | _ => { [INFO] [stdout] 117 | | assert!(c.is_ascii_uppercase()); [INFO] [stdout] 118 | | unsafe { core::mem::transmute(c as u8) } [INFO] [stdout] 119 | | } [INFO] [stdout] 120 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] help: consider using the match body instead [INFO] [stdout] | [INFO] [stdout] 115 ~ { [INFO] [stdout] 116 + assert!(c.is_ascii_uppercase()); [INFO] [stdout] 117 + unsafe { core::mem::transmute(c as u8) } [INFO] [stdout] 118 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/computer.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | / return Word { [INFO] [stdout] 220 | | position: start_bound, [INFO] [stdout] 221 | | direction, [INFO] [stdout] 222 | | word: boundary_word, [INFO] [stdout] 223 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 219 ~ Word { [INFO] [stdout] 220 + position: start_bound, [INFO] [stdout] 221 + direction, [INFO] [stdout] 222 + word: boundary_word, [INFO] [stdout] 223 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute used without annotations [INFO] [stdout] --> src/letter.rs:118:37 [INFO] [stdout] | [INFO] [stdout] 118 | unsafe { core::mem::transmute(c as u8) } [INFO] [stdout] | ^^^^^^^^^ help: consider adding missing annotations: `transmute::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_transmute_annotations [INFO] [stdout] = note: `#[warn(clippy::missing_transmute_annotations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its body itself [INFO] [stdout] --> src/letter.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | / match self { [INFO] [stdout] 125 | | _ => self as u8 as char, [INFO] [stdout] 126 | | } [INFO] [stdout] | |_________^ help: consider using the match body instead: `self as u8 as char` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its body itself [INFO] [stdout] --> src/letter.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | / match c { [INFO] [stdout] 116 | | _ => { [INFO] [stdout] 117 | | assert!(c.is_ascii_uppercase()); [INFO] [stdout] 118 | | unsafe { core::mem::transmute(c as u8) } [INFO] [stdout] 119 | | } [INFO] [stdout] 120 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] help: consider using the match body instead [INFO] [stdout] | [INFO] [stdout] 115 ~ { [INFO] [stdout] 116 + assert!(c.is_ascii_uppercase()); [INFO] [stdout] 117 + unsafe { core::mem::transmute(c as u8) } [INFO] [stdout] 118 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute used without annotations [INFO] [stdout] --> src/letter.rs:118:37 [INFO] [stdout] | [INFO] [stdout] 118 | unsafe { core::mem::transmute(c as u8) } [INFO] [stdout] | ^^^^^^^^^ help: consider adding missing annotations: `transmute::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_transmute_annotations [INFO] [stdout] = note: `#[warn(clippy::missing_transmute_annotations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its body itself [INFO] [stdout] --> src/letter.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | / match self { [INFO] [stdout] 125 | | _ => self as u8 as char, [INFO] [stdout] 126 | | } [INFO] [stdout] | |_________^ help: consider using the match body instead: `self as u8 as char` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.79s [INFO] running `Command { std: "docker" "inspect" "e3b5573a3dd07b5f30704a5f6f77953d06444b75c102fdd4e0a977a75c154f5f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e3b5573a3dd07b5f30704a5f6f77953d06444b75c102fdd4e0a977a75c154f5f", kill_on_drop: false }` [INFO] [stdout] e3b5573a3dd07b5f30704a5f6f77953d06444b75c102fdd4e0a977a75c154f5f