[INFO] cloning repository https://github.com/BenWiederhake/practical-floop [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BenWiederhake/practical-floop" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBenWiederhake%2Fpractical-floop", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBenWiederhake%2Fpractical-floop'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 953ecdbf4406fc4355e4d0c8ce4646053a0a4702 [INFO] linting BenWiederhake/practical-floop against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBenWiederhake%2Fpractical-floop" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/BenWiederhake/practical-floop [INFO] finished tweaking git repo https://github.com/BenWiederhake/practical-floop [INFO] tweaked toml for git repo https://github.com/BenWiederhake/practical-floop written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/BenWiederhake/practical-floop 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/BenWiederhake/practical-floop 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 num-integer v0.1.42 [INFO] [stderr] Downloaded num-traits v0.2.11 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] c9c86b40e0ab7d57ef2f1cbb835daab6efc9034e5681dbd1e5b2933f6c5ce9fc [INFO] running `Command { std: "docker" "start" "-a" "c9c86b40e0ab7d57ef2f1cbb835daab6efc9034e5681dbd1e5b2933f6c5ce9fc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c9c86b40e0ab7d57ef2f1cbb835daab6efc9034e5681dbd1e5b2933f6c5ce9fc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c9c86b40e0ab7d57ef2f1cbb835daab6efc9034e5681dbd1e5b2933f6c5ce9fc", kill_on_drop: false }` [INFO] [stdout] c9c86b40e0ab7d57ef2f1cbb835daab6efc9034e5681dbd1e5b2933f6c5ce9fc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 267e5fe8f06db0a71873ba4bdcfd1f05b0cf2dc8224327754ae4f296bfd0e928 [INFO] running `Command { std: "docker" "start" "-a" "267e5fe8f06db0a71873ba4bdcfd1f05b0cf2dc8224327754ae4f296bfd0e928", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling num-traits v0.2.11 [INFO] [stderr] Compiling num-integer v0.1.42 [INFO] [stderr] Compiling num-bigint v0.2.6 [INFO] [stderr] Checking practical-floop v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/parse.rs:711:23 [INFO] [stdout] | [INFO] [stdout] 711 | Some(&(Token::End /*| Token::Else*/)) => { [INFO] [stdout] | ^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 711 - Some(&(Token::End /*| Token::Else*/)) => { [INFO] [stdout] 711 + Some(&Token::End ) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `or_patterns` has been stable since 1.53.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:1:32 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(int_error_matching, or_patterns)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `int_error_matching` has been stable since 1.55.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(int_error_matching, or_patterns)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/parse.rs:325:21 [INFO] [stdout] | [INFO] [stdout] 325 | Join => vec![ [INFO] [stdout] | _____________________^ [INFO] [stdout] 326 | | unimplemented!(), [INFO] [stdout] | | ---------------- any code following this expression is unreachable [INFO] [stdout] 327 | | ], [INFO] [stdout] | |_____________^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/token.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | Underflow => format!("must be non-negative ({})", e), [INFO] [stdout] | ^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/token.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 12 | Empty => "empty specifier".into(), [INFO] [stdout] | ----- matches some of the same values [INFO] [stdout] 13 | InvalidDigit => format!("not a digit ({})", e), [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] 14 | Overflow => format!("cannot handle large naturals yet (BUG) ({})", e), [INFO] [stdout] | -------- matches some of the same values [INFO] [stdout] 15 | Underflow => format!("must be non-negative ({})", e), [INFO] [stdout] | ^^^^^^^^^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/token.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 14 | Overflow => format!("cannot handle large naturals yet (BUG) ({})", e), [INFO] [stdout] | -------- matches any value [INFO] [stdout] 15 | Underflow => format!("must be non-negative ({})", e), [INFO] [stdout] 16 | Zero => unreachable!(), [INFO] [stdout] | ^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/token.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | _ => format!("unknown (BUG) ({})", e), // unfixable [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/token.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 12 | Empty => "empty specifier".into(), [INFO] [stdout] | ----- matches some of the same values [INFO] [stdout] 13 | InvalidDigit => format!("not a digit ({})", e), [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] 14 | Overflow => format!("cannot handle large naturals yet (BUG) ({})", e), [INFO] [stdout] | -------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 17 | _ => format!("unknown (BUG) ({})", e), // unfixable [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `Overflow` [INFO] [stdout] --> src/token.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | Overflow => format!("cannot handle large naturals yet (BUG) ({})", e), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Overflow` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `Underflow` [INFO] [stdout] --> src/token.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | Underflow => format!("must be non-negative ({})", e), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Underflow` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/exec.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | &**self.0 [INFO] [stdout] | ^^^^^^^^^ help: try: `&self.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/exec.rs:163:32 [INFO] [stdout] | [INFO] [stdout] 163 | conf.state[&dst] += outer_amount * amount; [INFO] [stdout] | ^^^^ help: change this to: `dst` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/exec.rs:168:51 [INFO] [stdout] | [INFO] [stdout] 168 | conf.state[&dst] = conf.state[&src].clone() + amount; [INFO] [stdout] | ^^^^ help: change this to: `src` [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/exec.rs:168:32 [INFO] [stdout] | [INFO] [stdout] 168 | conf.state[&dst] = conf.state[&src].clone() + amount; [INFO] [stdout] | ^^^^ help: change this to: `dst` [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/exec.rs:175:51 [INFO] [stdout] | [INFO] [stdout] 175 | let dst_var = &mut conf.state[&dst]; [INFO] [stdout] | ^^^^ help: change this to: `dst` [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/exec.rs:187:51 [INFO] [stdout] | [INFO] [stdout] 187 | conf.state[&dst] = conf.state[&src].clone() - amount; [INFO] [stdout] | ^^^^ help: change this to: `src` [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/exec.rs:187:32 [INFO] [stdout] | [INFO] [stdout] 187 | conf.state[&dst] = conf.state[&src].clone() - amount; [INFO] [stdout] | ^^^^ help: change this to: `dst` [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: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:337:17 [INFO] [stdout] | [INFO] [stdout] 337 | / write!(f, "{}add 0x{:X} to {} into {}\n", [INFO] [stdout] 338 | | levelindent, amount, src, dst) [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 337 - write!(f, "{}add 0x{:X} to {} into {}\n", [INFO] [stdout] 337 + writeln!(f, "{}add 0x{:X} to {} into {}", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:341:17 [INFO] [stdout] | [INFO] [stdout] 341 | / write!(f, "{}subtract 0x{:X} from {} into {}\n", [INFO] [stdout] 342 | | levelindent, amount, src, dst) [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 341 - write!(f, "{}subtract 0x{:X} from {} into {}\n", [INFO] [stdout] 341 + writeln!(f, "{}subtract 0x{:X} from {} into {}", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:345:17 [INFO] [stdout] | [INFO] [stdout] 345 | / write!(f, "{}loop {} do\n", [INFO] [stdout] 346 | | levelindent, var)?; [INFO] [stdout] | |_____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 345 - write!(f, "{}loop {} do\n", [INFO] [stdout] 345 + writeln!(f, "{}loop {} do", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:348:17 [INFO] [stdout] | [INFO] [stdout] 348 | write!(f, "{}end\n", levelindent) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 348 - write!(f, "{}end\n", levelindent) [INFO] [stdout] 348 + writeln!(f, "{}end", levelindent) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:351:17 [INFO] [stdout] | [INFO] [stdout] 351 | / write!(f, "{}do 0x{:X} times\n", [INFO] [stdout] 352 | | levelindent, amount)?; [INFO] [stdout] | |________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 351 - write!(f, "{}do 0x{:X} times\n", [INFO] [stdout] 351 + writeln!(f, "{}do 0x{:X} times", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:354:17 [INFO] [stdout] | [INFO] [stdout] 354 | write!(f, "{}end\n", levelindent) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 354 - write!(f, "{}end\n", levelindent) [INFO] [stdout] 354 + writeln!(f, "{}end", levelindent) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:357:17 [INFO] [stdout] | [INFO] [stdout] 357 | / write!(f, "{}while {} times\n", [INFO] [stdout] 358 | | levelindent, var)?; [INFO] [stdout] | |_____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 357 - write!(f, "{}while {} times\n", [INFO] [stdout] 357 + writeln!(f, "{}while {} times", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:360:17 [INFO] [stdout] | [INFO] [stdout] 360 | write!(f, "{}end\n", levelindent) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 360 - write!(f, "{}end\n", levelindent) [INFO] [stdout] 360 + writeln!(f, "{}end", levelindent) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:369:9 [INFO] [stdout] | [INFO] [stdout] 369 | write!(f, " state: {:?}\n", self.state)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 369 - write!(f, " state: {:?}\n", self.state)?; [INFO] [stdout] 369 + writeln!(f, " state: {:?}", self.state)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:370:9 [INFO] [stdout] | [INFO] [stdout] 370 | write!(f, " stack: [\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 370 - write!(f, " stack: [\n")?; [INFO] [stdout] 370 + writeln!(f, " stack: [")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:373:13 [INFO] [stdout] | [INFO] [stdout] 373 | write!(f, " ,\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 373 - write!(f, " ,\n")?; [INFO] [stdout] 373 + writeln!(f, " ,")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:375:9 [INFO] [stdout] | [INFO] [stdout] 375 | write!(f, " ]\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 375 - write!(f, " ]\n")?; [INFO] [stdout] 375 + writeln!(f, " ]")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/parse.rs:711:23 [INFO] [stdout] | [INFO] [stdout] 711 | Some(&(Token::End /*| Token::Else*/)) => { [INFO] [stdout] | ^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 711 - Some(&(Token::End /*| Token::Else*/)) => { [INFO] [stdout] 711 + Some(&Token::End ) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parse.rs:365:70 [INFO] [stdout] | [INFO] [stdout] 365 | into.append(&mut op.gen_code(&lhs_ident, &rhs_ident, &dst)); [INFO] [stdout] | ^^^^ help: change this to: `dst` [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 operation has no effect [INFO] [stdout] --> src/parse.rs:391:82 [INFO] [stdout] | [INFO] [stdout] 391 | let head_incomplete = ParseIdent::Dynamic(DynamicIdent::CalcIntermediate(stack_depth + 0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider reducing it to: `stack_depth` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parse.rs:411:47 [INFO] [stdout] | [INFO] [stdout] 411 | DivMod::Take.gen_code(&tail, &tmp, &head_incomplete) [INFO] [stdout] | ^^^^^ help: change this to: `tail` [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/resolve.rs:36:44 [INFO] [stdout] | [INFO] [stdout] 36 | self.reserve_if_static(&a); [INFO] [stdout] | ^^ help: change this to: `a` [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/resolve.rs:37:44 [INFO] [stdout] | [INFO] [stdout] 37 | self.reserve_if_static(&b); [INFO] [stdout] | ^^ help: change this to: `b` [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/resolve.rs:40:44 [INFO] [stdout] | [INFO] [stdout] 40 | self.reserve_if_static(&a); [INFO] [stdout] | ^^ help: change this to: `a` [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/resolve.rs:41:44 [INFO] [stdout] | [INFO] [stdout] 41 | self.reserve_if_static(&b); [INFO] [stdout] | ^^ help: change this to: `b` [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/resolve.rs:44:44 [INFO] [stdout] | [INFO] [stdout] 44 | self.reserve_if_static(&a); [INFO] [stdout] | ^^ help: change this to: `a` [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/resolve.rs:51:44 [INFO] [stdout] | [INFO] [stdout] 51 | self.reserve_if_static(&a); [INFO] [stdout] | ^^ help: change this to: `a` [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: variable `Overflow` should have a snake case name [INFO] [stdout] --> src/token.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | Overflow => format!("cannot handle large naturals yet (BUG) ({})", e), [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `overflow` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Underflow` should have a snake case name [INFO] [stdout] --> src/token.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | Underflow => format!("must be non-negative ({})", e), [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `underflow` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `or_patterns` has been stable since 1.53.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:1:32 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(int_error_matching, or_patterns)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `int_error_matching` has been stable since 1.55.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(int_error_matching, or_patterns)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/parse.rs:325:21 [INFO] [stdout] | [INFO] [stdout] 325 | Join => vec![ [INFO] [stdout] | _____________________^ [INFO] [stdout] 326 | | unimplemented!(), [INFO] [stdout] | | ---------------- any code following this expression is unreachable [INFO] [stdout] 327 | | ], [INFO] [stdout] | |_____________^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/token.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | Underflow => format!("must be non-negative ({})", e), [INFO] [stdout] | ^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/token.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 12 | Empty => "empty specifier".into(), [INFO] [stdout] | ----- matches some of the same values [INFO] [stdout] 13 | InvalidDigit => format!("not a digit ({})", e), [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] 14 | Overflow => format!("cannot handle large naturals yet (BUG) ({})", e), [INFO] [stdout] | -------- matches some of the same values [INFO] [stdout] 15 | Underflow => format!("must be non-negative ({})", e), [INFO] [stdout] | ^^^^^^^^^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/token.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 14 | Overflow => format!("cannot handle large naturals yet (BUG) ({})", e), [INFO] [stdout] | -------- matches any value [INFO] [stdout] 15 | Underflow => format!("must be non-negative ({})", e), [INFO] [stdout] 16 | Zero => unreachable!(), [INFO] [stdout] | ^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/token.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | _ => format!("unknown (BUG) ({})", e), // unfixable [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/token.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 12 | Empty => "empty specifier".into(), [INFO] [stdout] | ----- matches some of the same values [INFO] [stdout] 13 | InvalidDigit => format!("not a digit ({})", e), [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] 14 | Overflow => format!("cannot handle large naturals yet (BUG) ({})", e), [INFO] [stdout] | -------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 17 | _ => format!("unknown (BUG) ({})", e), // unfixable [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `Overflow` [INFO] [stdout] --> src/token.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | Overflow => format!("cannot handle large naturals yet (BUG) ({})", e), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Overflow` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `Underflow` [INFO] [stdout] --> src/token.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | Underflow => format!("must be non-negative ({})", e), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_Underflow` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/exec.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | &**self.0 [INFO] [stdout] | ^^^^^^^^^ help: try: `&self.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/exec.rs:163:32 [INFO] [stdout] | [INFO] [stdout] 163 | conf.state[&dst] += outer_amount * amount; [INFO] [stdout] | ^^^^ help: change this to: `dst` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/exec.rs:168:51 [INFO] [stdout] | [INFO] [stdout] 168 | conf.state[&dst] = conf.state[&src].clone() + amount; [INFO] [stdout] | ^^^^ help: change this to: `src` [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/exec.rs:168:32 [INFO] [stdout] | [INFO] [stdout] 168 | conf.state[&dst] = conf.state[&src].clone() + amount; [INFO] [stdout] | ^^^^ help: change this to: `dst` [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/exec.rs:175:51 [INFO] [stdout] | [INFO] [stdout] 175 | let dst_var = &mut conf.state[&dst]; [INFO] [stdout] | ^^^^ help: change this to: `dst` [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/exec.rs:187:51 [INFO] [stdout] | [INFO] [stdout] 187 | conf.state[&dst] = conf.state[&src].clone() - amount; [INFO] [stdout] | ^^^^ help: change this to: `src` [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/exec.rs:187:32 [INFO] [stdout] | [INFO] [stdout] 187 | conf.state[&dst] = conf.state[&src].clone() - amount; [INFO] [stdout] | ^^^^ help: change this to: `dst` [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: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:337:17 [INFO] [stdout] | [INFO] [stdout] 337 | / write!(f, "{}add 0x{:X} to {} into {}\n", [INFO] [stdout] 338 | | levelindent, amount, src, dst) [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 337 - write!(f, "{}add 0x{:X} to {} into {}\n", [INFO] [stdout] 337 + writeln!(f, "{}add 0x{:X} to {} into {}", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:341:17 [INFO] [stdout] | [INFO] [stdout] 341 | / write!(f, "{}subtract 0x{:X} from {} into {}\n", [INFO] [stdout] 342 | | levelindent, amount, src, dst) [INFO] [stdout] | |__________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 341 - write!(f, "{}subtract 0x{:X} from {} into {}\n", [INFO] [stdout] 341 + writeln!(f, "{}subtract 0x{:X} from {} into {}", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:345:17 [INFO] [stdout] | [INFO] [stdout] 345 | / write!(f, "{}loop {} do\n", [INFO] [stdout] 346 | | levelindent, var)?; [INFO] [stdout] | |_____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 345 - write!(f, "{}loop {} do\n", [INFO] [stdout] 345 + writeln!(f, "{}loop {} do", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:348:17 [INFO] [stdout] | [INFO] [stdout] 348 | write!(f, "{}end\n", levelindent) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 348 - write!(f, "{}end\n", levelindent) [INFO] [stdout] 348 + writeln!(f, "{}end", levelindent) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:351:17 [INFO] [stdout] | [INFO] [stdout] 351 | / write!(f, "{}do 0x{:X} times\n", [INFO] [stdout] 352 | | levelindent, amount)?; [INFO] [stdout] | |________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 351 - write!(f, "{}do 0x{:X} times\n", [INFO] [stdout] 351 + writeln!(f, "{}do 0x{:X} times", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:354:17 [INFO] [stdout] | [INFO] [stdout] 354 | write!(f, "{}end\n", levelindent) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 354 - write!(f, "{}end\n", levelindent) [INFO] [stdout] 354 + writeln!(f, "{}end", levelindent) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:357:17 [INFO] [stdout] | [INFO] [stdout] 357 | / write!(f, "{}while {} times\n", [INFO] [stdout] 358 | | levelindent, var)?; [INFO] [stdout] | |_____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 357 - write!(f, "{}while {} times\n", [INFO] [stdout] 357 + writeln!(f, "{}while {} times", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:360:17 [INFO] [stdout] | [INFO] [stdout] 360 | write!(f, "{}end\n", levelindent) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 360 - write!(f, "{}end\n", levelindent) [INFO] [stdout] 360 + writeln!(f, "{}end", levelindent) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:369:9 [INFO] [stdout] | [INFO] [stdout] 369 | write!(f, " state: {:?}\n", self.state)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 369 - write!(f, " state: {:?}\n", self.state)?; [INFO] [stdout] 369 + writeln!(f, " state: {:?}", self.state)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:370:9 [INFO] [stdout] | [INFO] [stdout] 370 | write!(f, " stack: [\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 370 - write!(f, " stack: [\n")?; [INFO] [stdout] 370 + writeln!(f, " stack: [")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:373:13 [INFO] [stdout] | [INFO] [stdout] 373 | write!(f, " ,\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 373 - write!(f, " ,\n")?; [INFO] [stdout] 373 + writeln!(f, " ,")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/exec.rs:375:9 [INFO] [stdout] | [INFO] [stdout] 375 | write!(f, " ]\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 375 - write!(f, " ]\n")?; [INFO] [stdout] 375 + writeln!(f, " ]")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parse.rs:365:70 [INFO] [stdout] | [INFO] [stdout] 365 | into.append(&mut op.gen_code(&lhs_ident, &rhs_ident, &dst)); [INFO] [stdout] | ^^^^ help: change this to: `dst` [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 operation has no effect [INFO] [stdout] --> src/parse.rs:391:82 [INFO] [stdout] | [INFO] [stdout] 391 | let head_incomplete = ParseIdent::Dynamic(DynamicIdent::CalcIntermediate(stack_depth + 0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider reducing it to: `stack_depth` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parse.rs:411:47 [INFO] [stdout] | [INFO] [stdout] 411 | DivMod::Take.gen_code(&tail, &tmp, &head_incomplete) [INFO] [stdout] | ^^^^^ help: change this to: `tail` [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: redundant closure [INFO] [stdout] --> src/parse.rs:733:41 [INFO] [stdout] | [INFO] [stdout] 733 | Parser::new(vec.into_iter().map(|t| Ok(t)).peekable()).parse_calc_expression() [INFO] [stdout] | ^^^^^^^^^ help: replace the closure with the tuple variant itself: `Ok` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/parse.rs:830:55 [INFO] [stdout] | [INFO] [stdout] 830 | ParseBlock::try_from_iter(vec.into_iter().map(|t| Ok(t))) [INFO] [stdout] | ^^^^^^^^^ help: replace the closure with the tuple variant itself: `Ok` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/resolve.rs:36:44 [INFO] [stdout] | [INFO] [stdout] 36 | self.reserve_if_static(&a); [INFO] [stdout] | ^^ help: change this to: `a` [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/resolve.rs:37:44 [INFO] [stdout] | [INFO] [stdout] 37 | self.reserve_if_static(&b); [INFO] [stdout] | ^^ help: change this to: `b` [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/resolve.rs:40:44 [INFO] [stdout] | [INFO] [stdout] 40 | self.reserve_if_static(&a); [INFO] [stdout] | ^^ help: change this to: `a` [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/resolve.rs:41:44 [INFO] [stdout] | [INFO] [stdout] 41 | self.reserve_if_static(&b); [INFO] [stdout] | ^^ help: change this to: `b` [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/resolve.rs:44:44 [INFO] [stdout] | [INFO] [stdout] 44 | self.reserve_if_static(&a); [INFO] [stdout] | ^^ help: change this to: `a` [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/resolve.rs:51:44 [INFO] [stdout] | [INFO] [stdout] 51 | self.reserve_if_static(&a); [INFO] [stdout] | ^^ help: change this to: `a` [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 boolean expression can be simplified [INFO] [stdout] --> src/token.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | assert!(!parse_natural("x10").is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `parse_natural("x10").is_ok()` [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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/token.rs:93:17 [INFO] [stdout] | [INFO] [stdout] 93 | assert!(!parse_natural("x10000000000000000").is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `parse_natural("x10000000000000000").is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/token.rs:94:17 [INFO] [stdout] | [INFO] [stdout] 94 | assert!(!parse_natural("x100000000000000000000000000000000").is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `parse_natural("x100000000000000000000000000000000").is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/token.rs:346:58 [INFO] [stdout] | [INFO] [stdout] 346 | let mut tokenizer = Tokenizer::new(s.chars().map(|c| Ok(c))); [INFO] [stdout] | ^^^^^^^^^ help: replace the closure with the tuple variant itself: `Ok` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.94s [INFO] [stdout] warning: variable `Overflow` should have a snake case name [INFO] [stdout] --> src/token.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | Overflow => format!("cannot handle large naturals yet (BUG) ({})", e), [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `overflow` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Underflow` should have a snake case name [INFO] [stdout] --> src/token.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | Underflow => format!("must be non-negative ({})", e), [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `underflow` [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "267e5fe8f06db0a71873ba4bdcfd1f05b0cf2dc8224327754ae4f296bfd0e928", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "267e5fe8f06db0a71873ba4bdcfd1f05b0cf2dc8224327754ae4f296bfd0e928", kill_on_drop: false }` [INFO] [stdout] 267e5fe8f06db0a71873ba4bdcfd1f05b0cf2dc8224327754ae4f296bfd0e928