[INFO] cloning repository https://github.com/asebrech/expert-system [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/asebrech/expert-system" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fasebrech%2Fexpert-system", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fasebrech%2Fexpert-system'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c8eedf9d0a8055f9fc8c49478b8e545514a0f0bd [INFO] linting asebrech/expert-system against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fasebrech%2Fexpert-system" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/asebrech/expert-system [INFO] finished tweaking git repo https://github.com/asebrech/expert-system [INFO] tweaked toml for git repo https://github.com/asebrech/expert-system written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/asebrech/expert-system on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/asebrech/expert-system already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded env_logger v0.11.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 5ec25c2cae58358a4134e3223672cccb895d57bf0ce703ce3a681d514b106ece [INFO] running `Command { std: "docker" "start" "-a" "5ec25c2cae58358a4134e3223672cccb895d57bf0ce703ce3a681d514b106ece", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5ec25c2cae58358a4134e3223672cccb895d57bf0ce703ce3a681d514b106ece", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5ec25c2cae58358a4134e3223672cccb895d57bf0ce703ce3a681d514b106ece", kill_on_drop: false }` [INFO] [stdout] 5ec25c2cae58358a4134e3223672cccb895d57bf0ce703ce3a681d514b106ece [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 932dc667736419a261a8f396cd55f462c3799b05f0b57e5e6d0aa7116e78b675 [INFO] running `Command { std: "docker" "start" "-a" "932dc667736419a261a8f396cd55f462c3799b05f0b57e5e6d0aa7116e78b675", kill_on_drop: false }` [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Checking log v0.4.26 [INFO] [stderr] Checking colored v2.2.0 [INFO] [stderr] Checking anstream v0.6.18 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking env_filter v0.1.3 [INFO] [stderr] Checking env_logger v0.11.6 [INFO] [stderr] Checking ExpertSystem v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/engine/neo_solver.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | mut depth: usize, [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/engine/neo_solver.rs:115:21 [INFO] [stdout] | [INFO] [stdout] 115 | let v = sym.unwrap(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/engine/neo_solver.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | mut depth: usize, [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/engine/neo_solver.rs:276:10 [INFO] [stdout] | [INFO] [stdout] 276 | for (i, knowledge) in initial_vec.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `AND` contains a capitalized acronym [INFO] [stdout] --> src/data_types/fact.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | AND, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `And` [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 `XOR` contains a capitalized acronym [INFO] [stdout] --> src/data_types/fact.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | XOR, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Xor` [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] [stdout] warning: name `END` contains a capitalized acronym [INFO] [stdout] --> src/data_types/fact.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | END, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `End` [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] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | return get_symbol_value(&symbol, engine, knowledge_cache_manager, false, 0); [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] 89 - return get_symbol_value(&symbol, engine, knowledge_cache_manager, false, 0); [INFO] [stdout] 89 + get_symbol_value(&symbol, engine, knowledge_cache_manager, false, 0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `sym` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:106:53 [INFO] [stdout] | [INFO] [stdout] 105 | if sym.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = sym` [INFO] [stdout] 106 | current_value = if item.not { Some(!sym.unwrap() && item.not) } else { sym }; [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: called `unwrap` on `sym` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:115:25 [INFO] [stdout] | [INFO] [stdout] 114 | if sym.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = sym` [INFO] [stdout] 115 | let v = sym.unwrap(); [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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `sym` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:116:54 [INFO] [stdout] | [INFO] [stdout] 114 | if sym.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = sym` [INFO] [stdout] 115 | let v = sym.unwrap(); [INFO] [stdout] 116 | previous_value = if item.not { Some(!sym.unwrap() && item.not) } else { sym }; [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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `current_value` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:122:76 [INFO] [stdout] | [INFO] [stdout] 121 | if previous_value.is_some() && current_value.is_some() && condition.is_some() { [INFO] [stdout] | ----------------------- the check is happening here [INFO] [stdout] 122 | previous_value = Some(compare_boolean(previous_value.unwrap(), current_value.unwrap(), condition.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `condition` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:122:100 [INFO] [stdout] | [INFO] [stdout] 121 | if previous_value.is_some() && current_value.is_some() && condition.is_some() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] 122 | previous_value = Some(compare_boolean(previous_value.unwrap(), current_value.unwrap(), condition.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `previous_value` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:126:41 [INFO] [stdout] | [INFO] [stdout] 126 | return if previous_value.is_some() {previous_value.unwrap()} else {false}; [INFO] [stdout] | --------------------------- ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: try: `if let Some() = previous_value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | return if previous_value.is_some() {previous_value.unwrap()} else {false}; [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] 126 - return if previous_value.is_some() {previous_value.unwrap()} else {false}; [INFO] [stdout] 126 + if previous_value.is_some() {previous_value.unwrap()} else {false} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | return (resolved_map, previous_value); [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] 156 - return (resolved_map, previous_value); [INFO] [stdout] 156 + (resolved_map, previous_value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/engine/neo_solver.rs:130:19 [INFO] [stdout] | [INFO] [stdout] 130 | requirements: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 130 - requirements: &Vec, [INFO] [stdout] 130 + requirements: &[Requirement], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/neo_solver.rs:143:77 [INFO] [stdout] | [INFO] [stdout] 143 | ... current_value = get_rhs_requirement_value(Some(previous_value), &item, &condition, &mut resolved_map, engine, knowledge_cach... [INFO] [stdout] | ^^^^^ help: change this to: `item` [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/engine/neo_solver.rs:148:62 [INFO] [stdout] | [INFO] [stdout] 148 | ... previous_value = get_rhs_requirement_value(None, &item, &condition, &mut resolved_map, engine, knowledge_cache_manager, depth); [INFO] [stdout] | ^^^^^ help: change this to: `item` [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/engine/neo_solver.rs:175:2 [INFO] [stdout] | [INFO] [stdout] 175 | return res; [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] 175 - return res; [INFO] [stdout] 175 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `precedent_value` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:196:21 [INFO] [stdout] | [INFO] [stdout] 195 | if sym.is_none() && *precedent_condition == Condition::XOR && precedent_value.is_some() { [INFO] [stdout] | ------------------------- the check is happening here [INFO] [stdout] 196 | return !precedent_value.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `sym` after checking its variant with `is_none` [INFO] [stdout] --> src/engine/neo_solver.rs:203:20 [INFO] [stdout] | [INFO] [stdout] 199 | if sym.is_none() { [INFO] [stdout] | ---------------- help: try: `if let Some() = sym` [INFO] [stdout] ... [INFO] [stdout] 203 | return sym.unwrap(); [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:201:13 [INFO] [stdout] | [INFO] [stdout] 201 | return user_input; [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] 201 - return user_input; [INFO] [stdout] 201 + user_input [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:203:13 [INFO] [stdout] | [INFO] [stdout] 203 | return sym.unwrap(); [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] 203 - return sym.unwrap(); [INFO] [stdout] 203 + sym.unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `sym_val` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:216:31 [INFO] [stdout] | [INFO] [stdout] 215 | if sym_val.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = sym_val` [INFO] [stdout] 216 | rhs_value = Some(*sym_val.unwrap()); [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:222:5 [INFO] [stdout] | [INFO] [stdout] 222 | return rhs_value; [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] 222 - return rhs_value; [INFO] [stdout] 222 + rhs_value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/engine/neo_solver.rs:209:8 [INFO] [stdout] | [INFO] [stdout] 209 | if data.1 == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `!data.1` [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: this boolean expression can be simplified [INFO] [stdout] --> src/engine/neo_solver.rs:308:12 [INFO] [stdout] | [INFO] [stdout] 308 | if lhs_value || !lhs_value && knowledge.not { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 308 - if lhs_value || !lhs_value && knowledge.not { [INFO] [stdout] 308 + if !(!lhs_value && !knowledge.not) { [INFO] [stdout] | [INFO] [stdout] 308 - if lhs_value || !lhs_value && knowledge.not { [INFO] [stdout] 308 + if lhs_value || knowledge.not { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `some_rhs` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:283:38 [INFO] [stdout] | [INFO] [stdout] 282 | if some_rhs.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = some_rhs` [INFO] [stdout] 283 | answers.push(some_rhs.unwrap()); [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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `some_rhs` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:317:33 [INFO] [stdout] | [INFO] [stdout] 316 | if some_rhs.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = some_rhs` [INFO] [stdout] 317 | rhs_value = some_rhs.unwrap(); [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:348:5 [INFO] [stdout] | [INFO] [stdout] 348 | return Some(final_result); [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] 348 - return Some(final_result); [INFO] [stdout] 348 + Some(final_result) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/engine/neo_solver.rs:279:16 [INFO] [stdout] | [INFO] [stdout] 279 | if knowledge_cache_manager.rhs_symbol_map.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!knowledge_cache_manager.rhs_symbol_map.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/neo_solver.rs:281:97 [INFO] [stdout] | [INFO] [stdout] 281 | let some_rhs: Option = get_rhs_symbol_value_from_resolved_map(symbol, &item); [INFO] [stdout] | ^^^^^ help: change this to: `item` [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 `if` statement can be collapsed [INFO] [stdout] --> src/engine/neo_solver.rs:308:9 [INFO] [stdout] | [INFO] [stdout] 308 | / if lhs_value || !lhs_value && knowledge.not { [INFO] [stdout] 309 | | if knowledge.result_requirement.is_some() { [INFO] [stdout] 310 | | knowledge_cache_manager.previous_line = Some(knowledge.line.clone()); [INFO] [stdout] 311 | | knowledge_cache_manager.result_knowledge_stack.insert(knowledge.line.clone()); [INFO] [stdout] ... | [INFO] [stdout] 324 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 308 ~ if (lhs_value || !lhs_value && knowledge.not) { [INFO] [stdout] 309 ~ && knowledge.result_requirement.is_some() { [INFO] [stdout] 310 | knowledge_cache_manager.previous_line = Some(knowledge.line.clone()); [INFO] [stdout] ... [INFO] [stdout] 322 | //if the resolution is correct and symbol is correct [INFO] [stdout] 323 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/engine/neo_solver.rs:346:17 [INFO] [stdout] | [INFO] [stdout] 346 | .remove(&symbol.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `symbol` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/engine/neo_solver.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | mut depth: usize, [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/engine/neo_solver.rs:115:21 [INFO] [stdout] | [INFO] [stdout] 115 | let v = sym.unwrap(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/engine/neo_solver.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | mut depth: usize, [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:32:30 [INFO] [stdout] | [INFO] [stdout] 32 | fn ensure_program_args(args: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 32 - fn ensure_program_args(args: &Vec) { [INFO] [stdout] 32 + fn ensure_program_args(args: &[String]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/engine/neo_solver.rs:276:10 [INFO] [stdout] | [INFO] [stdout] 276 | for (i, knowledge) in initial_vec.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `AND` contains a capitalized acronym [INFO] [stdout] --> src/data_types/fact.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | AND, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `And` [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 `XOR` contains a capitalized acronym [INFO] [stdout] --> src/data_types/fact.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | XOR, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Xor` [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] [stdout] warning: name `END` contains a capitalized acronym [INFO] [stdout] --> src/data_types/fact.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | END, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `End` [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] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | return get_symbol_value(&symbol, engine, knowledge_cache_manager, false, 0); [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] 89 - return get_symbol_value(&symbol, engine, knowledge_cache_manager, false, 0); [INFO] [stdout] 89 + get_symbol_value(&symbol, engine, knowledge_cache_manager, false, 0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `sym` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:106:53 [INFO] [stdout] | [INFO] [stdout] 105 | if sym.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = sym` [INFO] [stdout] 106 | current_value = if item.not { Some(!sym.unwrap() && item.not) } else { sym }; [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: called `unwrap` on `sym` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:115:25 [INFO] [stdout] | [INFO] [stdout] 114 | if sym.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = sym` [INFO] [stdout] 115 | let v = sym.unwrap(); [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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `sym` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:116:54 [INFO] [stdout] | [INFO] [stdout] 114 | if sym.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = sym` [INFO] [stdout] 115 | let v = sym.unwrap(); [INFO] [stdout] 116 | previous_value = if item.not { Some(!sym.unwrap() && item.not) } else { sym }; [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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `current_value` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:122:76 [INFO] [stdout] | [INFO] [stdout] 121 | if previous_value.is_some() && current_value.is_some() && condition.is_some() { [INFO] [stdout] | ----------------------- the check is happening here [INFO] [stdout] 122 | previous_value = Some(compare_boolean(previous_value.unwrap(), current_value.unwrap(), condition.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `condition` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:122:100 [INFO] [stdout] | [INFO] [stdout] 121 | if previous_value.is_some() && current_value.is_some() && condition.is_some() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] 122 | previous_value = Some(compare_boolean(previous_value.unwrap(), current_value.unwrap(), condition.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `previous_value` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:126:41 [INFO] [stdout] | [INFO] [stdout] 126 | return if previous_value.is_some() {previous_value.unwrap()} else {false}; [INFO] [stdout] | --------------------------- ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: try: `if let Some() = previous_value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | return if previous_value.is_some() {previous_value.unwrap()} else {false}; [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] 126 - return if previous_value.is_some() {previous_value.unwrap()} else {false}; [INFO] [stdout] 126 + if previous_value.is_some() {previous_value.unwrap()} else {false} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | return (resolved_map, previous_value); [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] 156 - return (resolved_map, previous_value); [INFO] [stdout] 156 + (resolved_map, previous_value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/engine/neo_solver.rs:130:19 [INFO] [stdout] | [INFO] [stdout] 130 | requirements: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 130 - requirements: &Vec, [INFO] [stdout] 130 + requirements: &[Requirement], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/neo_solver.rs:143:77 [INFO] [stdout] | [INFO] [stdout] 143 | ... current_value = get_rhs_requirement_value(Some(previous_value), &item, &condition, &mut resolved_map, engine, knowledge_cach... [INFO] [stdout] | ^^^^^ help: change this to: `item` [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/engine/neo_solver.rs:148:62 [INFO] [stdout] | [INFO] [stdout] 148 | ... previous_value = get_rhs_requirement_value(None, &item, &condition, &mut resolved_map, engine, knowledge_cache_manager, depth); [INFO] [stdout] | ^^^^^ help: change this to: `item` [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/engine/neo_solver.rs:175:2 [INFO] [stdout] | [INFO] [stdout] 175 | return res; [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] 175 - return res; [INFO] [stdout] 175 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `precedent_value` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:196:21 [INFO] [stdout] | [INFO] [stdout] 195 | if sym.is_none() && *precedent_condition == Condition::XOR && precedent_value.is_some() { [INFO] [stdout] | ------------------------- the check is happening here [INFO] [stdout] 196 | return !precedent_value.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `sym` after checking its variant with `is_none` [INFO] [stdout] --> src/engine/neo_solver.rs:203:20 [INFO] [stdout] | [INFO] [stdout] 199 | if sym.is_none() { [INFO] [stdout] | ---------------- help: try: `if let Some() = sym` [INFO] [stdout] ... [INFO] [stdout] 203 | return sym.unwrap(); [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:201:13 [INFO] [stdout] | [INFO] [stdout] 201 | return user_input; [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] 201 - return user_input; [INFO] [stdout] 201 + user_input [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:203:13 [INFO] [stdout] | [INFO] [stdout] 203 | return sym.unwrap(); [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] 203 - return sym.unwrap(); [INFO] [stdout] 203 + sym.unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `sym_val` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:216:31 [INFO] [stdout] | [INFO] [stdout] 215 | if sym_val.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = sym_val` [INFO] [stdout] 216 | rhs_value = Some(*sym_val.unwrap()); [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:222:5 [INFO] [stdout] | [INFO] [stdout] 222 | return rhs_value; [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] 222 - return rhs_value; [INFO] [stdout] 222 + rhs_value [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/engine/neo_solver.rs:209:8 [INFO] [stdout] | [INFO] [stdout] 209 | if data.1 == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `!data.1` [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: this boolean expression can be simplified [INFO] [stdout] --> src/engine/neo_solver.rs:308:12 [INFO] [stdout] | [INFO] [stdout] 308 | if lhs_value || !lhs_value && knowledge.not { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 308 - if lhs_value || !lhs_value && knowledge.not { [INFO] [stdout] 308 + if !(!lhs_value && !knowledge.not) { [INFO] [stdout] | [INFO] [stdout] 308 - if lhs_value || !lhs_value && knowledge.not { [INFO] [stdout] 308 + if lhs_value || knowledge.not { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `some_rhs` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:283:38 [INFO] [stdout] | [INFO] [stdout] 282 | if some_rhs.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = some_rhs` [INFO] [stdout] 283 | answers.push(some_rhs.unwrap()); [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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `some_rhs` after checking its variant with `is_some` [INFO] [stdout] --> src/engine/neo_solver.rs:317:33 [INFO] [stdout] | [INFO] [stdout] 316 | if some_rhs.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = some_rhs` [INFO] [stdout] 317 | rhs_value = some_rhs.unwrap(); [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/engine/neo_solver.rs:348:5 [INFO] [stdout] | [INFO] [stdout] 348 | return Some(final_result); [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] 348 - return Some(final_result); [INFO] [stdout] 348 + Some(final_result) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/engine/neo_solver.rs:279:16 [INFO] [stdout] | [INFO] [stdout] 279 | if knowledge_cache_manager.rhs_symbol_map.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!knowledge_cache_manager.rhs_symbol_map.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/engine/neo_solver.rs:281:97 [INFO] [stdout] | [INFO] [stdout] 281 | let some_rhs: Option = get_rhs_symbol_value_from_resolved_map(symbol, &item); [INFO] [stdout] | ^^^^^ help: change this to: `item` [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 `if` statement can be collapsed [INFO] [stdout] --> src/engine/neo_solver.rs:308:9 [INFO] [stdout] | [INFO] [stdout] 308 | / if lhs_value || !lhs_value && knowledge.not { [INFO] [stdout] 309 | | if knowledge.result_requirement.is_some() { [INFO] [stdout] 310 | | knowledge_cache_manager.previous_line = Some(knowledge.line.clone()); [INFO] [stdout] 311 | | knowledge_cache_manager.result_knowledge_stack.insert(knowledge.line.clone()); [INFO] [stdout] ... | [INFO] [stdout] 324 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 308 ~ if (lhs_value || !lhs_value && knowledge.not) { [INFO] [stdout] 309 ~ && knowledge.result_requirement.is_some() { [INFO] [stdout] 310 | knowledge_cache_manager.previous_line = Some(knowledge.line.clone()); [INFO] [stdout] ... [INFO] [stdout] 322 | //if the resolution is correct and symbol is correct [INFO] [stdout] 323 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/engine/neo_solver.rs:346:17 [INFO] [stdout] | [INFO] [stdout] 346 | .remove(&symbol.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `symbol` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:32:30 [INFO] [stdout] | [INFO] [stdout] 32 | fn ensure_program_args(args: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 32 - fn ensure_program_args(args: &Vec) { [INFO] [stdout] 32 + fn ensure_program_args(args: &[String]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.97s [INFO] running `Command { std: "docker" "inspect" "932dc667736419a261a8f396cd55f462c3799b05f0b57e5e6d0aa7116e78b675", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "932dc667736419a261a8f396cd55f462c3799b05f0b57e5e6d0aa7116e78b675", kill_on_drop: false }` [INFO] [stdout] 932dc667736419a261a8f396cd55f462c3799b05f0b57e5e6d0aa7116e78b675