[INFO] cloning repository https://github.com/cynicalart/simple_calculator [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/cynicalart/simple_calculator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcynicalart%2Fsimple_calculator", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcynicalart%2Fsimple_calculator'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a3b7e98af636dee3f92215cf0b50a39796a958b6 [INFO] linting cynicalart/simple_calculator against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcynicalart%2Fsimple_calculator" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/cynicalart/simple_calculator [INFO] finished tweaking git repo https://github.com/cynicalart/simple_calculator [INFO] tweaked toml for git repo https://github.com/cynicalart/simple_calculator written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/cynicalart/simple_calculator 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/cynicalart/simple_calculator already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] b42afc5b67871e949e159984ca4ce9d3fef923f4cedd0bc06873034fd83893d5 [INFO] running `Command { std: "docker" "start" "-a" "b42afc5b67871e949e159984ca4ce9d3fef923f4cedd0bc06873034fd83893d5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b42afc5b67871e949e159984ca4ce9d3fef923f4cedd0bc06873034fd83893d5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b42afc5b67871e949e159984ca4ce9d3fef923f4cedd0bc06873034fd83893d5", kill_on_drop: false }` [INFO] [stdout] b42afc5b67871e949e159984ca4ce9d3fef923f4cedd0bc06873034fd83893d5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 0b415bb88e4d3b9caa0049972491d0e0cb89abbd72b29f71b675affdced7ca41 [INFO] running `Command { std: "docker" "start" "-a" "0b415bb88e4d3b9caa0049972491d0e0cb89abbd72b29f71b675affdced7ca41", kill_on_drop: false }` [INFO] [stderr] Checking simple_calculator v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/calculus.rs:447:10 [INFO] [stdout] | [INFO] [stdout] 447 | for (i, vector) in product_rule_vec.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `multiplier` is never read [INFO] [stdout] --> src/calculus.rs:440:31 [INFO] [stdout] | [INFO] [stdout] 440 | let mut multiplier: f64 = 0.0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `multiplier` is never read [INFO] [stdout] --> src/calculus.rs:452:9 [INFO] [stdout] | [INFO] [stdout] 452 | multiplier = 0.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `exponent` is never read [INFO] [stdout] --> src/calculus.rs:441:29 [INFO] [stdout] | [INFO] [stdout] 441 | let mut exponent: f64 = 0.0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `exponent` is never read [INFO] [stdout] --> src/calculus.rs:453:9 [INFO] [stdout] | [INFO] [stdout] 453 | exponent = 0.0; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `new_multiplier` is never read [INFO] [stdout] --> src/calculus.rs:444:35 [INFO] [stdout] | [INFO] [stdout] 444 | let mut new_multiplier: f64 = 0.0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `new_exponent` is never read [INFO] [stdout] --> src/calculus.rs:445:33 [INFO] [stdout] | [INFO] [stdout] 445 | let mut new_exponent: f64 = 0.0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `multiplied_derivative` is never read [INFO] [stdout] --> src/calculus.rs:535:5 [INFO] [stdout] | [INFO] [stdout] 535 | multiplied_derivative = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `derivative` [INFO] [stdout] --> src/main.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | let derivative = calculus::calculate_derivative(expression_vec); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_derivative` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OPERATORS_ARR` is never used [INFO] [stdout] --> src/calculus.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const OPERATORS_ARR: [char; 5] = ['^', '*', '/', '+', '-']; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FUNCTIONS_ARR` is never used [INFO] [stdout] --> src/calculus.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const FUNCTIONS_ARR: [&str; 16] = ["log", "ln", "sin", "cos", "tan", "csc", "sec", "cot", "arcsin", "arccos", "arctan", "arccsc", "ar... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EULER` is never used [INFO] [stdout] --> src/calculus.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const EULER: f64 = std::f64::consts::E; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PI` is never used [INFO] [stdout] --> src/calculus.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const PI: f64 = std::f64::consts::PI; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/format.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | / if chr == ',' { [INFO] [stdout] 53 | | if !num.is_empty() { [INFO] [stdout] 54 | | output_vec.push(num); [INFO] [stdout] 55 | | num = String::new(); [INFO] [stdout] 56 | | } [INFO] [stdout] 57 | | } [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] 52 ~ if chr == ',' [INFO] [stdout] 53 ~ && !num.is_empty() { [INFO] [stdout] 54 | output_vec.push(num); [INFO] [stdout] 55 | num = String::new(); [INFO] [stdout] 56 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/format.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | / if i == 0 || OPERATORS_ARR.contains(&previous_chr) || BRACKETS_ARR.contains(&previous_chr) { [INFO] [stdout] 140 | | if !(previous_chr == ')' || previous_chr == '}') { [INFO] [stdout] 141 | | num.push(chr); [INFO] [stdout] ... | [INFO] [stdout] 145 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 139 ~ if (i == 0 || OPERATORS_ARR.contains(&previous_chr) || BRACKETS_ARR.contains(&previous_chr)) { [INFO] [stdout] 140 ~ && !(previous_chr == ')' || previous_chr == '}') { [INFO] [stdout] 141 | num.push(chr); [INFO] [stdout] 142 | //Continues, so that any further changes do not occur at this index [INFO] [stdout] 143 | continue; [INFO] [stdout] 144 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/format.rs:149:30 [INFO] [stdout] | [INFO] [stdout] 149 | if chr == '*' && &next_chr == &chr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 149 - if chr == '*' && &next_chr == &chr { [INFO] [stdout] 149 + if chr == '*' && next_chr == chr { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/format.rs:154:32 [INFO] [stdout] | [INFO] [stdout] 154 | } else if i > 0 && &previous_chr == &chr && chr == '*' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 154 - } else if i > 0 && &previous_chr == &chr && chr == '*' { [INFO] [stdout] 154 + } else if i > 0 && previous_chr == chr && chr == '*' { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/format.rs:169:17 [INFO] [stdout] | [INFO] [stdout] 169 | / if i > 0 { [INFO] [stdout] 170 | | if previous_chr == ')' || previous_chr.is_numeric() || previous_chr.is_alphabetic() { [INFO] [stdout] ... | [INFO] [stdout] 175 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 169 ~ if i > 0 [INFO] [stdout] 170 ~ && (previous_chr == ')' || previous_chr.is_numeric() || previous_chr.is_alphabetic()) { [INFO] [stdout] 171 | //Push a multiplication sign to the output vector, as this is an [INFO] [stdout] 172 | //implied multiplication [INFO] [stdout] 173 | output_vec.push(String::from("*")); [INFO] [stdout] 174 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:244:19 [INFO] [stdout] | [INFO] [stdout] 244 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/format.rs:247:13 [INFO] [stdout] | [INFO] [stdout] 247 | / if i > 0 { [INFO] [stdout] 248 | | if expression_vec[i - 1].parse::().is_ok() { [INFO] [stdout] 249 | | let leading_stack = stack[0].chars().nth(0).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 256 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 247 ~ if i > 0 [INFO] [stdout] 248 ~ && expression_vec[i - 1].parse::().is_ok() { [INFO] [stdout] 249 | let leading_stack = stack[0].chars().nth(0).unwrap(); [INFO] [stdout] ... [INFO] [stdout] 254 | } [INFO] [stdout] 255 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:249:41 [INFO] [stdout] | [INFO] [stdout] 249 | let leading_stack = stack[0].chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `stack[0].chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/format.rs:283:24 [INFO] [stdout] | [INFO] [stdout] 283 | } else if BRACKETS_ARR.contains(&chr) { [INFO] [stdout] | ________________________^ [INFO] [stdout] 284 | | if chr == '(' || chr == '{' { [INFO] [stdout] 285 | | stack.insert(0, chr.to_string()); [INFO] [stdout] 286 | | } [INFO] [stdout] 287 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 283 ~ } else if BRACKETS_ARR.contains(&chr) [INFO] [stdout] 284 ~ && (chr == '(' || chr == '{') { [INFO] [stdout] 285 | stack.insert(0, chr.to_string()); [INFO] [stdout] 286 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:291:33 [INFO] [stdout] | [INFO] [stdout] 291 | let leading_stack = leading_stack_item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `leading_stack_item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:341:36 [INFO] [stdout] | [INFO] [stdout] 341 | let sign = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/format.rs:354:28 [INFO] [stdout] | [INFO] [stdout] 354 | if bracket_encountered == true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bracket_encountered` [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: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:392:32 [INFO] [stdout] | [INFO] [stdout] 392 | let sign = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:411:45 [INFO] [stdout] | [INFO] [stdout] 411 | let current_character = stack[j].chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `stack[j].chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `stack` [INFO] [stdout] --> src/format.rs:429:26 [INFO] [stdout] | [INFO] [stdout] 429 | for j in position..stack.len() { [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 [INFO] [stdout] | [INFO] [stdout] 429 - for j in position..stack.len() { [INFO] [stdout] 429 + for in stack.iter().skip(position) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:442:40 [INFO] [stdout] | [INFO] [stdout] 442 | if !BRACKETS_ARR.contains(&item.chars().nth(0).unwrap()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/basic_calculation.rs:111:5 [INFO] [stdout] | [INFO] [stdout] 111 | let answer: f64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 311 | answer = current_vector[0].eval(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `answer` here [INFO] [stdout] | [INFO] [stdout] 111 ~ [INFO] [stdout] 112 | //The variable that is the value of the vector at the start of each iteration of the [INFO] [stdout] ... [INFO] [stdout] 310 | //Making the answer variable equal to the value of the entire expression [INFO] [stdout] 311 ~ let answer: f64 = current_vector[0].eval(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/basic_calculation.rs:148:19 [INFO] [stdout] | [INFO] [stdout] 148 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/basic_calculation.rs:201:23 [INFO] [stdout] | [INFO] [stdout] 201 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/basic_calculation.rs:246:29 [INFO] [stdout] | [INFO] [stdout] 246 | ... let base: f64; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `base` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 246 ~ [INFO] [stdout] 247 | [INFO] [stdout] 248 ~ let base: f64 = if i == 1 { [INFO] [stdout] 249 ~ 10.0 [INFO] [stdout] 250 | } else { [INFO] [stdout] 251 ~ current_vector[i - 2].eval() [INFO] [stdout] 252 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/calculus.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | / if i > 0 { [INFO] [stdout] 47 | | if operator_order_vec[i - 1] == '*' && new_derivative.is_empty() { [INFO] [stdout] 48 | | product_rule_vec.push(vector.to_vec()); [INFO] [stdout] 49 | | product_rule_vec.push(differentiated.to_vec()); [INFO] [stdout] ... | [INFO] [stdout] 60 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 46 ~ if i > 0 [INFO] [stdout] 47 ~ && operator_order_vec[i - 1] == '*' && new_derivative.is_empty() { [INFO] [stdout] 48 | product_rule_vec.push(vector.to_vec()); [INFO] [stdout] ... [INFO] [stdout] 58 | continue; [INFO] [stdout] 59 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/calculus.rs:447:10 [INFO] [stdout] | [INFO] [stdout] 447 | for (i, vector) in product_rule_vec.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/calculus.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | / if i > 0 { [INFO] [stdout] 87 | | if operator_order_vec[i - 1] == '*' && new_derivative.is_empty() { [INFO] [stdout] 88 | | product_rule_vec.push(vector.to_vec()); [INFO] [stdout] 89 | | product_rule_vec.push(differentiated.to_vec()); [INFO] [stdout] ... | [INFO] [stdout] 99 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 86 ~ if i > 0 [INFO] [stdout] 87 ~ && operator_order_vec[i - 1] == '*' && new_derivative.is_empty() { [INFO] [stdout] 88 | product_rule_vec.push(vector.to_vec()); [INFO] [stdout] ... [INFO] [stdout] 97 | continue; [INFO] [stdout] 98 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `multiplier` is never read [INFO] [stdout] --> src/calculus.rs:440:31 [INFO] [stdout] | [INFO] [stdout] 440 | let mut multiplier: f64 = 0.0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `multiplier` is never read [INFO] [stdout] --> src/calculus.rs:452:9 [INFO] [stdout] | [INFO] [stdout] 452 | multiplier = 0.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/calculus.rs:116:19 [INFO] [stdout] | [INFO] [stdout] 116 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `exponent` is never read [INFO] [stdout] --> src/calculus.rs:441:29 [INFO] [stdout] | [INFO] [stdout] 441 | let mut exponent: f64 = 0.0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `exponent` is never read [INFO] [stdout] --> src/calculus.rs:453:9 [INFO] [stdout] | [INFO] [stdout] 453 | exponent = 0.0; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `new_multiplier` is never read [INFO] [stdout] --> src/calculus.rs:444:35 [INFO] [stdout] | [INFO] [stdout] 444 | let mut new_multiplier: f64 = 0.0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `new_exponent` is never read [INFO] [stdout] --> src/calculus.rs:445:33 [INFO] [stdout] | [INFO] [stdout] 445 | let mut new_exponent: f64 = 0.0; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/calculus.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | / if chr == '*' || chr == '/' { [INFO] [stdout] 141 | | if previous_item.parse::().is_ok() || previous_item == String::from(")") { [INFO] [stdout] 142 | | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] 143 | | if variable_encountered { [INFO] [stdout] ... | [INFO] [stdout] 154 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 140 ~ if (chr == '*' || chr == '/') { [INFO] [stdout] 141 ~ && (previous_item.parse::().is_ok() || previous_item == String::from(")")) { [INFO] [stdout] 142 | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] ... [INFO] [stdout] 152 | } [INFO] [stdout] 153 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `multiplied_derivative` is never read [INFO] [stdout] --> src/calculus.rs:535:5 [INFO] [stdout] | [INFO] [stdout] 535 | multiplied_derivative = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculus.rs:141:73 [INFO] [stdout] | [INFO] [stdout] 141 | if previous_item.parse::().is_ok() || previous_item == String::from(")") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `")"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `derivative` [INFO] [stdout] --> src/main.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | let derivative = calculus::calculate_derivative(expression_vec); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_derivative` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/calculus.rs:142:87 [INFO] [stdout] | [INFO] [stdout] 142 | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] | _______________________________________________________________________________________^ [INFO] [stdout] 143 | | if variable_encountered { [INFO] [stdout] 144 | | output_vec.push(chr); [INFO] [stdout] 145 | | variable_encountered = false; [INFO] [stdout] 146 | | } [INFO] [stdout] 147 | | } else { [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/calculus.rs:147:24 [INFO] [stdout] | [INFO] [stdout] 147 | } else { [INFO] [stdout] | ________________________^ [INFO] [stdout] 148 | | if variable_encountered { [INFO] [stdout] 149 | | output_vec.push(chr); [INFO] [stdout] 150 | | variable_encountered = false; [INFO] [stdout] 151 | | } [INFO] [stdout] 152 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculus.rs:142:69 [INFO] [stdout] | [INFO] [stdout] 142 | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `"("` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OPERATORS_ARR` is never used [INFO] [stdout] --> src/calculus.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const OPERATORS_ARR: [char; 5] = ['^', '*', '/', '+', '-']; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FUNCTIONS_ARR` is never used [INFO] [stdout] --> src/calculus.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const FUNCTIONS_ARR: [&str; 16] = ["log", "ln", "sin", "cos", "tan", "csc", "sec", "cot", "arcsin", "arccos", "arctan", "arccsc", "ar... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EULER` is never used [INFO] [stdout] --> src/calculus.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const EULER: f64 = std::f64::consts::E; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PI` is never used [INFO] [stdout] --> src/calculus.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const PI: f64 = std::f64::consts::PI; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/calculus.rs:166:19 [INFO] [stdout] | [INFO] [stdout] 166 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/calculus.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | / if chr == '*' || chr == '/' { [INFO] [stdout] 193 | | if previous_item.parse::().is_ok() || previous_item == String::from(")") { [INFO] [stdout] 194 | | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] 195 | | if variable_encountered { [INFO] [stdout] ... | [INFO] [stdout] 211 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 192 ~ if (chr == '*' || chr == '/') { [INFO] [stdout] 193 ~ && (previous_item.parse::().is_ok() || previous_item == String::from(")")) { [INFO] [stdout] 194 | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] ... [INFO] [stdout] 208 | } [INFO] [stdout] 209 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculus.rs:193:73 [INFO] [stdout] | [INFO] [stdout] 193 | if previous_item.parse::().is_ok() || previous_item == String::from(")") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `")"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/calculus.rs:194:87 [INFO] [stdout] | [INFO] [stdout] 194 | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] | _______________________________________________________________________________________^ [INFO] [stdout] 195 | | if variable_encountered { [INFO] [stdout] 196 | | output_vec.push(individual_variable_vec.to_vec()); [INFO] [stdout] 197 | | individual_variable_vec = Vec::new(); [INFO] [stdout] ... | [INFO] [stdout] 201 | | } else { [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/calculus.rs:201:24 [INFO] [stdout] | [INFO] [stdout] 201 | } else { [INFO] [stdout] | ________________________^ [INFO] [stdout] 202 | | if variable_encountered { [INFO] [stdout] 203 | | output_vec.push(individual_variable_vec.to_vec()); [INFO] [stdout] 204 | | individual_variable_vec = Vec::new(); [INFO] [stdout] ... | [INFO] [stdout] 208 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculus.rs:194:69 [INFO] [stdout] | [INFO] [stdout] 194 | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `"("` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/format.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | / if chr == ',' { [INFO] [stdout] 53 | | if !num.is_empty() { [INFO] [stdout] 54 | | output_vec.push(num); [INFO] [stdout] 55 | | num = String::new(); [INFO] [stdout] 56 | | } [INFO] [stdout] 57 | | } [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] 52 ~ if chr == ',' [INFO] [stdout] 53 ~ && !num.is_empty() { [INFO] [stdout] 54 | output_vec.push(num); [INFO] [stdout] 55 | num = String::new(); [INFO] [stdout] 56 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/calculus.rs:227:19 [INFO] [stdout] | [INFO] [stdout] 227 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/calculus.rs:258:26 [INFO] [stdout] | [INFO] [stdout] 258 | if chr == '^' && !previous_item.parse::().is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `previous_item.parse::().is_err()` [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/calculus.rs:262:26 [INFO] [stdout] | [INFO] [stdout] 262 | if chr == '*' && !next_item.parse::().is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `next_item.parse::().is_err()` [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: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/calculus.rs:243:19 [INFO] [stdout] | [INFO] [stdout] 243 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/calculus.rs:307:26 [INFO] [stdout] | [INFO] [stdout] 307 | if chr == '^' && !previous_item.parse::().is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `previous_item.parse::().is_err()` [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: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/calculus.rs:290:19 [INFO] [stdout] | [INFO] [stdout] 290 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/format.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | / if i == 0 || OPERATORS_ARR.contains(&previous_chr) || BRACKETS_ARR.contains(&previous_chr) { [INFO] [stdout] 140 | | if !(previous_chr == ')' || previous_chr == '}') { [INFO] [stdout] 141 | | num.push(chr); [INFO] [stdout] ... | [INFO] [stdout] 145 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 139 ~ if (i == 0 || OPERATORS_ARR.contains(&previous_chr) || BRACKETS_ARR.contains(&previous_chr)) { [INFO] [stdout] 140 ~ && !(previous_chr == ')' || previous_chr == '}') { [INFO] [stdout] 141 | num.push(chr); [INFO] [stdout] 142 | //Continues, so that any further changes do not occur at this index [INFO] [stdout] 143 | continue; [INFO] [stdout] 144 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/format.rs:149:30 [INFO] [stdout] | [INFO] [stdout] 149 | if chr == '*' && &next_chr == &chr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 149 - if chr == '*' && &next_chr == &chr { [INFO] [stdout] 149 + if chr == '*' && next_chr == chr { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> src/format.rs:154:32 [INFO] [stdout] | [INFO] [stdout] 154 | } else if i > 0 && &previous_chr == &chr && chr == '*' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 154 - } else if i > 0 && &previous_chr == &chr && chr == '*' { [INFO] [stdout] 154 + } else if i > 0 && previous_chr == chr && chr == '*' { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/format.rs:169:17 [INFO] [stdout] | [INFO] [stdout] 169 | / if i > 0 { [INFO] [stdout] 170 | | if previous_chr == ')' || previous_chr.is_numeric() || previous_chr.is_alphabetic() { [INFO] [stdout] ... | [INFO] [stdout] 175 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 169 ~ if i > 0 [INFO] [stdout] 170 ~ && (previous_chr == ')' || previous_chr.is_numeric() || previous_chr.is_alphabetic()) { [INFO] [stdout] 171 | //Push a multiplication sign to the output vector, as this is an [INFO] [stdout] 172 | //implied multiplication [INFO] [stdout] 173 | output_vec.push(String::from("*")); [INFO] [stdout] 174 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/calculus.rs:379:67 [INFO] [stdout] | [INFO] [stdout] 379 | if multiplier_vec[i] > 1.0 || multiplier_vec[i] < 1.0 { [INFO] [stdout] | ___________________________________________________________________^ [INFO] [stdout] 380 | | simplified_vector.push(multiplier_vec[i].to_string()); [INFO] [stdout] 381 | | } else if new_exponents_vec[i] == 0.0 && multiplier_vec[i] == 1.0 { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/calculus.rs:381:79 [INFO] [stdout] | [INFO] [stdout] 381 | } else if new_exponents_vec[i] == 0.0 && multiplier_vec[i] == 1.0 { [INFO] [stdout] | _______________________________________________________________________________^ [INFO] [stdout] 382 | | simplified_vector.push(multiplier_vec[i].to_string()); [INFO] [stdout] 383 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:379:16 [INFO] [stdout] | [INFO] [stdout] 379 | if multiplier_vec[i] > 1.0 || multiplier_vec[i] < 1.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `multiplier_vec[i] != 1.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] = note: `#[warn(clippy::double_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:244:19 [INFO] [stdout] | [INFO] [stdout] 244 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:388:23 [INFO] [stdout] | [INFO] [stdout] 388 | } else if exponents_vec[i] > 0.0 || exponents_vec[i] < 0.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `exponents_vec[i] != 0.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/format.rs:247:13 [INFO] [stdout] | [INFO] [stdout] 247 | / if i > 0 { [INFO] [stdout] 248 | | if expression_vec[i - 1].parse::().is_ok() { [INFO] [stdout] 249 | | let leading_stack = stack[0].chars().nth(0).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 256 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 247 ~ if i > 0 [INFO] [stdout] 248 ~ && expression_vec[i - 1].parse::().is_ok() { [INFO] [stdout] 249 | let leading_stack = stack[0].chars().nth(0).unwrap(); [INFO] [stdout] ... [INFO] [stdout] 254 | } [INFO] [stdout] 255 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:249:41 [INFO] [stdout] | [INFO] [stdout] 249 | let leading_stack = stack[0].chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `stack[0].chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/format.rs:283:24 [INFO] [stdout] | [INFO] [stdout] 283 | } else if BRACKETS_ARR.contains(&chr) { [INFO] [stdout] | ________________________^ [INFO] [stdout] 284 | | if chr == '(' || chr == '{' { [INFO] [stdout] 285 | | stack.insert(0, chr.to_string()); [INFO] [stdout] 286 | | } [INFO] [stdout] 287 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 283 ~ } else if BRACKETS_ARR.contains(&chr) [INFO] [stdout] 284 ~ && (chr == '(' || chr == '{') { [INFO] [stdout] 285 | stack.insert(0, chr.to_string()); [INFO] [stdout] 286 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:291:33 [INFO] [stdout] | [INFO] [stdout] 291 | let leading_stack = leading_stack_item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `leading_stack_item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/calculus.rs:419:57 [INFO] [stdout] | [INFO] [stdout] 419 | if new_multiplier > 1.0 || new_multiplier < 1.0 { [INFO] [stdout] | _________________________________________________________^ [INFO] [stdout] 420 | | differentiated.push(new_multiplier.to_string()); [INFO] [stdout] 421 | | } else if new_exponent == 0.0 && new_multiplier == 1.0 { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/calculus.rs:421:64 [INFO] [stdout] | [INFO] [stdout] 421 | } else if new_exponent == 0.0 && new_multiplier == 1.0 { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 422 | | differentiated.push(new_multiplier.to_string()); [INFO] [stdout] 423 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:419:12 [INFO] [stdout] | [INFO] [stdout] 419 | if new_multiplier > 1.0 || new_multiplier < 1.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_multiplier != 1.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:428:19 [INFO] [stdout] | [INFO] [stdout] 428 | } else if new_exponent > 0.0 || new_exponent < 0.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_exponent != 0.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:341:36 [INFO] [stdout] | [INFO] [stdout] 341 | let sign = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/format.rs:354:28 [INFO] [stdout] | [INFO] [stdout] 354 | if bracket_encountered == true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bracket_encountered` [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: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:392:32 [INFO] [stdout] | [INFO] [stdout] 392 | let sign = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/calculus.rs:476:57 [INFO] [stdout] | [INFO] [stdout] 476 | if new_multiplier > 1.0 || new_multiplier < 1.0 { [INFO] [stdout] | _________________________________________________________^ [INFO] [stdout] 477 | | multiplied_derivative.push(new_multiplier.to_string()); [INFO] [stdout] 478 | | } else if new_exponent == 0.0 && new_multiplier == 1.0 { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/calculus.rs:478:64 [INFO] [stdout] | [INFO] [stdout] 478 | } else if new_exponent == 0.0 && new_multiplier == 1.0 { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 479 | | multiplied_derivative.push(new_multiplier.to_string()); [INFO] [stdout] 480 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:476:12 [INFO] [stdout] | [INFO] [stdout] 476 | if new_multiplier > 1.0 || new_multiplier < 1.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_multiplier != 1.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:411:45 [INFO] [stdout] | [INFO] [stdout] 411 | let current_character = stack[j].chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `stack[j].chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:485:19 [INFO] [stdout] | [INFO] [stdout] 485 | } else if new_exponent > 0.0 || new_exponent < 0.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_exponent != 0.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `stack` [INFO] [stdout] --> src/format.rs:429:26 [INFO] [stdout] | [INFO] [stdout] 429 | for j in position..stack.len() { [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 [INFO] [stdout] | [INFO] [stdout] 429 - for j in position..stack.len() { [INFO] [stdout] 429 + for in stack.iter().skip(position) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/format.rs:442:40 [INFO] [stdout] | [INFO] [stdout] 442 | if !BRACKETS_ARR.contains(&item.chars().nth(0).unwrap()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/calculus.rs:512:57 [INFO] [stdout] | [INFO] [stdout] 512 | if new_multiplier > 1.0 || new_multiplier < 1.0 { [INFO] [stdout] | _________________________________________________________^ [INFO] [stdout] 513 | | multiplied_derivative.push(new_multiplier.to_string()); [INFO] [stdout] 514 | | } else if new_exponent == 0.0 && new_multiplier == 1.0 { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/calculus.rs:514:64 [INFO] [stdout] | [INFO] [stdout] 514 | } else if new_exponent == 0.0 && new_multiplier == 1.0 { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 515 | | multiplied_derivative.push(new_multiplier.to_string()); [INFO] [stdout] 516 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:512:12 [INFO] [stdout] | [INFO] [stdout] 512 | if new_multiplier > 1.0 || new_multiplier < 1.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_multiplier != 1.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:521:19 [INFO] [stdout] | [INFO] [stdout] 521 | } else if new_exponent > 0.0 || new_exponent < 0.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_exponent != 0.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/basic_calculation.rs:111:5 [INFO] [stdout] | [INFO] [stdout] 111 | let answer: f64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 311 | answer = current_vector[0].eval(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `answer` here [INFO] [stdout] | [INFO] [stdout] 111 ~ [INFO] [stdout] 112 | //The variable that is the value of the vector at the start of each iteration of the [INFO] [stdout] ... [INFO] [stdout] 310 | //Making the answer variable equal to the value of the entire expression [INFO] [stdout] 311 ~ let answer: f64 = current_vector[0].eval(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/basic_calculation.rs:148:19 [INFO] [stdout] | [INFO] [stdout] 148 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/basic_calculation.rs:201:23 [INFO] [stdout] | [INFO] [stdout] 201 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/basic_calculation.rs:246:29 [INFO] [stdout] | [INFO] [stdout] 246 | ... let base: f64; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `base` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 246 ~ [INFO] [stdout] 247 | [INFO] [stdout] 248 ~ let base: f64 = if i == 1 { [INFO] [stdout] 249 ~ 10.0 [INFO] [stdout] 250 | } else { [INFO] [stdout] 251 ~ current_vector[i - 2].eval() [INFO] [stdout] 252 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/calculus.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | / if i > 0 { [INFO] [stdout] 47 | | if operator_order_vec[i - 1] == '*' && new_derivative.is_empty() { [INFO] [stdout] 48 | | product_rule_vec.push(vector.to_vec()); [INFO] [stdout] 49 | | product_rule_vec.push(differentiated.to_vec()); [INFO] [stdout] ... | [INFO] [stdout] 60 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 46 ~ if i > 0 [INFO] [stdout] 47 ~ && operator_order_vec[i - 1] == '*' && new_derivative.is_empty() { [INFO] [stdout] 48 | product_rule_vec.push(vector.to_vec()); [INFO] [stdout] ... [INFO] [stdout] 58 | continue; [INFO] [stdout] 59 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/calculus.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | / if i > 0 { [INFO] [stdout] 87 | | if operator_order_vec[i - 1] == '*' && new_derivative.is_empty() { [INFO] [stdout] 88 | | product_rule_vec.push(vector.to_vec()); [INFO] [stdout] 89 | | product_rule_vec.push(differentiated.to_vec()); [INFO] [stdout] ... | [INFO] [stdout] 99 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 86 ~ if i > 0 [INFO] [stdout] 87 ~ && operator_order_vec[i - 1] == '*' && new_derivative.is_empty() { [INFO] [stdout] 88 | product_rule_vec.push(vector.to_vec()); [INFO] [stdout] ... [INFO] [stdout] 97 | continue; [INFO] [stdout] 98 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/calculus.rs:116:19 [INFO] [stdout] | [INFO] [stdout] 116 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/calculus.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | / if chr == '*' || chr == '/' { [INFO] [stdout] 141 | | if previous_item.parse::().is_ok() || previous_item == String::from(")") { [INFO] [stdout] 142 | | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] 143 | | if variable_encountered { [INFO] [stdout] ... | [INFO] [stdout] 154 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 140 ~ if (chr == '*' || chr == '/') { [INFO] [stdout] 141 ~ && (previous_item.parse::().is_ok() || previous_item == String::from(")")) { [INFO] [stdout] 142 | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] ... [INFO] [stdout] 152 | } [INFO] [stdout] 153 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculus.rs:141:73 [INFO] [stdout] | [INFO] [stdout] 141 | if previous_item.parse::().is_ok() || previous_item == String::from(")") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `")"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/calculus.rs:142:87 [INFO] [stdout] | [INFO] [stdout] 142 | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] | _______________________________________________________________________________________^ [INFO] [stdout] 143 | | if variable_encountered { [INFO] [stdout] 144 | | output_vec.push(chr); [INFO] [stdout] 145 | | variable_encountered = false; [INFO] [stdout] 146 | | } [INFO] [stdout] 147 | | } else { [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/calculus.rs:147:24 [INFO] [stdout] | [INFO] [stdout] 147 | } else { [INFO] [stdout] | ________________________^ [INFO] [stdout] 148 | | if variable_encountered { [INFO] [stdout] 149 | | output_vec.push(chr); [INFO] [stdout] 150 | | variable_encountered = false; [INFO] [stdout] 151 | | } [INFO] [stdout] 152 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculus.rs:142:69 [INFO] [stdout] | [INFO] [stdout] 142 | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `"("` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/calculus.rs:166:19 [INFO] [stdout] | [INFO] [stdout] 166 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/calculus.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | / if chr == '*' || chr == '/' { [INFO] [stdout] 193 | | if previous_item.parse::().is_ok() || previous_item == String::from(")") { [INFO] [stdout] 194 | | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] 195 | | if variable_encountered { [INFO] [stdout] ... | [INFO] [stdout] 211 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 192 ~ if (chr == '*' || chr == '/') { [INFO] [stdout] 193 ~ && (previous_item.parse::().is_ok() || previous_item == String::from(")")) { [INFO] [stdout] 194 | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] ... [INFO] [stdout] 208 | } [INFO] [stdout] 209 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculus.rs:193:73 [INFO] [stdout] | [INFO] [stdout] 193 | if previous_item.parse::().is_ok() || previous_item == String::from(")") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `")"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/calculus.rs:194:87 [INFO] [stdout] | [INFO] [stdout] 194 | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] | _______________________________________________________________________________________^ [INFO] [stdout] 195 | | if variable_encountered { [INFO] [stdout] 196 | | output_vec.push(individual_variable_vec.to_vec()); [INFO] [stdout] 197 | | individual_variable_vec = Vec::new(); [INFO] [stdout] ... | [INFO] [stdout] 201 | | } else { [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/calculus.rs:201:24 [INFO] [stdout] | [INFO] [stdout] 201 | } else { [INFO] [stdout] | ________________________^ [INFO] [stdout] 202 | | if variable_encountered { [INFO] [stdout] 203 | | output_vec.push(individual_variable_vec.to_vec()); [INFO] [stdout] 204 | | individual_variable_vec = Vec::new(); [INFO] [stdout] ... | [INFO] [stdout] 208 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculus.rs:194:69 [INFO] [stdout] | [INFO] [stdout] 194 | if next_item.parse::().is_ok() || next_item == String::from("(") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `"("` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/calculus.rs:227:19 [INFO] [stdout] | [INFO] [stdout] 227 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/calculus.rs:258:26 [INFO] [stdout] | [INFO] [stdout] 258 | if chr == '^' && !previous_item.parse::().is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `previous_item.parse::().is_err()` [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/calculus.rs:262:26 [INFO] [stdout] | [INFO] [stdout] 262 | if chr == '*' && !next_item.parse::().is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `next_item.parse::().is_err()` [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: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/calculus.rs:243:19 [INFO] [stdout] | [INFO] [stdout] 243 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/calculus.rs:307:26 [INFO] [stdout] | [INFO] [stdout] 307 | if chr == '^' && !previous_item.parse::().is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `previous_item.parse::().is_err()` [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: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/calculus.rs:290:19 [INFO] [stdout] | [INFO] [stdout] 290 | let chr = item.chars().nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `item.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/calculus.rs:379:67 [INFO] [stdout] | [INFO] [stdout] 379 | if multiplier_vec[i] > 1.0 || multiplier_vec[i] < 1.0 { [INFO] [stdout] | ___________________________________________________________________^ [INFO] [stdout] 380 | | simplified_vector.push(multiplier_vec[i].to_string()); [INFO] [stdout] 381 | | } else if new_exponents_vec[i] == 0.0 && multiplier_vec[i] == 1.0 { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/calculus.rs:381:79 [INFO] [stdout] | [INFO] [stdout] 381 | } else if new_exponents_vec[i] == 0.0 && multiplier_vec[i] == 1.0 { [INFO] [stdout] | _______________________________________________________________________________^ [INFO] [stdout] 382 | | simplified_vector.push(multiplier_vec[i].to_string()); [INFO] [stdout] 383 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:379:16 [INFO] [stdout] | [INFO] [stdout] 379 | if multiplier_vec[i] > 1.0 || multiplier_vec[i] < 1.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `multiplier_vec[i] != 1.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] = note: `#[warn(clippy::double_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:388:23 [INFO] [stdout] | [INFO] [stdout] 388 | } else if exponents_vec[i] > 0.0 || exponents_vec[i] < 0.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `exponents_vec[i] != 0.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/calculus.rs:419:57 [INFO] [stdout] | [INFO] [stdout] 419 | if new_multiplier > 1.0 || new_multiplier < 1.0 { [INFO] [stdout] | _________________________________________________________^ [INFO] [stdout] 420 | | differentiated.push(new_multiplier.to_string()); [INFO] [stdout] 421 | | } else if new_exponent == 0.0 && new_multiplier == 1.0 { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/calculus.rs:421:64 [INFO] [stdout] | [INFO] [stdout] 421 | } else if new_exponent == 0.0 && new_multiplier == 1.0 { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 422 | | differentiated.push(new_multiplier.to_string()); [INFO] [stdout] 423 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:419:12 [INFO] [stdout] | [INFO] [stdout] 419 | if new_multiplier > 1.0 || new_multiplier < 1.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_multiplier != 1.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:428:19 [INFO] [stdout] | [INFO] [stdout] 428 | } else if new_exponent > 0.0 || new_exponent < 0.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_exponent != 0.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/calculus.rs:476:57 [INFO] [stdout] | [INFO] [stdout] 476 | if new_multiplier > 1.0 || new_multiplier < 1.0 { [INFO] [stdout] | _________________________________________________________^ [INFO] [stdout] 477 | | multiplied_derivative.push(new_multiplier.to_string()); [INFO] [stdout] 478 | | } else if new_exponent == 0.0 && new_multiplier == 1.0 { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/calculus.rs:478:64 [INFO] [stdout] | [INFO] [stdout] 478 | } else if new_exponent == 0.0 && new_multiplier == 1.0 { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 479 | | multiplied_derivative.push(new_multiplier.to_string()); [INFO] [stdout] 480 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:476:12 [INFO] [stdout] | [INFO] [stdout] 476 | if new_multiplier > 1.0 || new_multiplier < 1.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_multiplier != 1.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:485:19 [INFO] [stdout] | [INFO] [stdout] 485 | } else if new_exponent > 0.0 || new_exponent < 0.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_exponent != 0.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/calculus.rs:512:57 [INFO] [stdout] | [INFO] [stdout] 512 | if new_multiplier > 1.0 || new_multiplier < 1.0 { [INFO] [stdout] | _________________________________________________________^ [INFO] [stdout] 513 | | multiplied_derivative.push(new_multiplier.to_string()); [INFO] [stdout] 514 | | } else if new_exponent == 0.0 && new_multiplier == 1.0 { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/calculus.rs:514:64 [INFO] [stdout] | [INFO] [stdout] 514 | } else if new_exponent == 0.0 && new_multiplier == 1.0 { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 515 | | multiplied_derivative.push(new_multiplier.to_string()); [INFO] [stdout] 516 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:512:12 [INFO] [stdout] | [INFO] [stdout] 512 | if new_multiplier > 1.0 || new_multiplier < 1.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_multiplier != 1.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/calculus.rs:521:19 [INFO] [stdout] | [INFO] [stdout] 521 | } else if new_exponent > 0.0 || new_exponent < 0.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_exponent != 0.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.39s [INFO] running `Command { std: "docker" "inspect" "0b415bb88e4d3b9caa0049972491d0e0cb89abbd72b29f71b675affdced7ca41", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0b415bb88e4d3b9caa0049972491d0e0cb89abbd72b29f71b675affdced7ca41", kill_on_drop: false }` [INFO] [stdout] 0b415bb88e4d3b9caa0049972491d0e0cb89abbd72b29f71b675affdced7ca41