[INFO] fetching crate algorithmify 0.1.1... [INFO] linting algorithmify-0.1.1 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate algorithmify 0.1.1 into /workspace/builds/worker-0-tc1/source [INFO] started tweaking crates.io crate algorithmify 0.1.1 [INFO] finished tweaking crates.io crate algorithmify 0.1.1 [INFO] tweaked toml for crates.io crate algorithmify 0.1.1 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate algorithmify 0.1.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] Blocking waiting for file lock on package cache [INFO] [stderr] Locking 2 packages to latest compatible versions [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded algorithmify_macros v0.1.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8899914fe5cef623951d9b820c71487b8b0d76b24f1e536476d8210396e83b48 [INFO] running `Command { std: "docker" "start" "-a" "8899914fe5cef623951d9b820c71487b8b0d76b24f1e536476d8210396e83b48", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8899914fe5cef623951d9b820c71487b8b0d76b24f1e536476d8210396e83b48", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8899914fe5cef623951d9b820c71487b8b0d76b24f1e536476d8210396e83b48", kill_on_drop: false }` [INFO] [stdout] 8899914fe5cef623951d9b820c71487b8b0d76b24f1e536476d8210396e83b48 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 27da867756fef6169319ceb15ca765bb4eac29d1882d871cf6b1a74e9a89f5f1 [INFO] running `Command { std: "docker" "start" "-a" "27da867756fef6169319ceb15ca765bb4eac29d1882d871cf6b1a74e9a89f5f1", kill_on_drop: false }` [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling algorithmify_macros v0.1.1 [INFO] [stderr] Checking algorithmify v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/expressions/functions.rs:31:55 [INFO] [stdout] | [INFO] [stdout] 31 | let arg_pairs = self.args.iter().cloned().zip(args.into_iter()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 31 - let arg_pairs = self.args.iter().cloned().zip(args.into_iter()).collect(); [INFO] [stdout] 31 + let arg_pairs = self.args.iter().cloned().zip(args).collect(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/expressions/functions.rs:31:55 [INFO] [stdout] | [INFO] [stdout] 31 | let arg_pairs = self.args.iter().cloned().zip(args.into_iter()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 31 - let arg_pairs = self.args.iter().cloned().zip(args.into_iter()).collect(); [INFO] [stdout] 31 + let arg_pairs = self.args.iter().cloned().zip(args).collect(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/loops.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | / return match pre_condition().execute(context, args)? { [INFO] [stdout] 26 | | Expression::Bool(true) => Ok(()), [INFO] [stdout] 27 | | Expression::Bool(false) => Err(anyhow!("Pre-condition '{}' failed", name)), [INFO] [stdout] 28 | | other => Err(anyhow!( [INFO] [stdout] ... | [INFO] [stdout] 32 | | )), [INFO] [stdout] 33 | | }; [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] 25 ~ match pre_condition().execute(context, args)? { [INFO] [stdout] 26 + Expression::Bool(true) => Ok(()), [INFO] [stdout] 27 + Expression::Bool(false) => Err(anyhow!("Pre-condition '{}' failed", name)), [INFO] [stdout] 28 + other => Err(anyhow!( [INFO] [stdout] 29 + "Expected boolean, got '{:?}' when validating '{}'", [INFO] [stdout] 30 + other, [INFO] [stdout] 31 + name [INFO] [stdout] 32 + )), [INFO] [stdout] 33 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/loops.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | / return match function.execute(context, args)? { [INFO] [stdout] 47 | | Expression::Bool(true) => Ok(()), [INFO] [stdout] 48 | | Expression::Bool(false) => Err(anyhow!("Maintenance condition '{}' failed", name)), [INFO] [stdout] 49 | | other => Err(anyhow!( [INFO] [stdout] ... | [INFO] [stdout] 53 | | )), [INFO] [stdout] 54 | | }; [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] 46 ~ match function.execute(context, args)? { [INFO] [stdout] 47 + Expression::Bool(true) => Ok(()), [INFO] [stdout] 48 + Expression::Bool(false) => Err(anyhow!("Maintenance condition '{}' failed", name)), [INFO] [stdout] 49 + other => Err(anyhow!( [INFO] [stdout] 50 + "Expected boolean, got '{:?}' when validating '{}'", [INFO] [stdout] 51 + other, [INFO] [stdout] 52 + name [INFO] [stdout] 53 + )), [INFO] [stdout] 54 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/loops.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | / return match function.execute(context, args)? { [INFO] [stdout] 65 | | Expression::Bool(true) => Ok(()), [INFO] [stdout] 66 | | Expression::Bool(false) => Err(anyhow!("Post-condition '{}' failed", name)), [INFO] [stdout] 67 | | other => Err(anyhow!( [INFO] [stdout] ... | [INFO] [stdout] 71 | | )), [INFO] [stdout] 72 | | }; [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] 64 ~ match function.execute(context, args)? { [INFO] [stdout] 65 + Expression::Bool(true) => Ok(()), [INFO] [stdout] 66 + Expression::Bool(false) => Err(anyhow!("Post-condition '{}' failed", name)), [INFO] [stdout] 67 + other => Err(anyhow!( [INFO] [stdout] 68 + "Expected boolean, got '{:?}' when validating '{}'", [INFO] [stdout] 69 + other, [INFO] [stdout] 70 + name [INFO] [stdout] 71 + )), [INFO] [stdout] 72 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/loops.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | / return match pre_condition().execute(context, args)? { [INFO] [stdout] 26 | | Expression::Bool(true) => Ok(()), [INFO] [stdout] 27 | | Expression::Bool(false) => Err(anyhow!("Pre-condition '{}' failed", name)), [INFO] [stdout] 28 | | other => Err(anyhow!( [INFO] [stdout] ... | [INFO] [stdout] 32 | | )), [INFO] [stdout] 33 | | }; [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] 25 ~ match pre_condition().execute(context, args)? { [INFO] [stdout] 26 + Expression::Bool(true) => Ok(()), [INFO] [stdout] 27 + Expression::Bool(false) => Err(anyhow!("Pre-condition '{}' failed", name)), [INFO] [stdout] 28 + other => Err(anyhow!( [INFO] [stdout] 29 + "Expected boolean, got '{:?}' when validating '{}'", [INFO] [stdout] 30 + other, [INFO] [stdout] 31 + name [INFO] [stdout] 32 + )), [INFO] [stdout] 33 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/loops.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | / return match function.execute(context, args)? { [INFO] [stdout] 47 | | Expression::Bool(true) => Ok(()), [INFO] [stdout] 48 | | Expression::Bool(false) => Err(anyhow!("Maintenance condition '{}' failed", name)), [INFO] [stdout] 49 | | other => Err(anyhow!( [INFO] [stdout] ... | [INFO] [stdout] 53 | | )), [INFO] [stdout] 54 | | }; [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] 46 ~ match function.execute(context, args)? { [INFO] [stdout] 47 + Expression::Bool(true) => Ok(()), [INFO] [stdout] 48 + Expression::Bool(false) => Err(anyhow!("Maintenance condition '{}' failed", name)), [INFO] [stdout] 49 + other => Err(anyhow!( [INFO] [stdout] 50 + "Expected boolean, got '{:?}' when validating '{}'", [INFO] [stdout] 51 + other, [INFO] [stdout] 52 + name [INFO] [stdout] 53 + )), [INFO] [stdout] 54 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/loops.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | / return match function.execute(context, args)? { [INFO] [stdout] 65 | | Expression::Bool(true) => Ok(()), [INFO] [stdout] 66 | | Expression::Bool(false) => Err(anyhow!("Post-condition '{}' failed", name)), [INFO] [stdout] 67 | | other => Err(anyhow!( [INFO] [stdout] ... | [INFO] [stdout] 71 | | )), [INFO] [stdout] 72 | | }; [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] 64 ~ match function.execute(context, args)? { [INFO] [stdout] 65 + Expression::Bool(true) => Ok(()), [INFO] [stdout] 66 + Expression::Bool(false) => Err(anyhow!("Post-condition '{}' failed", name)), [INFO] [stdout] 67 + other => Err(anyhow!( [INFO] [stdout] 68 + "Expected boolean, got '{:?}' when validating '{}'", [INFO] [stdout] 69 + other, [INFO] [stdout] 70 + name [INFO] [stdout] 71 + )), [INFO] [stdout] 72 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: order comparisons between booleans can be simplified [INFO] [stdout] --> src/expressions/operation.rs:161:79 [INFO] [stdout] | [INFO] [stdout] 161 | (Expression::Bool(lhs), Expression::Bool(rhs)) => Ok(Expression::Bool(*lhs < *rhs)), [INFO] [stdout] | ^^^^^^^^^^^ help: try: `!*lhs & *rhs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/reference.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | return Err(anyhow!("Unknown reference '{}'", self)); [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] 17 - return Err(anyhow!("Unknown reference '{}'", self)); [INFO] [stdout] 17 + Err(anyhow!("Unknown reference '{}'", self)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: order comparisons between booleans can be simplified [INFO] [stdout] --> src/expressions/operation.rs:161:79 [INFO] [stdout] | [INFO] [stdout] 161 | (Expression::Bool(lhs), Expression::Bool(rhs)) => Ok(Expression::Bool(*lhs < *rhs)), [INFO] [stdout] | ^^^^^^^^^^^ help: try: `!*lhs & *rhs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/reference.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | return Err(anyhow!("Unknown reference '{}'", self)); [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] 17 - return Err(anyhow!("Unknown reference '{}'", self)); [INFO] [stdout] 17 + Err(anyhow!("Unknown reference '{}'", self)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/expressions/functions.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 68 | #[derive(Debug, Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] 69 | pub struct FunctionCall { [INFO] [stdout] 70 | pub builder: FunctionBuilder, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/expressions/functions.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 68 | #[derive(Debug, Clone, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] 69 | pub struct FunctionCall { [INFO] [stdout] 70 | pub builder: FunctionBuilder, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> tests/expressions/block_tests.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 8 | / let result = { [INFO] [stdout] 9 | | let a = 1; [INFO] [stdout] 10 | | a + 2 [INFO] [stdout] 11 | | }; [INFO] [stdout] | |__________- unnecessary `let` binding [INFO] [stdout] 12 | [INFO] [stdout] 13 | result [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 8 ~ [INFO] [stdout] 9 | [INFO] [stdout] 10 ~ { [INFO] [stdout] 11 + let a = 1; [INFO] [stdout] 12 + a + 2 [INFO] [stdout] 13 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/expressions/condition_tests.rs:11:13 [INFO] [stdout] | [INFO] [stdout] 11 | result = result + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `result += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/expressions/condition_tests.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | result = result + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `result += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/expressions/condition_tests.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | result = result + 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `result += 2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/expressions/condition_tests.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | result = result + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `result += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/expressions/condition_tests.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | result = result + 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `result += 2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `vector` [INFO] [stdout] --> tests/expressions/expression_test.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | for i in 0..3 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 9 - for i in 0..3 { [INFO] [stdout] 9 + for (i, ) in vector.iter_mut().enumerate().take(3) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/expressions/loop_tests.rs:11:13 [INFO] [stdout] | [INFO] [stdout] 11 | acc = acc + i; [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace it with: `acc += i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/expressions/loop_tests.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | acc = acc + i; [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace it with: `acc += i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/expressions/loop_tests.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | i = i * 2; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i *= 2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/expressions/loop_tests.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | acc = acc + 1; [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace it with: `acc += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/expressions/operations_tests.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | a = a + 2; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `a += 2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/expressions/operations_tests.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | a = a - 2; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `a -= 2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/expressions/operations_tests.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | a = a * 2; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `a *= 2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/expressions/operations_tests.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 54 | a = a / 2; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `a /= 2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/expressions/operations_tests.rs:103:19 [INFO] [stdout] | [INFO] [stdout] 103 | let cmp = 23 > 6 && 11 < 23 && 5 <= 6 && 5 >= 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `23 > 6` [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] --> tests/expressions/operations_tests.rs:103:19 [INFO] [stdout] | [INFO] [stdout] 103 | let cmp = 23 > 6 && 11 < 23 && 5 <= 6 && 5 >= 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `23 > 6` [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] --> tests/expressions/operations_tests.rs:103:19 [INFO] [stdout] | [INFO] [stdout] 103 | let cmp = 23 > 6 && 11 < 23 && 5 <= 6 && 5 >= 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `23 > 6` [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] --> tests/expressions/operations_tests.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | (eq && ne && cmp) || false [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eq && ne && cmp` [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: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/expressions/operations_tests.rs:110:5 [INFO] [stdout] | [INFO] [stdout] 110 | assert_eq!(boolean_logic_true(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 110 - assert_eq!(boolean_logic_true(), true); [INFO] [stdout] 110 + assert!(boolean_logic_true()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/expressions/operations_tests.rs:118:19 [INFO] [stdout] | [INFO] [stdout] 118 | let cmp = 23 > 6 && 11 < 23 && 5 <= 6 && 5 >= 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `23 > 6` [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] --> tests/expressions/operations_tests.rs:118:19 [INFO] [stdout] | [INFO] [stdout] 118 | let cmp = 23 > 6 && 11 < 23 && 5 <= 6 && 5 >= 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `23 > 6` [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] --> tests/expressions/operations_tests.rs:118:19 [INFO] [stdout] | [INFO] [stdout] 118 | let cmp = 23 > 6 && 11 < 23 && 5 <= 6 && 5 >= 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `23 > 6` [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] --> tests/expressions/operations_tests.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | (eq && ne && cmp) || false [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `eq && ne && cmp` [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: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/expressions/operations_tests.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | assert_eq!(boolean_logic_false(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 126 - assert_eq!(boolean_logic_false(), false); [INFO] [stdout] 126 + assert!(!boolean_logic_false()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct update has no effect, all the fields in the struct have already been specified [INFO] [stdout] --> tests/algorithms/insertion_sort.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | / #[define_function_builder { [INFO] [stdout] 28 | | main: { [INFO] [stdout] 29 | | pre_condition: insertion_sort_pre_condition, [INFO] [stdout] 30 | | post_condition: insertion_sort_post_condition, [INFO] [stdout] ... | [INFO] [stdout] 33 | | }] [INFO] [stdout] | |__^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update [INFO] [stdout] = note: `#[warn(clippy::needless_update)]` on by default [INFO] [stdout] = note: this warning originates in the attribute macro `define_function_builder` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> tests/algorithms/insertion_sort.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | j = j - 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `j -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> tests/expressions/expression_test.rs:8:26 [INFO] [stdout] | [INFO] [stdout] 8 | let mut vector = vec![1, 2, 3]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: you can use an array directly: `[1, 2, 3]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> tests/expressions/expression_test.rs:25:22 [INFO] [stdout] | [INFO] [stdout] 25 | let vector = vec![1, 2, 3]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: you can use an array directly: `[1, 2, 3]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> tests/expressions/expression_test.rs:26:32 [INFO] [stdout] | [INFO] [stdout] 26 | let mut other_vector = vec![0; 3]; [INFO] [stdout] | ^^^^^^^^^^ help: you can use an array directly: `[0; 3]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> tests/expressions/expression_test.rs:62:19 [INFO] [stdout] | [INFO] [stdout] 62 | let vec = vec![1, 2, 3]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: you can use an array directly: `[1, 2, 3]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.28s [INFO] running `Command { std: "docker" "inspect" "27da867756fef6169319ceb15ca765bb4eac29d1882d871cf6b1a74e9a89f5f1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "27da867756fef6169319ceb15ca765bb4eac29d1882d871cf6b1a74e9a89f5f1", kill_on_drop: false }` [INFO] [stdout] 27da867756fef6169319ceb15ca765bb4eac29d1882d871cf6b1a74e9a89f5f1