[INFO] fetching crate molt 0.3.1... [INFO] linting molt-0.3.1 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate molt 0.3.1 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate molt 0.3.1 [INFO] finished tweaking crates.io crate molt 0.3.1 [INFO] tweaked toml for crates.io crate molt 0.3.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate molt 0.3.1 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 3 packages to latest compatible versions [INFO] [stderr] Adding indexmap v1.9.3 (available: v2.13.0) [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-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] cd9719ec1b331e7bcf11d188a91ce9875030b953f46059e594892c2608da072f [INFO] running `Command { std: "docker" "start" "-a" "cd9719ec1b331e7bcf11d188a91ce9875030b953f46059e594892c2608da072f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "cd9719ec1b331e7bcf11d188a91ce9875030b953f46059e594892c2608da072f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cd9719ec1b331e7bcf11d188a91ce9875030b953f46059e594892c2608da072f", kill_on_drop: false }` [INFO] [stdout] cd9719ec1b331e7bcf11d188a91ce9875030b953f46059e594892c2608da072f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] eb04b9d7a190222260b2769940dd37b491bdf5ff560220d8bc5176d8cf35e8f8 [INFO] running `Command { std: "docker" "start" "-a" "eb04b9d7a190222260b2769940dd37b491bdf5ff560220d8bc5176d8cf35e8f8", kill_on_drop: false }` [INFO] [stderr] Checking molt v0.3.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/commands.rs:373:1 [INFO] [stdout] | [INFO] [stdout] 373 | / /// See the Molt Book. [INFO] [stdout] 374 | | [INFO] [stdout] | |_^ [INFO] [stdout] 375 | pub fn cmd_expr(interp: &mut Interp, _: ContextID, 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:815:1 [INFO] [stdout] | [INFO] [stdout] 815 | / /// Datum contains it. [INFO] [stdout] 816 | | [INFO] [stdout] | |_^ [INFO] [stdout] 817 | 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:639:5 [INFO] [stdout] | [INFO] [stdout] 639 | / /// ``` [INFO] [stdout] 640 | | [INFO] [stdout] | |_^ [INFO] [stdout] 641 | pub fn empty() -> Self { [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:788:5 [INFO] [stdout] | [INFO] [stdout] 788 | / /// ``` [INFO] [stdout] 789 | | [INFO] [stdout] | |_^ [INFO] [stdout] 790 | pub fn eval(&mut self, script: &str) -> 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] = 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:1033:5 [INFO] [stdout] | [INFO] [stdout] 1033 | / /// ``` [INFO] [stdout] 1034 | | [INFO] [stdout] | |_^ [INFO] [stdout] 1035 | pub fn complete(&mut self, script: &str) -> bool { [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:1590:5 [INFO] [stdout] | [INFO] [stdout] 1590 | / /// These provide the infrastructure for the `array` command. [INFO] [stdout] 1591 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 1594 | 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] 1591 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::molt_ok` [INFO] [stdout] --> src/test_harness.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | use crate::molt_ok; [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:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | pub mod test_harness; [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:67:1 [INFO] [stdout] | [INFO] [stdout] 67 | / /// ``` [INFO] [stdout] 68 | | [INFO] [stdout] | |_^ [INFO] [stdout] 69 | pub fn test_harness(interp: &mut Interp, args: &[String]) -> Result<(), ()> { [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:950:23 [INFO] [stdout] | [INFO] [stdout] 950 | pub fn from_other(value: T) -> Value [INFO] [stdout] | ^ [INFO] [stdout] 951 | where [INFO] [stdout] 952 | 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:993:21 [INFO] [stdout] | [INFO] [stdout] 993 | pub fn as_other(&self) -> Option> [INFO] [stdout] | ^ [INFO] [stdout] 994 | where [INFO] [stdout] 995 | 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:1052:20 [INFO] [stdout] | [INFO] [stdout] 1052 | pub fn as_copy(&self) -> Option [INFO] [stdout] | ^ [INFO] [stdout] 1053 | where [INFO] [stdout] 1054 | 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:373:1 [INFO] [stdout] | [INFO] [stdout] 373 | / /// See the Molt Book. [INFO] [stdout] 374 | | [INFO] [stdout] | |_^ [INFO] [stdout] 375 | pub fn cmd_expr(interp: &mut Interp, _: ContextID, 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:815:1 [INFO] [stdout] | [INFO] [stdout] 815 | / /// Datum contains it. [INFO] [stdout] 816 | | [INFO] [stdout] | |_^ [INFO] [stdout] 817 | 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:639:5 [INFO] [stdout] | [INFO] [stdout] 639 | / /// ``` [INFO] [stdout] 640 | | [INFO] [stdout] | |_^ [INFO] [stdout] 641 | pub fn empty() -> Self { [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:788:5 [INFO] [stdout] | [INFO] [stdout] 788 | / /// ``` [INFO] [stdout] 789 | | [INFO] [stdout] | |_^ [INFO] [stdout] 790 | pub fn eval(&mut self, script: &str) -> 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] = 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:1033:5 [INFO] [stdout] | [INFO] [stdout] 1033 | / /// ``` [INFO] [stdout] 1034 | | [INFO] [stdout] | |_^ [INFO] [stdout] 1035 | pub fn complete(&mut self, script: &str) -> bool { [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:1590:5 [INFO] [stdout] | [INFO] [stdout] 1590 | / /// These provide the infrastructure for the `array` command. [INFO] [stdout] 1591 | | [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 1594 | 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] 1591 | /// [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::molt_ok` [INFO] [stdout] --> src/test_harness.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | use crate::molt_ok; [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:67:1 [INFO] [stdout] | [INFO] [stdout] 67 | / /// ``` [INFO] [stdout] 68 | | [INFO] [stdout] | |_^ [INFO] [stdout] 69 | pub fn test_harness(interp: &mut Interp, args: &[String]) -> Result<(), ()> { [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:950:23 [INFO] [stdout] | [INFO] [stdout] 950 | pub fn from_other(value: T) -> Value [INFO] [stdout] | ^ [INFO] [stdout] 951 | where [INFO] [stdout] 952 | 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:993:21 [INFO] [stdout] | [INFO] [stdout] 993 | pub fn as_other(&self) -> Option> [INFO] [stdout] | ^ [INFO] [stdout] 994 | where [INFO] [stdout] 995 | 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:1052:20 [INFO] [stdout] | [INFO] [stdout] 1052 | pub fn as_copy(&self) -> Option [INFO] [stdout] | ^ [INFO] [stdout] 1053 | where [INFO] [stdout] 1054 | 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: method `slice` is never used [INFO] [stdout] --> src/util.rs:179:8 [INFO] [stdout] | [INFO] [stdout] 177 | pub(crate) trait StringUtils { [INFO] [stdout] | ----------- method in this trait [INFO] [stdout] 178 | fn substring(&self, start: usize, len: usize) -> &str; [INFO] [stdout] 179 | fn slice(&self, range: impl RangeBounds) -> &str; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `as_any`, `as_any_mut`, and `into_any` are never used [INFO] [stdout] --> src/value.rs:1097:8 [INFO] [stdout] | [INFO] [stdout] 1096 | trait MoltAny: Any + Display + Debug { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] 1097 | fn as_any(&self) -> &dyn Any; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 1098 | fn as_any_mut(&mut self) -> &mut dyn Any; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1099 | 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:25:34 [INFO] [stdout] | [INFO] [stdout] 25 | let mut new_string: String = interp [INFO] [stdout] | __________________________________^ [INFO] [stdout] 26 | | .var(&argv[1]) [INFO] [stdout] 27 | | .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] 25 ~ let mut new_string: String = interp [INFO] [stdout] 26 + .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:83:43 [INFO] [stdout] | [INFO] [stdout] 83 | 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:88:43 [INFO] [stdout] | [INFO] [stdout] 88 | 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:205:8 [INFO] [stdout] | [INFO] [stdout] 205 | 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:278:20 [INFO] [stdout] | [INFO] [stdout] 278 | 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:446:32 [INFO] [stdout] | [INFO] [stdout] 446 | 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:449:32 [INFO] [stdout] | [INFO] [stdout] 449 | 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:570:9 [INFO] [stdout] | [INFO] [stdout] 570 | return molt_err!("wrong # args: extra words after \"else\" clause in \"if\" command"); [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] 570 - return molt_err!("wrong # args: extra words after \"else\" clause in \"if\" command"); [INFO] [stdout] 570 + molt_err!("wrong # args: extra words after \"else\" clause in \"if\" command") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/commands.rs:572:9 [INFO] [stdout] | [INFO] [stdout] 572 | / return molt_err!( [INFO] [stdout] 573 | | "wrong # args: no expression after \"{}\" argument", [INFO] [stdout] 574 | | argv[argi - 1] [INFO] [stdout] 575 | | ); [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] 572 ~ molt_err!( [INFO] [stdout] 573 + "wrong # args: no expression after \"{}\" argument", [INFO] [stdout] 574 + argv[argi - 1] [INFO] [stdout] 575 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/commands.rs:577:9 [INFO] [stdout] | [INFO] [stdout] 577 | / return molt_err!( [INFO] [stdout] 578 | | "wrong # args: no script following after \"{}\" argument", [INFO] [stdout] 579 | | argv[argi - 1] [INFO] [stdout] 580 | | ); [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] 577 ~ molt_err!( [INFO] [stdout] 578 + "wrong # args: no script following after \"{}\" argument", [INFO] [stdout] 579 + argv[argi - 1] [INFO] [stdout] 580 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Result::Err` [INFO] [stdout] --> src/commands.rs:600:11 [INFO] [stdout] | [INFO] [stdout] 600 | + interp [INFO] [stdout] | ___________^ [INFO] [stdout] 601 | | .var(&argv[1]) [INFO] [stdout] 602 | | .and_then(|val| Ok(val.as_int()?)) [INFO] [stdout] 603 | | .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] 603 - .unwrap_or_else(|_| 0); [INFO] [stdout] 603 + .unwrap_or(0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/commands.rs:602:29 [INFO] [stdout] | [INFO] [stdout] 602 | .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] 602 - .and_then(|val| Ok(val.as_int()?)) [INFO] [stdout] 602 + .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:630:22 [INFO] [stdout] | [INFO] [stdout] 630 | 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:636:22 [INFO] [stdout] | [INFO] [stdout] 636 | 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:642:25 [INFO] [stdout] | [INFO] [stdout] 642 | 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:654:44 [INFO] [stdout] | [INFO] [stdout] 654 | 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:654:63 [INFO] [stdout] | [INFO] [stdout] 654 | 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:733:9 [INFO] [stdout] | [INFO] [stdout] 732 | let mut list: MoltList = if var_result.is_ok() { [INFO] [stdout] | --------------------- help: try: `if let Ok() = var_result` [INFO] [stdout] 733 | 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:752:31 [INFO] [stdout] | [INFO] [stdout] 752 | 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:909:33 [INFO] [stdout] | [INFO] [stdout] 909 | 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: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/commands.rs:1160:9 [INFO] [stdout] | [INFO] [stdout] 1160 | / if result.is_err() { [INFO] [stdout] 1161 | | return result; [INFO] [stdout] 1162 | | } [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:33:30 [INFO] [stdout] | [INFO] [stdout] 33 | 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:33:48 [INFO] [stdout] | [INFO] [stdout] 33 | 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:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | &*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:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | &*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:66:30 [INFO] [stdout] | [INFO] [stdout] 66 | 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:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | &*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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/dict.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | 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>(interp: &mut Interp, string: &'a str) -> DatumResult { [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<'a>(interp: &mut Interp, string: &'a str) -> DatumResult { [INFO] [stdout] 264 + fn expr_top_level(interp: &mut Interp, string: &str) -> DatumResult { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/expr.rs:296:19 [INFO] [stdout] | [INFO] [stdout] 296 | fn expr_get_value<'a>(interp: &mut Interp, info: &'a mut ExprInfo, prec: i32) -> DatumResult { [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] 296 - fn expr_get_value<'a>(interp: &mut Interp, info: &'a mut ExprInfo, prec: i32) -> DatumResult { [INFO] [stdout] 296 + fn expr_get_value(interp: &mut Interp, info: &mut ExprInfo, prec: i32) -> DatumResult { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!Range::contains` implementation [INFO] [stdout] --> src/expr.rs:401:12 [INFO] [stdout] | [INFO] [stdout] 401 | 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:1041:13 [INFO] [stdout] | [INFO] [stdout] 1041 | / if p.has(|c| c.is_alphabetic()) { [INFO] [stdout] 1042 | | let mut str = String::new(); [INFO] [stdout] 1043 | | while p.has(|c| c.is_alphabetic() || c.is_digit(10)) { [INFO] [stdout] 1044 | | str.push(p.next().unwrap()); [INFO] [stdout] ... | [INFO] [stdout] 1089 | | Ok(Datum::none()) [INFO] [stdout] 1090 | | } [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] 1040 ~ Some(_) [INFO] [stdout] 1041 ~ if p.has(|c| c.is_alphabetic()) => { [INFO] [stdout] 1042 | let mut str = String::new(); [INFO] [stdout] ... [INFO] [stdout] 1084 | } [INFO] [stdout] 1085 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/expr.rs:1043:54 [INFO] [stdout] | [INFO] [stdout] 1043 | 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:1350:20 [INFO] [stdout] | [INFO] [stdout] 1350 | 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:1355:22 [INFO] [stdout] | [INFO] [stdout] 1355 | 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: `if let .. else` expression looks like `matches!` macro [INFO] [stdout] --> src/interp.rs:554:9 [INFO] [stdout] | [INFO] [stdout] 554 | / if let Command::Proc(_) = self { [INFO] [stdout] 555 | | true [INFO] [stdout] 556 | | } else { [INFO] [stdout] 557 | | false [INFO] [stdout] 558 | | } [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] 554 - if let Command::Proc(_) = self { [INFO] [stdout] 555 - true [INFO] [stdout] 556 - } else { [INFO] [stdout] 557 - false [INFO] [stdout] 558 - } [INFO] [stdout] 554 + matches!(self, Command::Proc(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/interp.rs:1667:12 [INFO] [stdout] | [INFO] [stdout] 1667 | 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: unneeded cloning of iterator items [INFO] [stdout] --> src/interp.rs:1859:29 [INFO] [stdout] | [INFO] [stdout] 1859 | let vec: MoltList = self [INFO] [stdout] | _____________________________^ [INFO] [stdout] 1860 | | .commands [INFO] [stdout] 1861 | | .keys() [INFO] [stdout] 1862 | | .cloned() [INFO] [stdout] 1863 | | .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] 1861 ~ .keys() [INFO] [stdout] 1862 + .map(|x| Value::from(&x)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/interp.rs:2291:9 [INFO] [stdout] | [INFO] [stdout] 2291 | 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:208:41 [INFO] [stdout] | [INFO] [stdout] 208 | 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:218:51 [INFO] [stdout] | [INFO] [stdout] 218 | 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:509:26 [INFO] [stdout] | [INFO] [stdout] 509 | 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:540:30 [INFO] [stdout] | [INFO] [stdout] 540 | 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] 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:273:9 [INFO] [stdout] | [INFO] [stdout] 273 | / self.stack[self.current()] [INFO] [stdout] 274 | | .map [INFO] [stdout] 275 | | .keys() [INFO] [stdout] 276 | | .cloned() [INFO] [stdout] 277 | | .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] help: try [INFO] [stdout] | [INFO] [stdout] 275 ~ .keys() [INFO] [stdout] 276 + .map(|x| Value::from(&x)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> src/scope.rs:299:9 [INFO] [stdout] | [INFO] [stdout] 299 | / self.stack[0] [INFO] [stdout] 300 | | .map [INFO] [stdout] 301 | | .keys() [INFO] [stdout] 302 | | .cloned() [INFO] [stdout] 303 | | .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] help: try [INFO] [stdout] | [INFO] [stdout] 301 ~ .keys() [INFO] [stdout] 302 + .map(|x| Value::from(&x)) [INFO] [stdout] | [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:319:38 [INFO] [stdout] | [INFO] [stdout] 319 | Some(Var::Array(map)) => 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:362:17 [INFO] [stdout] | [INFO] [stdout] 362 | 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:369:36 [INFO] [stdout] | [INFO] [stdout] 369 | 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:376:41 [INFO] [stdout] | [INFO] [stdout] 376 | 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:69:1 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn test_harness(interp: &mut Interp, args: &[String]) -> 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: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/test_harness.rs:183:47 [INFO] [stdout] | [INFO] [stdout] 183 | 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:189:47 [INFO] [stdout] | [INFO] [stdout] 189 | 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:825:9 [INFO] [stdout] | [INFO] [stdout] 825 | 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:648:12 [INFO] [stdout] | [INFO] [stdout] 648 | 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:720:37 [INFO] [stdout] | [INFO] [stdout] 720 | MoltInt::from_str_radix(&arg[2..], 16) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/value.rs:719:28 [INFO] [stdout] | [INFO] [stdout] 719 | 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] 719 ~ let parse_result = if let Some() = arg.strip_prefix("0x") { [INFO] [stdout] 720 ~ 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:799:19 [INFO] [stdout] | [INFO] [stdout] 799 | 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] 799 - if flt == std::f64::INFINITY { [INFO] [stdout] 799 + if flt == f64::INFINITY { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/value.rs:801:26 [INFO] [stdout] | [INFO] [stdout] 801 | } 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] 801 - } else if flt == std::f64::NEG_INFINITY { [INFO] [stdout] 801 + } 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:872:12 [INFO] [stdout] | [INFO] [stdout] 872 | 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:1168:67 [INFO] [stdout] | [INFO] [stdout] 1168 | 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] 1168 - DataRep::Dict(dict) => write!(f, "{}", dict_to_string(&*dict)), [INFO] [stdout] 1168 + 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] 1168 | 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:1171:67 [INFO] [stdout] | [INFO] [stdout] 1171 | 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] 1171 - DataRep::List(list) => write!(f, "{}", list_to_string(&*list)), [INFO] [stdout] 1171 + 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] 1171 | DataRep::List(list) => write!(f, "{}", list_to_string(&**list)), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `slice` is never used [INFO] [stdout] --> src/util.rs:179:8 [INFO] [stdout] | [INFO] [stdout] 177 | pub(crate) trait StringUtils { [INFO] [stdout] | ----------- method in this trait [INFO] [stdout] 178 | fn substring(&self, start: usize, len: usize) -> &str; [INFO] [stdout] 179 | fn slice(&self, range: impl RangeBounds) -> &str; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `as_any`, `as_any_mut`, and `into_any` are never used [INFO] [stdout] --> src/value.rs:1097:8 [INFO] [stdout] | [INFO] [stdout] 1096 | trait MoltAny: Any + Display + Debug { [INFO] [stdout] | ------- methods in this trait [INFO] [stdout] 1097 | fn as_any(&self) -> &dyn Any; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 1098 | fn as_any_mut(&mut self) -> &mut dyn Any; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 1099 | 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:25:34 [INFO] [stdout] | [INFO] [stdout] 25 | let mut new_string: String = interp [INFO] [stdout] | __________________________________^ [INFO] [stdout] 26 | | .var(&argv[1]) [INFO] [stdout] 27 | | .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] 25 ~ let mut new_string: String = interp [INFO] [stdout] 26 + .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:83:43 [INFO] [stdout] | [INFO] [stdout] 83 | 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:88:43 [INFO] [stdout] | [INFO] [stdout] 88 | 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:205:8 [INFO] [stdout] | [INFO] [stdout] 205 | 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:278:20 [INFO] [stdout] | [INFO] [stdout] 278 | 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:446:32 [INFO] [stdout] | [INFO] [stdout] 446 | 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:449:32 [INFO] [stdout] | [INFO] [stdout] 449 | 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:570:9 [INFO] [stdout] | [INFO] [stdout] 570 | return molt_err!("wrong # args: extra words after \"else\" clause in \"if\" command"); [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] 570 - return molt_err!("wrong # args: extra words after \"else\" clause in \"if\" command"); [INFO] [stdout] 570 + molt_err!("wrong # args: extra words after \"else\" clause in \"if\" command") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/commands.rs:572:9 [INFO] [stdout] | [INFO] [stdout] 572 | / return molt_err!( [INFO] [stdout] 573 | | "wrong # args: no expression after \"{}\" argument", [INFO] [stdout] 574 | | argv[argi - 1] [INFO] [stdout] 575 | | ); [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] 572 ~ molt_err!( [INFO] [stdout] 573 + "wrong # args: no expression after \"{}\" argument", [INFO] [stdout] 574 + argv[argi - 1] [INFO] [stdout] 575 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/commands.rs:577:9 [INFO] [stdout] | [INFO] [stdout] 577 | / return molt_err!( [INFO] [stdout] 578 | | "wrong # args: no script following after \"{}\" argument", [INFO] [stdout] 579 | | argv[argi - 1] [INFO] [stdout] 580 | | ); [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] 577 ~ molt_err!( [INFO] [stdout] 578 + "wrong # args: no script following after \"{}\" argument", [INFO] [stdout] 579 + argv[argi - 1] [INFO] [stdout] 580 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Result::Err` [INFO] [stdout] --> src/commands.rs:600:11 [INFO] [stdout] | [INFO] [stdout] 600 | + interp [INFO] [stdout] | ___________^ [INFO] [stdout] 601 | | .var(&argv[1]) [INFO] [stdout] 602 | | .and_then(|val| Ok(val.as_int()?)) [INFO] [stdout] 603 | | .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] 603 - .unwrap_or_else(|_| 0); [INFO] [stdout] 603 + .unwrap_or(0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/commands.rs:602:29 [INFO] [stdout] | [INFO] [stdout] 602 | .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] 602 - .and_then(|val| Ok(val.as_int()?)) [INFO] [stdout] 602 + .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:630:22 [INFO] [stdout] | [INFO] [stdout] 630 | 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:636:22 [INFO] [stdout] | [INFO] [stdout] 636 | 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:642:25 [INFO] [stdout] | [INFO] [stdout] 642 | 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:654:44 [INFO] [stdout] | [INFO] [stdout] 654 | 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:654:63 [INFO] [stdout] | [INFO] [stdout] 654 | 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:733:9 [INFO] [stdout] | [INFO] [stdout] 732 | let mut list: MoltList = if var_result.is_ok() { [INFO] [stdout] | --------------------- help: try: `if let Ok() = var_result` [INFO] [stdout] 733 | 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:752:31 [INFO] [stdout] | [INFO] [stdout] 752 | 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:909:33 [INFO] [stdout] | [INFO] [stdout] 909 | 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: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/commands.rs:1160:9 [INFO] [stdout] | [INFO] [stdout] 1160 | / if result.is_err() { [INFO] [stdout] 1161 | | return result; [INFO] [stdout] 1162 | | } [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:33:30 [INFO] [stdout] | [INFO] [stdout] 33 | 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:33:48 [INFO] [stdout] | [INFO] [stdout] 33 | 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:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | &*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:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | &*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:66:30 [INFO] [stdout] | [INFO] [stdout] 66 | 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:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | &*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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/dict.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | 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>(interp: &mut Interp, string: &'a str) -> DatumResult { [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<'a>(interp: &mut Interp, string: &'a str) -> DatumResult { [INFO] [stdout] 264 + fn expr_top_level(interp: &mut Interp, string: &str) -> DatumResult { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/expr.rs:296:19 [INFO] [stdout] | [INFO] [stdout] 296 | fn expr_get_value<'a>(interp: &mut Interp, info: &'a mut ExprInfo, prec: i32) -> DatumResult { [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] 296 - fn expr_get_value<'a>(interp: &mut Interp, info: &'a mut ExprInfo, prec: i32) -> DatumResult { [INFO] [stdout] 296 + fn expr_get_value(interp: &mut Interp, info: &mut ExprInfo, prec: i32) -> DatumResult { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!Range::contains` implementation [INFO] [stdout] --> src/expr.rs:401:12 [INFO] [stdout] | [INFO] [stdout] 401 | 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:1041:13 [INFO] [stdout] | [INFO] [stdout] 1041 | / if p.has(|c| c.is_alphabetic()) { [INFO] [stdout] 1042 | | let mut str = String::new(); [INFO] [stdout] 1043 | | while p.has(|c| c.is_alphabetic() || c.is_digit(10)) { [INFO] [stdout] 1044 | | str.push(p.next().unwrap()); [INFO] [stdout] ... | [INFO] [stdout] 1089 | | Ok(Datum::none()) [INFO] [stdout] 1090 | | } [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] 1040 ~ Some(_) [INFO] [stdout] 1041 ~ if p.has(|c| c.is_alphabetic()) => { [INFO] [stdout] 1042 | let mut str = String::new(); [INFO] [stdout] ... [INFO] [stdout] 1084 | } [INFO] [stdout] 1085 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/expr.rs:1043:54 [INFO] [stdout] | [INFO] [stdout] 1043 | 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:1350:20 [INFO] [stdout] | [INFO] [stdout] 1350 | 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:1355:22 [INFO] [stdout] | [INFO] [stdout] 1355 | 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: usage of a legacy numeric constant [INFO] [stdout] --> src/expr.rs:1537:23 [INFO] [stdout] | [INFO] [stdout] 1537 | x >= target - std::f64::EPSILON && x <= target + std::f64::EPSILON [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] 1537 - x >= target - std::f64::EPSILON && x <= target + std::f64::EPSILON [INFO] [stdout] 1537 + x >= target - f64::EPSILON && x <= target + std::f64::EPSILON [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/expr.rs:1537:58 [INFO] [stdout] | [INFO] [stdout] 1537 | x >= target - std::f64::EPSILON && x <= target + std::f64::EPSILON [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] 1537 - x >= target - std::f64::EPSILON && x <= target + std::f64::EPSILON [INFO] [stdout] 1537 + x >= target - std::f64::EPSILON && x <= target + f64::EPSILON [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let .. else` expression looks like `matches!` macro [INFO] [stdout] --> src/interp.rs:554:9 [INFO] [stdout] | [INFO] [stdout] 554 | / if let Command::Proc(_) = self { [INFO] [stdout] 555 | | true [INFO] [stdout] 556 | | } else { [INFO] [stdout] 557 | | false [INFO] [stdout] 558 | | } [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] 554 - if let Command::Proc(_) = self { [INFO] [stdout] 555 - true [INFO] [stdout] 556 - } else { [INFO] [stdout] 557 - false [INFO] [stdout] 558 - } [INFO] [stdout] 554 + matches!(self, Command::Proc(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/interp.rs:1667:12 [INFO] [stdout] | [INFO] [stdout] 1667 | 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: unneeded cloning of iterator items [INFO] [stdout] --> src/interp.rs:1859:29 [INFO] [stdout] | [INFO] [stdout] 1859 | let vec: MoltList = self [INFO] [stdout] | _____________________________^ [INFO] [stdout] 1860 | | .commands [INFO] [stdout] 1861 | | .keys() [INFO] [stdout] 1862 | | .cloned() [INFO] [stdout] 1863 | | .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] 1861 ~ .keys() [INFO] [stdout] 1862 + .map(|x| Value::from(&x)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/interp.rs:2291:9 [INFO] [stdout] | [INFO] [stdout] 2291 | 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:208:41 [INFO] [stdout] | [INFO] [stdout] 208 | 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:218:51 [INFO] [stdout] | [INFO] [stdout] 218 | 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:509:26 [INFO] [stdout] | [INFO] [stdout] 509 | 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:540:30 [INFO] [stdout] | [INFO] [stdout] 540 | 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] 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:273:9 [INFO] [stdout] | [INFO] [stdout] 273 | / self.stack[self.current()] [INFO] [stdout] 274 | | .map [INFO] [stdout] 275 | | .keys() [INFO] [stdout] 276 | | .cloned() [INFO] [stdout] 277 | | .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] help: try [INFO] [stdout] | [INFO] [stdout] 275 ~ .keys() [INFO] [stdout] 276 + .map(|x| Value::from(&x)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded cloning of iterator items [INFO] [stdout] --> src/scope.rs:299:9 [INFO] [stdout] | [INFO] [stdout] 299 | / self.stack[0] [INFO] [stdout] 300 | | .map [INFO] [stdout] 301 | | .keys() [INFO] [stdout] 302 | | .cloned() [INFO] [stdout] 303 | | .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] help: try [INFO] [stdout] | [INFO] [stdout] 301 ~ .keys() [INFO] [stdout] 302 + .map(|x| Value::from(&x)) [INFO] [stdout] | [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:319:38 [INFO] [stdout] | [INFO] [stdout] 319 | Some(Var::Array(map)) => 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:362:17 [INFO] [stdout] | [INFO] [stdout] 362 | 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:369:36 [INFO] [stdout] | [INFO] [stdout] 369 | 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:376:41 [INFO] [stdout] | [INFO] [stdout] 376 | 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:69:1 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn test_harness(interp: &mut Interp, args: &[String]) -> 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: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/test_harness.rs:183:47 [INFO] [stdout] | [INFO] [stdout] 183 | 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:189:47 [INFO] [stdout] | [INFO] [stdout] 189 | 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:825:9 [INFO] [stdout] | [INFO] [stdout] 825 | 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:1008:17 [INFO] [stdout] | [INFO] [stdout] 1008 | 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:1020:17 [INFO] [stdout] | [INFO] [stdout] 1020 | 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:1030:17 [INFO] [stdout] | [INFO] [stdout] 1030 | 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:1040:17 [INFO] [stdout] | [INFO] [stdout] 1040 | 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:648:12 [INFO] [stdout] | [INFO] [stdout] 648 | 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:720:37 [INFO] [stdout] | [INFO] [stdout] 720 | MoltInt::from_str_radix(&arg[2..], 16) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/value.rs:719:28 [INFO] [stdout] | [INFO] [stdout] 719 | 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] 719 ~ let parse_result = if let Some() = arg.strip_prefix("0x") { [INFO] [stdout] 720 ~ 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:799:19 [INFO] [stdout] | [INFO] [stdout] 799 | 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] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 799 - if flt == std::f64::INFINITY { [INFO] [stdout] 799 + if flt == f64::INFINITY { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/value.rs:801:26 [INFO] [stdout] | [INFO] [stdout] 801 | } 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] 801 - } else if flt == std::f64::NEG_INFINITY { [INFO] [stdout] 801 + } 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:872:12 [INFO] [stdout] | [INFO] [stdout] 872 | 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:1168:67 [INFO] [stdout] | [INFO] [stdout] 1168 | 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] 1168 - DataRep::Dict(dict) => write!(f, "{}", dict_to_string(&*dict)), [INFO] [stdout] 1168 + 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] 1168 | 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:1171:67 [INFO] [stdout] | [INFO] [stdout] 1171 | 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] 1171 - DataRep::List(list) => write!(f, "{}", list_to_string(&*list)), [INFO] [stdout] 1171 + 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] 1171 | 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:1417:48 [INFO] [stdout] | [INFO] [stdout] 1417 | 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] 1417 - assert_eq!(Value::get_float("Inf"), Ok(std::f64::INFINITY)); [INFO] [stdout] 1417 + 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:1539:9 [INFO] [stdout] | [INFO] [stdout] 1539 | 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:1540:9 [INFO] [stdout] | [INFO] [stdout] 1540 | 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.11s [INFO] running `Command { std: "docker" "inspect" "eb04b9d7a190222260b2769940dd37b491bdf5ff560220d8bc5176d8cf35e8f8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "eb04b9d7a190222260b2769940dd37b491bdf5ff560220d8bc5176d8cf35e8f8", kill_on_drop: false }` [INFO] [stdout] eb04b9d7a190222260b2769940dd37b491bdf5ff560220d8bc5176d8cf35e8f8