[INFO] cloning repository https://github.com/Jaquiez/what-the-shell [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Jaquiez/what-the-shell" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJaquiez%2Fwhat-the-shell", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJaquiez%2Fwhat-the-shell'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 413808b7165ef175f749ebe624296a81a92ce080 [INFO] linting Jaquiez/what-the-shell against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJaquiez%2Fwhat-the-shell" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Jaquiez/what-the-shell [INFO] finished tweaking git repo https://github.com/Jaquiez/what-the-shell [INFO] tweaked toml for git repo https://github.com/Jaquiez/what-the-shell written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Jaquiez/what-the-shell 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/Jaquiez/what-the-shell 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] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] ca433fe302e9f79031627bb242759c2233e94daaa407738b3a19da92a310e53f [INFO] running `Command { std: "docker" "start" "-a" "ca433fe302e9f79031627bb242759c2233e94daaa407738b3a19da92a310e53f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ca433fe302e9f79031627bb242759c2233e94daaa407738b3a19da92a310e53f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ca433fe302e9f79031627bb242759c2233e94daaa407738b3a19da92a310e53f", kill_on_drop: false }` [INFO] [stdout] ca433fe302e9f79031627bb242759c2233e94daaa407738b3a19da92a310e53f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 79db862f10fe322329f18045ac80f2eff4b9d5606edaa7d04a3baaccad0e8091 [INFO] running `Command { std: "docker" "start" "-a" "79db862f10fe322329f18045ac80f2eff4b9d5606edaa7d04a3baaccad0e8091", kill_on_drop: false }` [INFO] [stderr] Checking what-the-shell v1.0.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/interpreter.rs:306:25 [INFO] [stdout] | [INFO] [stdout] 306 | let mut proc: Result; [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: variable does not need to be mutable [INFO] [stdout] --> src/interpreter.rs:306:25 [INFO] [stdout] | [INFO] [stdout] 306 | let mut proc: Result; [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: name `AST` contains a capitalized acronym [INFO] [stdout] --> src/ast.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct AST { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Ast` [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 `AST` contains a capitalized acronym [INFO] [stdout] --> src/ast.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct AST { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Ast` [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: called `unwrap` on `proc` after checking its variant with `is_ok` [INFO] [stdout] --> src/interpreter.rs:46:33 [INFO] [stdout] | [INFO] [stdout] 45 | if proc.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = proc` [INFO] [stdout] 46 | let child = proc.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] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | return out; [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] 63 - return out; [INFO] [stdout] 63 + out [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/interpreter.rs:55:40 [INFO] [stdout] | [INFO] [stdout] 55 | cmd.val.clone().to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `proc` after checking its variant with `is_ok` [INFO] [stdout] --> src/interpreter.rs:77:37 [INFO] [stdout] | [INFO] [stdout] 76 | if proc.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = proc` [INFO] [stdout] 77 | let mut child = proc.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/interpreter.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | return out; [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] 99 - return out; [INFO] [stdout] 99 + out [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `proc` after checking its variant with `is_ok` [INFO] [stdout] --> src/interpreter.rs:46:33 [INFO] [stdout] | [INFO] [stdout] 45 | if proc.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = proc` [INFO] [stdout] 46 | let child = proc.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] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | return out; [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] 63 - return out; [INFO] [stdout] 63 + out [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/interpreter.rs:93:40 [INFO] [stdout] | [INFO] [stdout] 93 | cmd.val.clone().to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `path` after checking its variant with `is_ok` [INFO] [stdout] --> src/interpreter.rs:119:24 [INFO] [stdout] | [INFO] [stdout] 118 | if path.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = path` [INFO] [stdout] 119 | let meta = path.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: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/interpreter.rs:55:40 [INFO] [stdout] | [INFO] [stdout] 55 | cmd.val.clone().to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `file` after checking its variant with `is_ok` [INFO] [stdout] --> src/interpreter.rs:136:17 [INFO] [stdout] | [INFO] [stdout] 135 | if file.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = file` [INFO] [stdout] 136 | file.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/interpreter.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | return None; [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] 143 - return None; [INFO] [stdout] 143 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `proc` after checking its variant with `is_ok` [INFO] [stdout] --> src/interpreter.rs:77:37 [INFO] [stdout] | [INFO] [stdout] 76 | if proc.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = proc` [INFO] [stdout] 77 | let mut child = proc.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/interpreter.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | return out; [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] 99 - return out; [INFO] [stdout] 99 + out [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/interpreter.rs:93:40 [INFO] [stdout] | [INFO] [stdout] 93 | cmd.val.clone().to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `path` after checking its variant with `is_ok` [INFO] [stdout] --> src/interpreter.rs:119:24 [INFO] [stdout] | [INFO] [stdout] 118 | if path.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = path` [INFO] [stdout] 119 | let meta = path.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 `file` after checking its variant with `is_ok` [INFO] [stdout] --> src/interpreter.rs:136:17 [INFO] [stdout] | [INFO] [stdout] 135 | if file.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = file` [INFO] [stdout] 136 | file.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/interpreter.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | return None; [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] 143 - return None; [INFO] [stdout] 143 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | / return Some(Value { [INFO] [stdout] 160 | | sym: Symbol::String, [INFO] [stdout] 161 | | val: out_string, [INFO] [stdout] 162 | | flags: Vec::new(), [INFO] [stdout] 163 | | args: Vec::new(), [INFO] [stdout] 164 | | }); [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] 159 ~ Some(Value { [INFO] [stdout] 160 + sym: Symbol::String, [INFO] [stdout] 161 + val: out_string, [INFO] [stdout] 162 + flags: Vec::new(), [INFO] [stdout] 163 + args: Vec::new(), [INFO] [stdout] 164 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `path` after checking its variant with `is_ok` [INFO] [stdout] --> src/interpreter.rs:180:24 [INFO] [stdout] | [INFO] [stdout] 179 | if path.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = path` [INFO] [stdout] 180 | let meta = path.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/interpreter.rs:202:9 [INFO] [stdout] | [INFO] [stdout] 202 | return None; [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] 202 - return None; [INFO] [stdout] 202 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | / return Some(Value { [INFO] [stdout] 160 | | sym: Symbol::String, [INFO] [stdout] 161 | | val: out_string, [INFO] [stdout] 162 | | flags: Vec::new(), [INFO] [stdout] 163 | | args: Vec::new(), [INFO] [stdout] 164 | | }); [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] 159 ~ Some(Value { [INFO] [stdout] 160 + sym: Symbol::String, [INFO] [stdout] 161 + val: out_string, [INFO] [stdout] 162 + flags: Vec::new(), [INFO] [stdout] 163 + args: Vec::new(), [INFO] [stdout] 164 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `path` after checking its variant with `is_ok` [INFO] [stdout] --> src/interpreter.rs:180:24 [INFO] [stdout] | [INFO] [stdout] 179 | if path.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = path` [INFO] [stdout] 180 | let meta = path.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/interpreter.rs:202:9 [INFO] [stdout] | [INFO] [stdout] 202 | return None; [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] 202 - return None; [INFO] [stdout] 202 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 230 | / return Some(Value { [INFO] [stdout] 231 | | sym: Symbol::String, [INFO] [stdout] 232 | | val: out_string, [INFO] [stdout] 233 | | flags: Vec::new(), [INFO] [stdout] 234 | | args: Vec::new(), [INFO] [stdout] 235 | | }); [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] 230 ~ Some(Value { [INFO] [stdout] 231 + sym: Symbol::String, [INFO] [stdout] 232 + val: out_string, [INFO] [stdout] 233 + flags: Vec::new(), [INFO] [stdout] 234 + args: Vec::new(), [INFO] [stdout] 235 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `proc` after checking its variant with `is_ok` [INFO] [stdout] --> src/interpreter.rs:325:37 [INFO] [stdout] | [INFO] [stdout] 324 | if proc.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = proc` [INFO] [stdout] 325 | let child = proc.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/interpreter.rs:346:9 [INFO] [stdout] | [INFO] [stdout] 346 | return None; [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] 346 - return None; [INFO] [stdout] 346 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/interpreter.rs:242:25 [INFO] [stdout] | [INFO] [stdout] 242 | / if expr.left.is_none() { [INFO] [stdout] 243 | | return None; [INFO] [stdout] 244 | | } [INFO] [stdout] | |_________________________^ help: replace it with: `expr.left.as_ref()?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 230 | / return Some(Value { [INFO] [stdout] 231 | | sym: Symbol::String, [INFO] [stdout] 232 | | val: out_string, [INFO] [stdout] 233 | | flags: Vec::new(), [INFO] [stdout] 234 | | args: Vec::new(), [INFO] [stdout] 235 | | }); [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] 230 ~ Some(Value { [INFO] [stdout] 231 + sym: Symbol::String, [INFO] [stdout] 232 + val: out_string, [INFO] [stdout] 233 + flags: Vec::new(), [INFO] [stdout] 234 + args: Vec::new(), [INFO] [stdout] 235 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/interpreter.rs:245:25 [INFO] [stdout] | [INFO] [stdout] 245 | let astleft; [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] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `astleft` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 245 ~ [INFO] [stdout] 246 ~ let astleft = if exec_type == ExecType::DelayExec { [INFO] [stdout] 247 ~ self.interpret_program(expr.left.as_ref().unwrap(), exec_type) [INFO] [stdout] 248 | } else { [INFO] [stdout] 249 ~ self.interpret_program(expr.left.as_ref().unwrap(), exec_type) [INFO] [stdout] 250 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/interpreter.rs:246:61 [INFO] [stdout] | [INFO] [stdout] 246 | if exec_type == ExecType::DelayExec { [INFO] [stdout] | _____________________________________________________________^ [INFO] [stdout] 247 | | astleft = [INFO] [stdout] 248 | | self.interpret_program(expr.left.as_ref().unwrap(), exec_type); [INFO] [stdout] 249 | | } else { [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/interpreter.rs:249:32 [INFO] [stdout] | [INFO] [stdout] 249 | } else { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 250 | | astleft = [INFO] [stdout] 251 | | self.interpret_program(expr.left.as_ref().unwrap(), exec_type); [INFO] [stdout] 252 | | } [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 block may be rewritten with the `?` operator [INFO] [stdout] --> src/interpreter.rs:253:25 [INFO] [stdout] | [INFO] [stdout] 253 | / if astleft.is_none() { [INFO] [stdout] 254 | | return None; [INFO] [stdout] 255 | | } [INFO] [stdout] | |_________________________^ help: replace it with: `astleft.as_ref()?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/interpreter.rs:258:32 [INFO] [stdout] | [INFO] [stdout] 258 | ... if left.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!left.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: length comparison to zero [INFO] [stdout] --> src/interpreter.rs:266:35 [INFO] [stdout] | [INFO] [stdout] 266 | } else if left.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!left.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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `proc` after checking its variant with `is_ok` [INFO] [stdout] --> src/interpreter.rs:325:37 [INFO] [stdout] | [INFO] [stdout] 324 | if proc.is_ok() { [INFO] [stdout] | --------------- help: try: `if let Ok() = proc` [INFO] [stdout] 325 | let child = proc.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/interpreter.rs:346:9 [INFO] [stdout] | [INFO] [stdout] 346 | return None; [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] 346 - return None; [INFO] [stdout] 346 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/interpreter.rs:242:25 [INFO] [stdout] | [INFO] [stdout] 242 | / if expr.left.is_none() { [INFO] [stdout] 243 | | return None; [INFO] [stdout] 244 | | } [INFO] [stdout] | |_________________________^ help: replace it with: `expr.left.as_ref()?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/interpreter.rs:245:25 [INFO] [stdout] | [INFO] [stdout] 245 | let astleft; [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] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `astleft` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 245 ~ [INFO] [stdout] 246 ~ let astleft = if exec_type == ExecType::DelayExec { [INFO] [stdout] 247 ~ self.interpret_program(expr.left.as_ref().unwrap(), exec_type) [INFO] [stdout] 248 | } else { [INFO] [stdout] 249 ~ self.interpret_program(expr.left.as_ref().unwrap(), exec_type) [INFO] [stdout] 250 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/interpreter.rs:246:61 [INFO] [stdout] | [INFO] [stdout] 246 | if exec_type == ExecType::DelayExec { [INFO] [stdout] | _____________________________________________________________^ [INFO] [stdout] 247 | | astleft = [INFO] [stdout] 248 | | self.interpret_program(expr.left.as_ref().unwrap(), exec_type); [INFO] [stdout] 249 | | } else { [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/interpreter.rs:249:32 [INFO] [stdout] | [INFO] [stdout] 249 | } else { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 250 | | astleft = [INFO] [stdout] 251 | | self.interpret_program(expr.left.as_ref().unwrap(), exec_type); [INFO] [stdout] 252 | | } [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 block may be rewritten with the `?` operator [INFO] [stdout] --> src/interpreter.rs:253:25 [INFO] [stdout] | [INFO] [stdout] 253 | / if astleft.is_none() { [INFO] [stdout] 254 | | return None; [INFO] [stdout] 255 | | } [INFO] [stdout] | |_________________________^ help: replace it with: `astleft.as_ref()?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/interpreter.rs:258:32 [INFO] [stdout] | [INFO] [stdout] 258 | ... if left.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!left.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: length comparison to zero [INFO] [stdout] --> src/interpreter.rs:266:35 [INFO] [stdout] | [INFO] [stdout] 266 | } else if left.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!left.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:356:9 [INFO] [stdout] | [INFO] [stdout] 356 | return Some(output); [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] 356 - return Some(output); [INFO] [stdout] 356 + Some(output) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/interpreter.rs:352:16 [INFO] [stdout] | [INFO] [stdout] 352 | if !out_cur.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `out_cur.is_some()` [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: called `unwrap` on `out_cur` after checking its variant with `is_none` [INFO] [stdout] --> src/interpreter.rs:353:29 [INFO] [stdout] | [INFO] [stdout] 352 | if !out_cur.is_none() { [INFO] [stdout] | ----------------- the check is happening here [INFO] [stdout] 353 | output.push(out_cur.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: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:98:57 [INFO] [stdout] | [INFO] [stdout] 98 | if ast.exprs[counter].left.is_none() || !ast.exprs[counter].right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ast.exprs[counter].right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:109:57 [INFO] [stdout] | [INFO] [stdout] 109 | if ast.exprs[counter].left.is_none() || !ast.exprs[counter].right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ast.exprs[counter].right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:120:57 [INFO] [stdout] | [INFO] [stdout] 120 | if ast.exprs[counter].left.is_none() || !ast.exprs[counter].right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ast.exprs[counter].right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:131:57 [INFO] [stdout] | [INFO] [stdout] 131 | if ast.exprs[counter].left.is_none() || !ast.exprs[counter].right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ast.exprs[counter].right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:142:57 [INFO] [stdout] | [INFO] [stdout] 142 | if ast.exprs[counter].left.is_none() || !ast.exprs[counter].right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ast.exprs[counter].right.is_some()` [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: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:232:5 [INFO] [stdout] | [INFO] [stdout] 232 | return Some(ast); [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] 232 - return Some(ast); [INFO] [stdout] 232 + Some(ast) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | while toks.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!toks.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:356:9 [INFO] [stdout] | [INFO] [stdout] 356 | return Some(output); [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] 356 - return Some(output); [INFO] [stdout] 356 + Some(output) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/interpreter.rs:352:16 [INFO] [stdout] | [INFO] [stdout] 352 | if !out_cur.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `out_cur.is_some()` [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: called `unwrap` on `out_cur` after checking its variant with `is_none` [INFO] [stdout] --> src/interpreter.rs:353:29 [INFO] [stdout] | [INFO] [stdout] 352 | if !out_cur.is_none() { [INFO] [stdout] | ----------------- the check is happening here [INFO] [stdout] 353 | output.push(out_cur.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: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:98:57 [INFO] [stdout] | [INFO] [stdout] 98 | if ast.exprs[counter].left.is_none() || !ast.exprs[counter].right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ast.exprs[counter].right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:109:57 [INFO] [stdout] | [INFO] [stdout] 109 | if ast.exprs[counter].left.is_none() || !ast.exprs[counter].right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ast.exprs[counter].right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:120:57 [INFO] [stdout] | [INFO] [stdout] 120 | if ast.exprs[counter].left.is_none() || !ast.exprs[counter].right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ast.exprs[counter].right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:131:57 [INFO] [stdout] | [INFO] [stdout] 131 | if ast.exprs[counter].left.is_none() || !ast.exprs[counter].right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ast.exprs[counter].right.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:142:57 [INFO] [stdout] | [INFO] [stdout] 142 | if ast.exprs[counter].left.is_none() || !ast.exprs[counter].right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ast.exprs[counter].right.is_some()` [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: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:232:5 [INFO] [stdout] | [INFO] [stdout] 232 | return Some(ast); [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] 232 - return Some(ast); [INFO] [stdout] 232 + Some(ast) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | while toks.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!toks.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] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/parser.rs:208:37 [INFO] [stdout] | [INFO] [stdout] 208 | value: Some(String::from(tok.lexeme)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `tok.lexeme` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:238:5 [INFO] [stdout] | [INFO] [stdout] 238 | return ast; [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] 238 - return ast; [INFO] [stdout] 238 + ast [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | return ret; [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] 43 - return ret; [INFO] [stdout] 43 + ret [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/scanner.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | if !(self.current < self.source.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.current >= self.source.len())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/scanner.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | if !(self.source.chars().nth(self.current).unwrap() == expected) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.source.chars().nth(self.current).unwrap() != expected)` [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: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | return true; [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] 58 - return true; [INFO] [stdout] 58 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/scanner.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | if !(self.current < self.source.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.current >= self.source.len())` [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: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | return self.source.chars().nth(self.current).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] 64 - return self.source.chars().nth(self.current).unwrap(); [INFO] [stdout] 64 + self.source.chars().nth(self.current).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/parser.rs:208:37 [INFO] [stdout] | [INFO] [stdout] 208 | value: Some(String::from(tok.lexeme)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `tok.lexeme` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `type_of` after checking its variant with `is_none` [INFO] [stdout] --> src/scanner.rs:118:29 [INFO] [stdout] | [INFO] [stdout] 115 | if type_of.is_none() { [INFO] [stdout] | -------------------- help: try: `if let Some() = type_of` [INFO] [stdout] ... [INFO] [stdout] 118 | self.add_token(*type_of.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/parser.rs:238:5 [INFO] [stdout] | [INFO] [stdout] 238 | return ast; [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] 238 - return ast; [INFO] [stdout] 238 + ast [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | return ret; [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] 43 - return ret; [INFO] [stdout] 43 + ret [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/scanner.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | if !(self.current < self.source.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.current >= self.source.len())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/scanner.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | if !(self.source.chars().nth(self.current).unwrap() == expected) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.source.chars().nth(self.current).unwrap() != expected)` [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: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | return true; [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] 58 - return true; [INFO] [stdout] 58 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NONE` contains a capitalized acronym [INFO] [stdout] --> src/token.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | NONE, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `None` [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: this boolean expression can be simplified [INFO] [stdout] --> src/scanner.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | if !(self.current < self.source.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.current >= self.source.len())` [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: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | return self.source.chars().nth(self.current).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] 64 - return self.source.chars().nth(self.current).unwrap(); [INFO] [stdout] 64 + self.source.chars().nth(self.current).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EOF` contains a capitalized acronym [INFO] [stdout] --> src/token.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | EOF, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Eof` [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: called `unwrap` on `type_of` after checking its variant with `is_none` [INFO] [stdout] --> src/scanner.rs:118:29 [INFO] [stdout] | [INFO] [stdout] 115 | if type_of.is_none() { [INFO] [stdout] | -------------------- help: try: `if let Some() = type_of` [INFO] [stdout] ... [INFO] [stdout] 118 | self.add_token(*type_of.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/main.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | return path; [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] 50 - return path; [INFO] [stdout] 50 + path [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | return 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] 76 - return false; [INFO] [stdout] 76 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NONE` contains a capitalized acronym [INFO] [stdout] --> src/token.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | NONE, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `None` [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 `EOF` contains a capitalized acronym [INFO] [stdout] --> src/token.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | EOF, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Eof` [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: this match could be replaced by its body itself [INFO] [stdout] --> src/main.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | / match out { [INFO] [stdout] 100 | | _ => {} [INFO] [stdout] 101 | | } [INFO] [stdout] | |_________^ help: consider using the match body instead: `{}` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | return path; [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] 50 - return path; [INFO] [stdout] 50 + path [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | return 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] 76 - return false; [INFO] [stdout] 76 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its body itself [INFO] [stdout] --> src/main.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | / match out { [INFO] [stdout] 100 | | _ => {} [INFO] [stdout] 101 | | } [INFO] [stdout] | |_________^ help: consider using the match body instead: `{}` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.20s [INFO] running `Command { std: "docker" "inspect" "79db862f10fe322329f18045ac80f2eff4b9d5606edaa7d04a3baaccad0e8091", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "79db862f10fe322329f18045ac80f2eff4b9d5606edaa7d04a3baaccad0e8091", kill_on_drop: false }` [INFO] [stdout] 79db862f10fe322329f18045ac80f2eff4b9d5606edaa7d04a3baaccad0e8091