[INFO] cloning repository https://github.com/jmatzen/rust-scheme [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jmatzen/rust-scheme" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjmatzen%2Frust-scheme", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjmatzen%2Frust-scheme'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e8eed69c9305a3621ab5cd255dc1cdfa444ef92e [INFO] linting jmatzen/rust-scheme against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjmatzen%2Frust-scheme" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/jmatzen/rust-scheme [INFO] finished tweaking git repo https://github.com/jmatzen/rust-scheme [INFO] tweaked toml for git repo https://github.com/jmatzen/rust-scheme written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jmatzen/rust-scheme 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/jmatzen/rust-scheme 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] a0a8832279d09131ac966ed2507665b756a208d6fd3c5d2a37880eaf07d07a1a [INFO] running `Command { std: "docker" "start" "-a" "a0a8832279d09131ac966ed2507665b756a208d6fd3c5d2a37880eaf07d07a1a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a0a8832279d09131ac966ed2507665b756a208d6fd3c5d2a37880eaf07d07a1a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a0a8832279d09131ac966ed2507665b756a208d6fd3c5d2a37880eaf07d07a1a", kill_on_drop: false }` [INFO] [stdout] a0a8832279d09131ac966ed2507665b756a208d6fd3c5d2a37880eaf07d07a1a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] d5579205219421e5b747f5baeff309cfbfa6693f9571f4b4841d340750faf6f5 [INFO] running `Command { std: "docker" "start" "-a" "d5579205219421e5b747f5baeff309cfbfa6693f9571f4b4841d340750faf6f5", kill_on_drop: false }` [INFO] [stderr] Checking bitflags v2.9.0 [INFO] [stderr] Compiling libc v0.2.171 [INFO] [stderr] Compiling rustix v1.0.5 [INFO] [stderr] Checking smallvec v1.15.0 [INFO] [stderr] Checking endian-type v0.1.2 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Checking nibble_vec v0.1.0 [INFO] [stderr] Checking radix_trie v0.2.1 [INFO] [stderr] Checking fd-lock v4.0.4 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Checking thiserror v2.0.12 [INFO] [stderr] Checking rustyline v15.0.0 [INFO] [stderr] Checking rust-async v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::str::Chars` [INFO] [stdout] --> src/parser.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::str::Chars; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BuiltinFn` [INFO] [stdout] --> src/eval.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::value::{Value, BuiltinFn}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/eval.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rustyline::history::MemHistory` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use rustyline::history::MemHistory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Editor` [INFO] [stdout] --> src/main.rs:10:32 [INFO] [stdout] | [INFO] [stdout] 10 | use rustyline::{DefaultEditor, Editor}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::Chars` [INFO] [stdout] --> src/parser.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::str::Chars; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BuiltinFn` [INFO] [stdout] --> src/eval.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::value::{Value, BuiltinFn}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/eval.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rustyline::history::MemHistory` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use rustyline::history::MemHistory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Editor` [INFO] [stdout] --> src/main.rs:10:32 [INFO] [stdout] | [INFO] [stdout] 10 | use rustyline::{DefaultEditor, Editor}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `lookup_local` is never used [INFO] [stdout] --> src/env.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Environment { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn lookup_local(&self, name: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/parser.rs:77:18 [INFO] [stdout] | [INFO] [stdout] 77 | c if c.is_digit(10) || (c == '-' && chars.clone().nth(1).map_or(false, |nc| nc.is_digit(10))) => { // Integer [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/parser.rs:77:49 [INFO] [stdout] | [INFO] [stdout] 77 | c if c.is_digit(10) || (c == '-' && chars.clone().nth(1).map_or(false, |nc| nc.is_digit(10))) => { // Integer [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 77 - c if c.is_digit(10) || (c == '-' && chars.clone().nth(1).map_or(false, |nc| nc.is_digit(10))) => { // Integer [INFO] [stdout] 77 + c if c.is_digit(10) || (c == '-' && chars.clone().nth(1).is_some_and(|nc| nc.is_digit(10))) => { // Integer [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/parser.rs:77:89 [INFO] [stdout] | [INFO] [stdout] 77 | c if c.is_digit(10) || (c == '-' && chars.clone().nth(1).map_or(false, |nc| nc.is_digit(10))) => { // Integer [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `nc.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/parser.rs:83:24 [INFO] [stdout] | [INFO] [stdout] 83 | if next_c.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `next_c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/parser.rs:95:18 [INFO] [stdout] | [INFO] [stdout] 95 | while let Some(next_c) = chars.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for next_c in chars.by_ref()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> src/eval.rs:115:29 [INFO] [stdout] | [INFO] [stdout] 115 | if args_expr.len() < 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `args_expr.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/eval.rs:218:25 [INFO] [stdout] | [INFO] [stdout] 218 | match eval_step(&*current_expr_rc, Rc::clone(¤t_env))? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `¤t_expr_rc` [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: unneeded `return` statement [INFO] [stdout] --> src/builtins.rs:79:10 [INFO] [stdout] | [INFO] [stdout] 79 | return Err(SchemeError::Arity { expected: "at least 2 for integer division".to_string(), got: 1 }); [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] 79 - return Err(SchemeError::Arity { expected: "at least 2 for integer division".to_string(), got: 1 }); [INFO] [stdout] 79 + Err(SchemeError::Arity { expected: "at least 2 for integer division".to_string(), got: 1 }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/builtins.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | if !(prev < current) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(prev >= current)` [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/builtins.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 121 | if !(prev > current) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(prev <= current)` [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 `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:44:26 [INFO] [stdout] | [INFO] [stdout] 44 | / if let value::Value::Symbol(s) = &parsed_expr { [INFO] [stdout] 45 | | if s.is_empty() { continue; } [INFO] [stdout] 46 | | } [INFO] [stdout] | |__________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 44 ~ if let value::Value::Symbol(s) = &parsed_expr [INFO] [stdout] 45 ~ && s.is_empty() { continue; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:39:17 [INFO] [stdout] | [INFO] [stdout] 39 | rl.add_history_entry(line.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 39 | let _ = rl.add_history_entry(line.as_str()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `lookup_local` is never used [INFO] [stdout] --> src/env.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Environment { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn lookup_local(&self, name: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/parser.rs:77:18 [INFO] [stdout] | [INFO] [stdout] 77 | c if c.is_digit(10) || (c == '-' && chars.clone().nth(1).map_or(false, |nc| nc.is_digit(10))) => { // Integer [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/parser.rs:77:49 [INFO] [stdout] | [INFO] [stdout] 77 | c if c.is_digit(10) || (c == '-' && chars.clone().nth(1).map_or(false, |nc| nc.is_digit(10))) => { // Integer [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 77 - c if c.is_digit(10) || (c == '-' && chars.clone().nth(1).map_or(false, |nc| nc.is_digit(10))) => { // Integer [INFO] [stdout] 77 + c if c.is_digit(10) || (c == '-' && chars.clone().nth(1).is_some_and(|nc| nc.is_digit(10))) => { // Integer [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/parser.rs:77:89 [INFO] [stdout] | [INFO] [stdout] 77 | c if c.is_digit(10) || (c == '-' && chars.clone().nth(1).map_or(false, |nc| nc.is_digit(10))) => { // Integer [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `nc.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/parser.rs:83:24 [INFO] [stdout] | [INFO] [stdout] 83 | if next_c.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `next_c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/parser.rs:95:18 [INFO] [stdout] | [INFO] [stdout] 95 | while let Some(next_c) = chars.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for next_c in chars.by_ref()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> src/eval.rs:115:29 [INFO] [stdout] | [INFO] [stdout] 115 | if args_expr.len() < 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `args_expr.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/eval.rs:218:25 [INFO] [stdout] | [INFO] [stdout] 218 | match eval_step(&*current_expr_rc, Rc::clone(¤t_env))? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `¤t_expr_rc` [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: unneeded `return` statement [INFO] [stdout] --> src/builtins.rs:79:10 [INFO] [stdout] | [INFO] [stdout] 79 | return Err(SchemeError::Arity { expected: "at least 2 for integer division".to_string(), got: 1 }); [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] 79 - return Err(SchemeError::Arity { expected: "at least 2 for integer division".to_string(), got: 1 }); [INFO] [stdout] 79 + Err(SchemeError::Arity { expected: "at least 2 for integer division".to_string(), got: 1 }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/builtins.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | if !(prev < current) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(prev >= current)` [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/builtins.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 121 | if !(prev > current) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `(prev <= current)` [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 `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:44:26 [INFO] [stdout] | [INFO] [stdout] 44 | / if let value::Value::Symbol(s) = &parsed_expr { [INFO] [stdout] 45 | | if s.is_empty() { continue; } [INFO] [stdout] 46 | | } [INFO] [stdout] | |__________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 44 ~ if let value::Value::Symbol(s) = &parsed_expr [INFO] [stdout] 45 ~ && s.is_empty() { continue; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:39:17 [INFO] [stdout] | [INFO] [stdout] 39 | rl.add_history_entry(line.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 39 | let _ = rl.add_history_entry(line.as_str()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.04s [INFO] running `Command { std: "docker" "inspect" "d5579205219421e5b747f5baeff309cfbfa6693f9571f4b4841d340750faf6f5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d5579205219421e5b747f5baeff309cfbfa6693f9571f4b4841d340750faf6f5", kill_on_drop: false }` [INFO] [stdout] d5579205219421e5b747f5baeff309cfbfa6693f9571f4b4841d340750faf6f5