[INFO] fetching crate molt-forked 0.4.5... [INFO] linting molt-forked-0.4.5 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate molt-forked 0.4.5 into /workspace/builds/worker-0-tc1/source [INFO] started tweaking crates.io crate molt-forked 0.4.5 [INFO] finished tweaking crates.io crate molt-forked 0.4.5 [INFO] tweaked toml for crates.io crate molt-forked 0.4.5 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate molt-forked 0.4.5 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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 44 packages to latest compatible versions [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-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] fc234a40ef85f5743a0fc48c02e26dd23bb2892f66944ce6247de1cc65eaecd3 [INFO] running `Command { std: "docker" "start" "-a" "fc234a40ef85f5743a0fc48c02e26dd23bb2892f66944ce6247de1cc65eaecd3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fc234a40ef85f5743a0fc48c02e26dd23bb2892f66944ce6247de1cc65eaecd3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fc234a40ef85f5743a0fc48c02e26dd23bb2892f66944ce6247de1cc65eaecd3", kill_on_drop: false }` [INFO] [stdout] fc234a40ef85f5743a0fc48c02e26dd23bb2892f66944ce6247de1cc65eaecd3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] e6997b304e0caa1b5b8b77bf7c9c32d61696811bcfd6b727b2bb4aa910c3cd3f [INFO] running `Command { std: "docker" "start" "-a" "e6997b304e0caa1b5b8b77bf7c9c32d61696811bcfd6b727b2bb4aa910c3cd3f", kill_on_drop: false }` [INFO] [stderr] Checking molt-forked v0.4.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/commands.rs:480:1 [INFO] [stdout] | [INFO] [stdout] 480 | / /// See the Molt Book. [INFO] [stdout] 481 | | [INFO] [stdout] | |_^ [INFO] [stdout] 482 | pub fn cmd_expr(interp: &mut Interp, argv: &[Value]) -> MoltResult { [INFO] [stdout] | --------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/expr.rs:814:1 [INFO] [stdout] | [INFO] [stdout] 814 | / /// Datum contains it. [INFO] [stdout] 815 | | [INFO] [stdout] | |_^ [INFO] [stdout] 816 | fn expr_lex(interp: &mut Interp, info: &mut ExprInfo) -> DatumResult { [INFO] [stdout] | ----------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::gen_command` [INFO] [stdout] --> src/interp.rs:444:5 [INFO] [stdout] | [INFO] [stdout] 444 | use crate::gen_command; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/interp.rs:1689:5 [INFO] [stdout] | [INFO] [stdout] 1689 | / /// These provide the infrastructure for the `array` command. [INFO] [stdout] 1690 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 1694 | pub(crate) fn array_unset(&mut self, array_name: &str) { [INFO] [stdout] | ------------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 1690 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `molt_ok` [INFO] [stdout] --> src/test_harness.rs:25:25 [INFO] [stdout] | [INFO] [stdout] 25 | use crate::{check_args, molt_ok, prelude::Interp, MoltResult, ResultCode, Value}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> src/lib.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | pub mod test_harness; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/test_harness.rs:59:1 [INFO] [stdout] | [INFO] [stdout] 59 | / /// ``` [INFO] [stdout] 60 | | [INFO] [stdout] | |_^ [INFO] [stdout] 61 | pub fn test_harness( [INFO] [stdout] | ------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/util.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / /// * The resulting string has the form of an integer, but might be out of the valid range. [INFO] [stdout] 25 | | [INFO] [stdout] | |_^ [INFO] [stdout] 26 | pub fn read_int(ptr: &mut Tokenizer) -> Option { [INFO] [stdout] | --------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/value.rs:956:23 [INFO] [stdout] | [INFO] [stdout] 956 | pub fn from_other(value: T) -> Value [INFO] [stdout] | ^ [INFO] [stdout] 957 | where [INFO] [stdout] 958 | T: Display + Debug, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] = note: `#[warn(clippy::multiple_bound_locations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/value.rs:999:21 [INFO] [stdout] | [INFO] [stdout] 999 | pub fn as_other(&self) -> Option> [INFO] [stdout] | ^ [INFO] [stdout] 1000 | where [INFO] [stdout] 1001 | T: Display + Debug + FromStr, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/value.rs:1058:20 [INFO] [stdout] | [INFO] [stdout] 1058 | pub fn as_copy(&self) -> Option [INFO] [stdout] | ^ [INFO] [stdout] 1059 | where [INFO] [stdout] 1060 | T: Display + Debug + FromStr + Copy, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/commands.rs:480:1 [INFO] [stdout] | [INFO] [stdout] 480 | / /// See the Molt Book. [INFO] [stdout] 481 | | [INFO] [stdout] | |_^ [INFO] [stdout] 482 | pub fn cmd_expr(interp: &mut Interp, argv: &[Value]) -> MoltResult { [INFO] [stdout] | --------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/expr.rs:814:1 [INFO] [stdout] | [INFO] [stdout] 814 | / /// Datum contains it. [INFO] [stdout] 815 | | [INFO] [stdout] | |_^ [INFO] [stdout] 816 | fn expr_lex(interp: &mut Interp, info: &mut ExprInfo) -> DatumResult { [INFO] [stdout] | ----------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/interp.rs:1689:5 [INFO] [stdout] | [INFO] [stdout] 1689 | / /// These provide the infrastructure for the `array` command. [INFO] [stdout] 1690 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 1694 | pub(crate) fn array_unset(&mut self, array_name: &str) { [INFO] [stdout] | ------------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the documentation should include the empty line include it in the comment [INFO] [stdout] | [INFO] [stdout] 1690 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `molt_ok` [INFO] [stdout] --> src/test_harness.rs:25:25 [INFO] [stdout] | [INFO] [stdout] 25 | use crate::{check_args, molt_ok, prelude::Interp, MoltResult, ResultCode, Value}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/test_harness.rs:59:1 [INFO] [stdout] | [INFO] [stdout] 59 | / /// ``` [INFO] [stdout] 60 | | [INFO] [stdout] | |_^ [INFO] [stdout] 61 | pub fn test_harness( [INFO] [stdout] | ------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/util.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / /// * The resulting string has the form of an integer, but might be out of the valid range. [INFO] [stdout] 25 | | [INFO] [stdout] | |_^ [INFO] [stdout] 26 | pub fn read_int(ptr: &mut Tokenizer) -> Option { [INFO] [stdout] | --------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/value.rs:956:23 [INFO] [stdout] | [INFO] [stdout] 956 | pub fn from_other(value: T) -> Value [INFO] [stdout] | ^ [INFO] [stdout] 957 | where [INFO] [stdout] 958 | T: Display + Debug, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] = note: `#[warn(clippy::multiple_bound_locations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/value.rs:999:21 [INFO] [stdout] | [INFO] [stdout] 999 | pub fn as_other(&self) -> Option> [INFO] [stdout] | ^ [INFO] [stdout] 1000 | where [INFO] [stdout] 1001 | T: Display + Debug + FromStr, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/value.rs:1058:20 [INFO] [stdout] | [INFO] [stdout] 1058 | pub fn as_copy(&self) -> Option [INFO] [stdout] | ^ [INFO] [stdout] 1059 | where [INFO] [stdout] 1060 | T: Display + Debug + FromStr + Copy, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `interp` [INFO] [stdout] --> src/commands.rs:955:22 [INFO] [stdout] | [INFO] [stdout] 955 | pub fn cmd_puts(interp: &mut Interp, argv: &[Value]) -> MoltResult { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_interp` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/interp.rs:895:36 [INFO] [stdout] | [INFO] [stdout] 895 | if let Err(e) = result_value { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/interp.rs:918:24 [INFO] [stdout] | [INFO] [stdout] 918 | if let Err(e) = result_value { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cmd_todo` is never used [INFO] [stdout] --> src/commands.rs:1168:8 [INFO] [stdout] | [INFO] [stdout] 1168 | pub fn cmd_todo(_interp: &mut Interp, _argv: &[Value]) -> MoltResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `slice` is never used [INFO] [stdout] --> src/util.rs:183:8 [INFO] [stdout] | [INFO] [stdout] 181 | pub(crate) trait StringUtils { [INFO] [stdout] | ----------- method in this trait [INFO] [stdout] 182 | fn substring(&self, start: usize, len: usize) -> &str; [INFO] [stdout] 183 | fn slice(&self, range: impl RangeBounds) -> &str; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `as_any`, `as_any_mut`, and `into_any` are never used [INFO] [stdout] --> src/value.rs:1103:8 [INFO] [stdout] | [INFO] [stdout] 1102 | trait MoltAny: Any + Display + Debug { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] 1103 | fn as_any(&self) -> &dyn Any; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 1104 | fn as_any_mut(&mut self) -> &mut dyn Any; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1105 | fn into_any(self: Box) -> Box; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Result.and_then(|x| Ok(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/commands.rs:65:34 [INFO] [stdout] | [INFO] [stdout] 65 | let mut new_string: String = interp [INFO] [stdout] | __________________________________^ [INFO] [stdout] 66 | | .var(&argv[1]) [INFO] [stdout] 67 | | .and_then(|val| Ok(val.to_string())) [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 65 ~ let mut new_string: String = interp [INFO] [stdout] 66 + .var(&argv[1]).map(|val| val.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/commands.rs:159:43 [INFO] [stdout] | [INFO] [stdout] 159 | interp.array_set(var_name.name(), &*argv[3].as_list()?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `&argv[3].as_list()?` [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: deref which would be done by auto-deref [INFO] [stdout] --> src/commands.rs:164:43 [INFO] [stdout] | [INFO] [stdout] 164 | interp.array_set(var_name.name(), &*Value::empty().as_list()?)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&Value::empty().as_list()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/commands.rs:316:8 [INFO] [stdout] | [INFO] [stdout] 316 | if argv.len() % 2 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `!argv.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/commands.rs:389:20 [INFO] [stdout] | [INFO] [stdout] 389 | let mut dict = (&*argv[2].as_dict()?).clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `(*argv[2].as_dict()?)` [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/commands.rs:558:32 [INFO] [stdout] | [INFO] [stdout] 558 | interp.set_var(&var, list[i].clone())?; [INFO] [stdout] | ^^^^ help: change this to: `var` [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/commands.rs:561:32 [INFO] [stdout] | [INFO] [stdout] 561 | interp.set_var(&var, Value::empty())?; [INFO] [stdout] | ^^^^ help: change this to: `var` [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: unneeded `return` statement [INFO] [stdout] --> src/commands.rs:682:9 [INFO] [stdout] | [INFO] [stdout] 682 | / return molt_err!( [INFO] [stdout] 683 | | "wrong # args: extra words after \"else\" clause in \"if\" command" [INFO] [stdout] 684 | | ); [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] 682 ~ molt_err!( [INFO] [stdout] 683 + "wrong # args: extra words after \"else\" clause in \"if\" command" [INFO] [stdout] 684 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/commands.rs:686:9 [INFO] [stdout] | [INFO] [stdout] 686 | / return molt_err!( [INFO] [stdout] 687 | | "wrong # args: no expression after \"{}\" argument", [INFO] [stdout] 688 | | argv[argi - 1] [INFO] [stdout] 689 | | ); [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] 686 ~ molt_err!( [INFO] [stdout] 687 + "wrong # args: no expression after \"{}\" argument", [INFO] [stdout] 688 + argv[argi - 1] [INFO] [stdout] 689 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/commands.rs:691:9 [INFO] [stdout] | [INFO] [stdout] 691 | / return molt_err!( [INFO] [stdout] 692 | | "wrong # args: no script following after \"{}\" argument", [INFO] [stdout] 693 | | argv[argi - 1] [INFO] [stdout] 694 | | ); [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] 691 ~ molt_err!( [INFO] [stdout] 692 + "wrong # args: no script following after \"{}\" argument", [INFO] [stdout] 693 + argv[argi - 1] [INFO] [stdout] 694 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Result::Err` [INFO] [stdout] --> src/commands.rs:710:11 [INFO] [stdout] | [INFO] [stdout] 710 | + interp [INFO] [stdout] | ___________^ [INFO] [stdout] 711 | | .var(&argv[1]) [INFO] [stdout] 712 | | .and_then(|val| Ok(val.as_int()?)) [INFO] [stdout] 713 | | .unwrap_or_else(|_| 0); [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `unwrap_or` instead [INFO] [stdout] | [INFO] [stdout] 713 - .unwrap_or_else(|_| 0); [INFO] [stdout] 713 + .unwrap_or(0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/commands.rs:712:29 [INFO] [stdout] | [INFO] [stdout] 712 | .and_then(|val| Ok(val.as_int()?)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 712 - .and_then(|val| Ok(val.as_int()?)) [INFO] [stdout] 712 + .and_then(|val| val.as_int()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/commands.rs:742:22 [INFO] [stdout] | [INFO] [stdout] 742 | interp.proc_args(&argv[2].as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `argv[2].as_str()` [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/commands.rs:748:22 [INFO] [stdout] | [INFO] [stdout] 748 | interp.proc_body(&argv[2].as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `argv[2].as_str()` [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/commands.rs:754:25 [INFO] [stdout] | [INFO] [stdout] 754 | interp.command_type(&argv[2].as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `argv[2].as_str()` [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/commands.rs:766:44 [INFO] [stdout] | [INFO] [stdout] 766 | if let Some(val) = interp.proc_default(&argv[2].as_str(), &argv[3].as_str())? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `argv[2].as_str()` [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/commands.rs:766:63 [INFO] [stdout] | [INFO] [stdout] 766 | if let Some(val) = interp.proc_default(&argv[2].as_str(), &argv[3].as_str())? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `argv[3].as_str()` [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: called `expect` on `var_result` after checking its variant with `is_ok` [INFO] [stdout] --> src/commands.rs:841:9 [INFO] [stdout] | [INFO] [stdout] 840 | let mut list: MoltList = if var_result.is_ok() { [INFO] [stdout] | --------------------- help: try: `if let Ok() = var_result` [INFO] [stdout] 841 | var_result.expect("got value").to_list()? [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/commands.rs:860:31 [INFO] [stdout] | [INFO] [stdout] 860 | lindex_into(&argv[1], &*argv[2].as_list()?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `&argv[2].as_list()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/commands.rs:1018:33 [INFO] [stdout] | [INFO] [stdout] 1018 | let opt_args: &[Value] = if argv.len() % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `argv.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands.rs:1412:37 [INFO] [stdout] | [INFO] [stdout] 1412 | if haystack.starts_with(&from.as_str()) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `from.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/commands.rs:1507:9 [INFO] [stdout] | [INFO] [stdout] 1507 | / if result.is_err() { [INFO] [stdout] 1508 | | return result; [INFO] [stdout] 1509 | | } [INFO] [stdout] | |_________^ help: replace it with: `result.as_ref()?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/dict.rs:36:30 [INFO] [stdout] | [INFO] [stdout] 36 | molt_ok!(dict_insert(&*dict, &keys[0], &value)) [INFO] [stdout] | ^^^^^^ help: try: `&dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dict.rs:36:48 [INFO] [stdout] | [INFO] [stdout] 36 | molt_ok!(dict_insert(&*dict, &keys[0], &value)) [INFO] [stdout] | ^^^^^^ help: change this to: `value` [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: deref which would be done by auto-deref [INFO] [stdout] --> src/dict.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | &*dict, [INFO] [stdout] | ^^^^^^ help: try: `&dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/dict.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | &*dict, [INFO] [stdout] | ^^^^^^ help: try: `&dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/dict.rs:69:30 [INFO] [stdout] | [INFO] [stdout] 69 | molt_ok!(dict_remove(&*dict, &keys[0])) [INFO] [stdout] | ^^^^^^ help: try: `&dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/dict.rs:71:30 [INFO] [stdout] | [INFO] [stdout] 71 | molt_ok!(dict_insert(&*dict, &keys[0], &dict_path_remove(dval, &keys[1..])?)) [INFO] [stdout] | ^^^^^^ help: try: `&dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/dict.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | assert!(list.len() % 2 == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `list.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/expr.rs:264:19 [INFO] [stdout] | [INFO] [stdout] 264 | fn expr_top_level<'a, Ctx: 'static>( [INFO] [stdout] | ^^ [INFO] [stdout] 265 | interp: &mut Interp, [INFO] [stdout] 266 | string: &'a str, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 264 ~ fn expr_top_level( [INFO] [stdout] 265 | interp: &mut Interp, [INFO] [stdout] 266 ~ string: &str, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/expr.rs:299:19 [INFO] [stdout] | [INFO] [stdout] 299 | fn expr_get_value<'a, Ctx: 'static>( [INFO] [stdout] | ^^ [INFO] [stdout] 300 | interp: &mut Interp, [INFO] [stdout] 301 | info: &'a mut ExprInfo, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 299 ~ fn expr_get_value( [INFO] [stdout] 300 | interp: &mut Interp, [INFO] [stdout] 301 ~ info: &mut ExprInfo, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!Range::contains` implementation [INFO] [stdout] --> src/expr.rs:408:12 [INFO] [stdout] | [INFO] [stdout] 408 | if operator < MULT || operator >= UNARY_MINUS { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(MULT..UNARY_MINUS).contains(&operator)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/expr.rs:1040:13 [INFO] [stdout] | [INFO] [stdout] 1040 | / if p.has(|c| c.is_alphabetic()) { [INFO] [stdout] 1041 | | let mut str = String::new(); [INFO] [stdout] 1042 | | while p.has(|c| c.is_alphabetic() || c.is_digit(10)) { [INFO] [stdout] 1043 | | str.push(p.next().unwrap()); [INFO] [stdout] ... | [INFO] [stdout] 1088 | | Ok(Datum::none()) [INFO] [stdout] 1089 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1039 ~ Some(_) [INFO] [stdout] 1040 ~ if p.has(|c| c.is_alphabetic()) => { [INFO] [stdout] 1041 | let mut str = String::new(); [INFO] [stdout] ... [INFO] [stdout] 1083 | } [INFO] [stdout] 1084 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/expr.rs:1042:54 [INFO] [stdout] | [INFO] [stdout] 1042 | while p.has(|c| c.is_alphabetic() || c.is_digit(10)) { [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: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/expr.rs:1359:20 [INFO] [stdout] | [INFO] [stdout] 1359 | if !p.has(|ch| ch.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `ch.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/expr.rs:1364:22 [INFO] [stdout] | [INFO] [stdout] 1364 | while p.has(|ch| ch.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `ch.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: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/interp.rs:634:5 [INFO] [stdout] | [INFO] [stdout] 634 | / pub fn default() -> Self { [INFO] [stdout] 635 | | use crate::prelude::*; [INFO] [stdout] 636 | | let command = gen_command!( [INFO] [stdout] 637 | | (), [INFO] [stdout] ... | [INFO] [stdout] 654 | | Interp::new((), command, true, "default-app") [INFO] [stdout] 655 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `interp` [INFO] [stdout] --> src/commands.rs:955:22 [INFO] [stdout] | [INFO] [stdout] 955 | pub fn cmd_puts(interp: &mut Interp, argv: &[Value]) -> MoltResult { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_interp` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/interp.rs:1770:12 [INFO] [stdout] | [INFO] [stdout] 1770 | if kvlist.len() % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `kvlist.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's keys [INFO] [stdout] --> src/interp.rs:2000:13 [INFO] [stdout] | [INFO] [stdout] 2000 | self.procs.iter().map(|(name, _)| Value::from(name)).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.procs.keys().map(|name| Value::from(name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/interp.rs:2287:9 [INFO] [stdout] | [INFO] [stdout] 2287 | msg.push_str("\""); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `msg.push('"')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 16 [INFO] [stdout] --> src/tokenizer.rs:204:41 [INFO] [stdout] | [INFO] [stdout] 204 | while self.has(|ch| ch.is_digit(16)) && self.index - mark < max { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `ch.is_ascii_hexdigit()` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tokenizer.rs:214:51 [INFO] [stdout] | [INFO] [stdout] 214 | let val = u32::from_str_radix(&hex, 16).unwrap(); [INFO] [stdout] | ^^^^ help: change this to: `hex` [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: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/parser.rs:504:26 [INFO] [stdout] | [INFO] [stdout] 504 | let string = std::mem::replace(&mut self.string, String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.string)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: `#[warn(clippy::mem_replace_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/parser.rs:535:30 [INFO] [stdout] | [INFO] [stdout] 535 | let string = std::mem::replace(&mut self.string, String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.string)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let .. else` expression looks like `matches!` macro [INFO] [stdout] --> src/scope.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | / if let Var::Upvar(_) = self { [INFO] [stdout] 45 | | true [INFO] [stdout] 46 | | } else { [INFO] [stdout] 47 | | false [INFO] [stdout] 48 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 44 - if let Var::Upvar(_) = self { [INFO] [stdout] 45 - true [INFO] [stdout] 46 - } else { [INFO] [stdout] 47 - false [INFO] [stdout] 48 - } [INFO] [stdout] 44 + matches!(self, Var::Upvar(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> src/scope.rs:278:9 [INFO] [stdout] | [INFO] [stdout] 278 | / self.stack[self.current()] [INFO] [stdout] 279 | | .map [INFO] [stdout] 280 | | .keys() [INFO] [stdout] 281 | | .cloned() [INFO] [stdout] 282 | | .map(|x| Value::from(&x)) [INFO] [stdout] | |_____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_iter_cloned [INFO] [stdout] = note: `#[warn(clippy::redundant_iter_cloned)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 280 ~ .keys() [INFO] [stdout] 281 + .map(|x| Value::from(&x)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> src/scope.rs:304:9 [INFO] [stdout] | [INFO] [stdout] 304 | self.stack[0].map.keys().cloned().map(|x| Value::from(&x)).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | help: try: `.map(|x| Value::from(&x))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_iter_cloned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/scope.rs:309:9 [INFO] [stdout] | [INFO] [stdout] 309 | / match self.var(self.current(), name) { [INFO] [stdout] 310 | | Some(Var::Array(_)) => true, [INFO] [stdout] 311 | | _ => false, [INFO] [stdout] 312 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 309 - match self.var(self.current(), name) { [INFO] [stdout] 310 - Some(Var::Array(_)) => true, [INFO] [stdout] 311 - _ => false, [INFO] [stdout] 312 - } [INFO] [stdout] 309 + matches!(self.var(self.current(), name), Some(Var::Array(_))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> src/scope.rs:320:17 [INFO] [stdout] | [INFO] [stdout] 320 | map.keys().cloned().map(|x| Value::from(&x)).collect() [INFO] [stdout] | ^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | help: try: `.map(|x| Value::from(&x))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_iter_cloned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/scope.rs:364:17 [INFO] [stdout] | [INFO] [stdout] 364 | assert!(kvlist.len() % 2 == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `kvlist.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/scope.rs:373:36 [INFO] [stdout] | [INFO] [stdout] 373 | insert_kvlist(map, &kvlist); [INFO] [stdout] | ^^^^^^^ help: change this to: `kvlist` [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/scope.rs:380:41 [INFO] [stdout] | [INFO] [stdout] 380 | insert_kvlist(&mut map, &kvlist); [INFO] [stdout] | ^^^^^^^ help: change this to: `kvlist` [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 returns a `Result<_, ()>` [INFO] [stdout] --> src/test_harness.rs:61:1 [INFO] [stdout] | [INFO] [stdout] 61 | / pub fn test_harness( [INFO] [stdout] 62 | | interp: &mut Interp<(Ctx, TestCtx)>, [INFO] [stdout] 63 | | args: &[String], [INFO] [stdout] 64 | | ) -> Result<(), ()> { [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] = note: `#[warn(clippy::result_unit_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `TestCtx` [INFO] [stdout] --> src/test_harness.rs:124:5 [INFO] [stdout] | [INFO] [stdout] 124 | / pub fn new() -> Self { [INFO] [stdout] 125 | | Self { [INFO] [stdout] 126 | | num_tests: 0, [INFO] [stdout] 127 | | num_passed: 0, [INFO] [stdout] ... | [INFO] [stdout] 131 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 123 + impl Default for TestCtx { [INFO] [stdout] 124 + fn default() -> Self { [INFO] [stdout] 125 + Self::new() [INFO] [stdout] 126 + } [INFO] [stdout] 127 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/interp.rs:895:36 [INFO] [stdout] | [INFO] [stdout] 895 | if let Err(e) = result_value { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/interp.rs:918:24 [INFO] [stdout] | [INFO] [stdout] 918 | if let Err(e) = result_value { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/test_harness.rs:175:47 [INFO] [stdout] | [INFO] [stdout] 175 | println!("Expected {} <{}>", self.code.to_string(), self.expect); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/test_harness.rs:181:47 [INFO] [stdout] | [INFO] [stdout] 181 | println!("Expected {} <{}>", self.code.to_string(), self.expect); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.as_ref().map(|x| &**x)` on an `Option` value [INFO] [stdout] --> src/types.rs:761:9 [INFO] [stdout] | [INFO] [stdout] 761 | self.index.as_ref().map(|x| &**x) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using as_deref: `self.index.as_deref()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_as_ref_deref [INFO] [stdout] = note: `#[warn(clippy::option_as_ref_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/util.rs:113:22 [INFO] [stdout] | [INFO] [stdout] 113 | while p.has(|ch| ch.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `ch.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/util.rs:122:26 [INFO] [stdout] | [INFO] [stdout] 122 | while p.has(|ch| ch.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `ch.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/util.rs:137:26 [INFO] [stdout] | [INFO] [stdout] 137 | while p.has(|ch| ch.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `ch.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 expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/value.rs:654:12 [INFO] [stdout] | [INFO] [stdout] 654 | Ok((&*self.as_dict()?).to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `(*self.as_dict()?)` [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: stripping a prefix manually [INFO] [stdout] --> src/value.rs:726:37 [INFO] [stdout] | [INFO] [stdout] 726 | MoltInt::from_str_radix(&arg[2..], 16) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/value.rs:725:28 [INFO] [stdout] | [INFO] [stdout] 725 | let parse_result = if arg.starts_with("0x") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 725 ~ let parse_result = if let Some() = arg.strip_prefix("0x") { [INFO] [stdout] 726 ~ MoltInt::from_str_radix(, 16) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/value.rs:805:19 [INFO] [stdout] | [INFO] [stdout] 805 | if flt == std::f64::INFINITY { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 805 - if flt == std::f64::INFINITY { [INFO] [stdout] 805 + if flt == f64::INFINITY { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/value.rs:807:26 [INFO] [stdout] | [INFO] [stdout] 807 | } else if flt == std::f64::NEG_INFINITY { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 807 - } else if flt == std::f64::NEG_INFINITY { [INFO] [stdout] 807 + } else if flt == f64::NEG_INFINITY { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/value.rs:878:12 [INFO] [stdout] | [INFO] [stdout] 878 | Ok((&*self.as_list()?).to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `(*self.as_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: deref on an immutable reference [INFO] [stdout] --> src/value.rs:1174:67 [INFO] [stdout] | [INFO] [stdout] 1174 | DataRep::Dict(dict) => write!(f, "{}", dict_to_string(&*dict)), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 1174 - DataRep::Dict(dict) => write!(f, "{}", dict_to_string(&*dict)), [INFO] [stdout] 1174 + DataRep::Dict(dict) => write!(f, "{}", dict_to_string(dict)), [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 1174 | DataRep::Dict(dict) => write!(f, "{}", dict_to_string(&**dict)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/value.rs:1177:67 [INFO] [stdout] | [INFO] [stdout] 1177 | DataRep::List(list) => write!(f, "{}", list_to_string(&*list)), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 1177 - DataRep::List(list) => write!(f, "{}", list_to_string(&*list)), [INFO] [stdout] 1177 + DataRep::List(list) => write!(f, "{}", list_to_string(list)), [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 1177 | DataRep::List(list) => write!(f, "{}", list_to_string(&**list)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cmd_todo` is never used [INFO] [stdout] --> src/commands.rs:1168:8 [INFO] [stdout] | [INFO] [stdout] 1168 | pub fn cmd_todo(_interp: &mut Interp, _argv: &[Value]) -> MoltResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `slice` is never used [INFO] [stdout] --> src/util.rs:183:8 [INFO] [stdout] | [INFO] [stdout] 181 | pub(crate) trait StringUtils { [INFO] [stdout] | ----------- method in this trait [INFO] [stdout] 182 | fn substring(&self, start: usize, len: usize) -> &str; [INFO] [stdout] 183 | fn slice(&self, range: impl RangeBounds) -> &str; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `as_any`, `as_any_mut`, and `into_any` are never used [INFO] [stdout] --> src/value.rs:1103:8 [INFO] [stdout] | [INFO] [stdout] 1102 | trait MoltAny: Any + Display + Debug { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] 1103 | fn as_any(&self) -> &dyn Any; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 1104 | fn as_any_mut(&mut self) -> &mut dyn Any; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1105 | fn into_any(self: Box) -> Box; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Result.and_then(|x| Ok(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/commands.rs:65:34 [INFO] [stdout] | [INFO] [stdout] 65 | let mut new_string: String = interp [INFO] [stdout] | __________________________________^ [INFO] [stdout] 66 | | .var(&argv[1]) [INFO] [stdout] 67 | | .and_then(|val| Ok(val.to_string())) [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 65 ~ let mut new_string: String = interp [INFO] [stdout] 66 + .var(&argv[1]).map(|val| val.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/commands.rs:159:43 [INFO] [stdout] | [INFO] [stdout] 159 | interp.array_set(var_name.name(), &*argv[3].as_list()?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `&argv[3].as_list()?` [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: deref which would be done by auto-deref [INFO] [stdout] --> src/commands.rs:164:43 [INFO] [stdout] | [INFO] [stdout] 164 | interp.array_set(var_name.name(), &*Value::empty().as_list()?)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&Value::empty().as_list()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/commands.rs:316:8 [INFO] [stdout] | [INFO] [stdout] 316 | if argv.len() % 2 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `!argv.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/commands.rs:389:20 [INFO] [stdout] | [INFO] [stdout] 389 | let mut dict = (&*argv[2].as_dict()?).clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `(*argv[2].as_dict()?)` [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/commands.rs:558:32 [INFO] [stdout] | [INFO] [stdout] 558 | interp.set_var(&var, list[i].clone())?; [INFO] [stdout] | ^^^^ help: change this to: `var` [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/commands.rs:561:32 [INFO] [stdout] | [INFO] [stdout] 561 | interp.set_var(&var, Value::empty())?; [INFO] [stdout] | ^^^^ help: change this to: `var` [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: unneeded `return` statement [INFO] [stdout] --> src/commands.rs:682:9 [INFO] [stdout] | [INFO] [stdout] 682 | / return molt_err!( [INFO] [stdout] 683 | | "wrong # args: extra words after \"else\" clause in \"if\" command" [INFO] [stdout] 684 | | ); [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] 682 ~ molt_err!( [INFO] [stdout] 683 + "wrong # args: extra words after \"else\" clause in \"if\" command" [INFO] [stdout] 684 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/commands.rs:686:9 [INFO] [stdout] | [INFO] [stdout] 686 | / return molt_err!( [INFO] [stdout] 687 | | "wrong # args: no expression after \"{}\" argument", [INFO] [stdout] 688 | | argv[argi - 1] [INFO] [stdout] 689 | | ); [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] 686 ~ molt_err!( [INFO] [stdout] 687 + "wrong # args: no expression after \"{}\" argument", [INFO] [stdout] 688 + argv[argi - 1] [INFO] [stdout] 689 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/commands.rs:691:9 [INFO] [stdout] | [INFO] [stdout] 691 | / return molt_err!( [INFO] [stdout] 692 | | "wrong # args: no script following after \"{}\" argument", [INFO] [stdout] 693 | | argv[argi - 1] [INFO] [stdout] 694 | | ); [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] 691 ~ molt_err!( [INFO] [stdout] 692 + "wrong # args: no script following after \"{}\" argument", [INFO] [stdout] 693 + argv[argi - 1] [INFO] [stdout] 694 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Result::Err` [INFO] [stdout] --> src/commands.rs:710:11 [INFO] [stdout] | [INFO] [stdout] 710 | + interp [INFO] [stdout] | ___________^ [INFO] [stdout] 711 | | .var(&argv[1]) [INFO] [stdout] 712 | | .and_then(|val| Ok(val.as_int()?)) [INFO] [stdout] 713 | | .unwrap_or_else(|_| 0); [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `unwrap_or` instead [INFO] [stdout] | [INFO] [stdout] 713 - .unwrap_or_else(|_| 0); [INFO] [stdout] 713 + .unwrap_or(0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/commands.rs:712:29 [INFO] [stdout] | [INFO] [stdout] 712 | .and_then(|val| Ok(val.as_int()?)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 712 - .and_then(|val| Ok(val.as_int()?)) [INFO] [stdout] 712 + .and_then(|val| val.as_int()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/commands.rs:742:22 [INFO] [stdout] | [INFO] [stdout] 742 | interp.proc_args(&argv[2].as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `argv[2].as_str()` [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/commands.rs:748:22 [INFO] [stdout] | [INFO] [stdout] 748 | interp.proc_body(&argv[2].as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `argv[2].as_str()` [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/commands.rs:754:25 [INFO] [stdout] | [INFO] [stdout] 754 | interp.command_type(&argv[2].as_str()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `argv[2].as_str()` [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/commands.rs:766:44 [INFO] [stdout] | [INFO] [stdout] 766 | if let Some(val) = interp.proc_default(&argv[2].as_str(), &argv[3].as_str())? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `argv[2].as_str()` [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/commands.rs:766:63 [INFO] [stdout] | [INFO] [stdout] 766 | if let Some(val) = interp.proc_default(&argv[2].as_str(), &argv[3].as_str())? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `argv[3].as_str()` [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: called `expect` on `var_result` after checking its variant with `is_ok` [INFO] [stdout] --> src/commands.rs:841:9 [INFO] [stdout] | [INFO] [stdout] 840 | let mut list: MoltList = if var_result.is_ok() { [INFO] [stdout] | --------------------- help: try: `if let Ok() = var_result` [INFO] [stdout] 841 | var_result.expect("got value").to_list()? [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/commands.rs:860:31 [INFO] [stdout] | [INFO] [stdout] 860 | lindex_into(&argv[1], &*argv[2].as_list()?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `&argv[2].as_list()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/commands.rs:1018:33 [INFO] [stdout] | [INFO] [stdout] 1018 | let opt_args: &[Value] = if argv.len() % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `argv.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/commands.rs:1412:37 [INFO] [stdout] | [INFO] [stdout] 1412 | if haystack.starts_with(&from.as_str()) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `from.as_str()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/commands.rs:1507:9 [INFO] [stdout] | [INFO] [stdout] 1507 | / if result.is_err() { [INFO] [stdout] 1508 | | return result; [INFO] [stdout] 1509 | | } [INFO] [stdout] | |_________^ help: replace it with: `result.as_ref()?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/dict.rs:36:30 [INFO] [stdout] | [INFO] [stdout] 36 | molt_ok!(dict_insert(&*dict, &keys[0], &value)) [INFO] [stdout] | ^^^^^^ help: try: `&dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dict.rs:36:48 [INFO] [stdout] | [INFO] [stdout] 36 | molt_ok!(dict_insert(&*dict, &keys[0], &value)) [INFO] [stdout] | ^^^^^^ help: change this to: `value` [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: deref which would be done by auto-deref [INFO] [stdout] --> src/dict.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | &*dict, [INFO] [stdout] | ^^^^^^ help: try: `&dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/dict.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | &*dict, [INFO] [stdout] | ^^^^^^ help: try: `&dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/dict.rs:69:30 [INFO] [stdout] | [INFO] [stdout] 69 | molt_ok!(dict_remove(&*dict, &keys[0])) [INFO] [stdout] | ^^^^^^ help: try: `&dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/dict.rs:71:30 [INFO] [stdout] | [INFO] [stdout] 71 | molt_ok!(dict_insert(&*dict, &keys[0], &dict_path_remove(dval, &keys[1..])?)) [INFO] [stdout] | ^^^^^^ help: try: `&dict` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/dict.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | assert!(list.len() % 2 == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `list.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/expr.rs:264:19 [INFO] [stdout] | [INFO] [stdout] 264 | fn expr_top_level<'a, Ctx: 'static>( [INFO] [stdout] | ^^ [INFO] [stdout] 265 | interp: &mut Interp, [INFO] [stdout] 266 | string: &'a str, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 264 ~ fn expr_top_level( [INFO] [stdout] 265 | interp: &mut Interp, [INFO] [stdout] 266 ~ string: &str, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/expr.rs:299:19 [INFO] [stdout] | [INFO] [stdout] 299 | fn expr_get_value<'a, Ctx: 'static>( [INFO] [stdout] | ^^ [INFO] [stdout] 300 | interp: &mut Interp, [INFO] [stdout] 301 | info: &'a mut ExprInfo, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 299 ~ fn expr_get_value( [INFO] [stdout] 300 | interp: &mut Interp, [INFO] [stdout] 301 ~ info: &mut ExprInfo, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!Range::contains` implementation [INFO] [stdout] --> src/expr.rs:408:12 [INFO] [stdout] | [INFO] [stdout] 408 | if operator < MULT || operator >= UNARY_MINUS { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(MULT..UNARY_MINUS).contains(&operator)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/expr.rs:1040:13 [INFO] [stdout] | [INFO] [stdout] 1040 | / if p.has(|c| c.is_alphabetic()) { [INFO] [stdout] 1041 | | let mut str = String::new(); [INFO] [stdout] 1042 | | while p.has(|c| c.is_alphabetic() || c.is_digit(10)) { [INFO] [stdout] 1043 | | str.push(p.next().unwrap()); [INFO] [stdout] ... | [INFO] [stdout] 1088 | | Ok(Datum::none()) [INFO] [stdout] 1089 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1039 ~ Some(_) [INFO] [stdout] 1040 ~ if p.has(|c| c.is_alphabetic()) => { [INFO] [stdout] 1041 | let mut str = String::new(); [INFO] [stdout] ... [INFO] [stdout] 1083 | } [INFO] [stdout] 1084 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/expr.rs:1042:54 [INFO] [stdout] | [INFO] [stdout] 1042 | while p.has(|c| c.is_alphabetic() || c.is_digit(10)) { [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: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/expr.rs:1359:20 [INFO] [stdout] | [INFO] [stdout] 1359 | if !p.has(|ch| ch.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `ch.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/expr.rs:1364:22 [INFO] [stdout] | [INFO] [stdout] 1364 | while p.has(|ch| ch.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `ch.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: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/interp.rs:634:5 [INFO] [stdout] | [INFO] [stdout] 634 | / pub fn default() -> Self { [INFO] [stdout] 635 | | use crate::prelude::*; [INFO] [stdout] 636 | | let command = gen_command!( [INFO] [stdout] 637 | | (), [INFO] [stdout] ... | [INFO] [stdout] 654 | | Interp::new((), command, true, "default-app") [INFO] [stdout] 655 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/interp.rs:1770:12 [INFO] [stdout] | [INFO] [stdout] 1770 | if kvlist.len() % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `kvlist.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's keys [INFO] [stdout] --> src/interp.rs:2000:13 [INFO] [stdout] | [INFO] [stdout] 2000 | self.procs.iter().map(|(name, _)| Value::from(name)).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.procs.keys().map(|name| Value::from(name))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/interp.rs:2287:9 [INFO] [stdout] | [INFO] [stdout] 2287 | msg.push_str("\""); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `msg.push('"')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 16 [INFO] [stdout] --> src/tokenizer.rs:204:41 [INFO] [stdout] | [INFO] [stdout] 204 | while self.has(|ch| ch.is_digit(16)) && self.index - mark < max { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `ch.is_ascii_hexdigit()` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tokenizer.rs:214:51 [INFO] [stdout] | [INFO] [stdout] 214 | let val = u32::from_str_radix(&hex, 16).unwrap(); [INFO] [stdout] | ^^^^ help: change this to: `hex` [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: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/parser.rs:504:26 [INFO] [stdout] | [INFO] [stdout] 504 | let string = std::mem::replace(&mut self.string, String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.string)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: `#[warn(clippy::mem_replace_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/parser.rs:535:30 [INFO] [stdout] | [INFO] [stdout] 535 | let string = std::mem::replace(&mut self.string, String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.string)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let .. else` expression looks like `matches!` macro [INFO] [stdout] --> src/scope.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | / if let Var::Upvar(_) = self { [INFO] [stdout] 45 | | true [INFO] [stdout] 46 | | } else { [INFO] [stdout] 47 | | false [INFO] [stdout] 48 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 44 - if let Var::Upvar(_) = self { [INFO] [stdout] 45 - true [INFO] [stdout] 46 - } else { [INFO] [stdout] 47 - false [INFO] [stdout] 48 - } [INFO] [stdout] 44 + matches!(self, Var::Upvar(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> src/scope.rs:278:9 [INFO] [stdout] | [INFO] [stdout] 278 | / self.stack[self.current()] [INFO] [stdout] 279 | | .map [INFO] [stdout] 280 | | .keys() [INFO] [stdout] 281 | | .cloned() [INFO] [stdout] 282 | | .map(|x| Value::from(&x)) [INFO] [stdout] | |_____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_iter_cloned [INFO] [stdout] = note: `#[warn(clippy::redundant_iter_cloned)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 280 ~ .keys() [INFO] [stdout] 281 + .map(|x| Value::from(&x)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> src/scope.rs:304:9 [INFO] [stdout] | [INFO] [stdout] 304 | self.stack[0].map.keys().cloned().map(|x| Value::from(&x)).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | help: try: `.map(|x| Value::from(&x))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_iter_cloned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/scope.rs:309:9 [INFO] [stdout] | [INFO] [stdout] 309 | / match self.var(self.current(), name) { [INFO] [stdout] 310 | | Some(Var::Array(_)) => true, [INFO] [stdout] 311 | | _ => false, [INFO] [stdout] 312 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 309 - match self.var(self.current(), name) { [INFO] [stdout] 310 - Some(Var::Array(_)) => true, [INFO] [stdout] 311 - _ => false, [INFO] [stdout] 312 - } [INFO] [stdout] 309 + matches!(self.var(self.current(), name), Some(Var::Array(_))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> src/scope.rs:320:17 [INFO] [stdout] | [INFO] [stdout] 320 | map.keys().cloned().map(|x| Value::from(&x)).collect() [INFO] [stdout] | ^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | help: try: `.map(|x| Value::from(&x))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_iter_cloned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/scope.rs:364:17 [INFO] [stdout] | [INFO] [stdout] 364 | assert!(kvlist.len() % 2 == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `kvlist.len().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/scope.rs:373:36 [INFO] [stdout] | [INFO] [stdout] 373 | insert_kvlist(map, &kvlist); [INFO] [stdout] | ^^^^^^^ help: change this to: `kvlist` [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/scope.rs:380:41 [INFO] [stdout] | [INFO] [stdout] 380 | insert_kvlist(&mut map, &kvlist); [INFO] [stdout] | ^^^^^^^ help: change this to: `kvlist` [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 returns a `Result<_, ()>` [INFO] [stdout] --> src/test_harness.rs:61:1 [INFO] [stdout] | [INFO] [stdout] 61 | / pub fn test_harness( [INFO] [stdout] 62 | | interp: &mut Interp<(Ctx, TestCtx)>, [INFO] [stdout] 63 | | args: &[String], [INFO] [stdout] 64 | | ) -> Result<(), ()> { [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] = note: `#[warn(clippy::result_unit_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `TestCtx` [INFO] [stdout] --> src/test_harness.rs:124:5 [INFO] [stdout] | [INFO] [stdout] 124 | / pub fn new() -> Self { [INFO] [stdout] 125 | | Self { [INFO] [stdout] 126 | | num_tests: 0, [INFO] [stdout] 127 | | num_passed: 0, [INFO] [stdout] ... | [INFO] [stdout] 131 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 123 + impl Default for TestCtx { [INFO] [stdout] 124 + fn default() -> Self { [INFO] [stdout] 125 + Self::new() [INFO] [stdout] 126 + } [INFO] [stdout] 127 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/test_harness.rs:175:47 [INFO] [stdout] | [INFO] [stdout] 175 | println!("Expected {} <{}>", self.code.to_string(), self.expect); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/test_harness.rs:181:47 [INFO] [stdout] | [INFO] [stdout] 181 | println!("Expected {} <{}>", self.code.to_string(), self.expect); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.as_ref().map(|x| &**x)` on an `Option` value [INFO] [stdout] --> src/types.rs:761:9 [INFO] [stdout] | [INFO] [stdout] 761 | self.index.as_ref().map(|x| &**x) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using as_deref: `self.index.as_deref()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_as_ref_deref [INFO] [stdout] = note: `#[warn(clippy::option_as_ref_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/types.rs:929:17 [INFO] [stdout] | [INFO] [stdout] 929 | assert!(!exception.error_data().is_some()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `exception.error_data().is_none()` [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/types.rs:941:17 [INFO] [stdout] | [INFO] [stdout] 941 | assert!(!exception.error_data().is_some()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `exception.error_data().is_none()` [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/types.rs:951:17 [INFO] [stdout] | [INFO] [stdout] 951 | assert!(!exception.error_data().is_some()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `exception.error_data().is_none()` [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/types.rs:961:17 [INFO] [stdout] | [INFO] [stdout] 961 | assert!(!exception.error_data().is_some()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `exception.error_data().is_none()` [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: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/util.rs:113:22 [INFO] [stdout] | [INFO] [stdout] 113 | while p.has(|ch| ch.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `ch.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/util.rs:122:26 [INFO] [stdout] | [INFO] [stdout] 122 | while p.has(|ch| ch.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `ch.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/util.rs:137:26 [INFO] [stdout] | [INFO] [stdout] 137 | while p.has(|ch| ch.is_digit(10)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `ch.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 expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/value.rs:654:12 [INFO] [stdout] | [INFO] [stdout] 654 | Ok((&*self.as_dict()?).to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `(*self.as_dict()?)` [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: stripping a prefix manually [INFO] [stdout] --> src/value.rs:726:37 [INFO] [stdout] | [INFO] [stdout] 726 | MoltInt::from_str_radix(&arg[2..], 16) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/value.rs:725:28 [INFO] [stdout] | [INFO] [stdout] 725 | let parse_result = if arg.starts_with("0x") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 725 ~ let parse_result = if let Some() = arg.strip_prefix("0x") { [INFO] [stdout] 726 ~ MoltInt::from_str_radix(, 16) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/value.rs:805:19 [INFO] [stdout] | [INFO] [stdout] 805 | if flt == std::f64::INFINITY { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 805 - if flt == std::f64::INFINITY { [INFO] [stdout] 805 + if flt == f64::INFINITY { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/value.rs:807:26 [INFO] [stdout] | [INFO] [stdout] 807 | } else if flt == std::f64::NEG_INFINITY { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 807 - } else if flt == std::f64::NEG_INFINITY { [INFO] [stdout] 807 + } else if flt == f64::NEG_INFINITY { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/value.rs:878:12 [INFO] [stdout] | [INFO] [stdout] 878 | Ok((&*self.as_list()?).to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `(*self.as_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: deref on an immutable reference [INFO] [stdout] --> src/value.rs:1174:67 [INFO] [stdout] | [INFO] [stdout] 1174 | DataRep::Dict(dict) => write!(f, "{}", dict_to_string(&*dict)), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 1174 - DataRep::Dict(dict) => write!(f, "{}", dict_to_string(&*dict)), [INFO] [stdout] 1174 + DataRep::Dict(dict) => write!(f, "{}", dict_to_string(dict)), [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 1174 | DataRep::Dict(dict) => write!(f, "{}", dict_to_string(&**dict)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/value.rs:1177:67 [INFO] [stdout] | [INFO] [stdout] 1177 | DataRep::List(list) => write!(f, "{}", list_to_string(&*list)), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 1177 - DataRep::List(list) => write!(f, "{}", list_to_string(&*list)), [INFO] [stdout] 1177 + DataRep::List(list) => write!(f, "{}", list_to_string(list)), [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 1177 | DataRep::List(list) => write!(f, "{}", list_to_string(&**list)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/value.rs:1414:48 [INFO] [stdout] | [INFO] [stdout] 1414 | assert_eq!(Value::get_float("Inf"), Ok(std::f64::INFINITY)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 1414 - assert_eq!(Value::get_float("Inf"), Ok(std::f64::INFINITY)); [INFO] [stdout] 1414 + assert_eq!(Value::get_float("Inf"), Ok(f64::INFINITY)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SALTY` contains a capitalized acronym [INFO] [stdout] --> src/value.rs:1536:9 [INFO] [stdout] | [INFO] [stdout] 1536 | SALTY, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Salty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SWEET` contains a capitalized acronym [INFO] [stdout] --> src/value.rs:1537:9 [INFO] [stdout] | [INFO] [stdout] 1537 | SWEET, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Sweet` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.17s [INFO] running `Command { std: "docker" "inspect" "e6997b304e0caa1b5b8b77bf7c9c32d61696811bcfd6b727b2bb4aa910c3cd3f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e6997b304e0caa1b5b8b77bf7c9c32d61696811bcfd6b727b2bb4aa910c3cd3f", kill_on_drop: false }` [INFO] [stdout] e6997b304e0caa1b5b8b77bf7c9c32d61696811bcfd6b727b2bb4aa910c3cd3f