[INFO] cloning repository https://github.com/duceux-guillaume/groenlang [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/duceux-guillaume/groenlang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fduceux-guillaume%2Fgroenlang", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fduceux-guillaume%2Fgroenlang'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] eaefb178670afc6486df7b8249214a69cba6c172 [INFO] linting duceux-guillaume/groenlang against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fduceux-guillaume%2Fgroenlang" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/duceux-guillaume/groenlang [INFO] finished tweaking git repo https://github.com/duceux-guillaume/groenlang [INFO] tweaked toml for git repo https://github.com/duceux-guillaume/groenlang written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/duceux-guillaume/groenlang 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/duceux-guillaume/groenlang 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-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 578ebf25227444d53c30603e507a624156d1606b0231e3440892ddea5850683a [INFO] running `Command { std: "docker" "start" "-a" "578ebf25227444d53c30603e507a624156d1606b0231e3440892ddea5850683a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "578ebf25227444d53c30603e507a624156d1606b0231e3440892ddea5850683a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "578ebf25227444d53c30603e507a624156d1606b0231e3440892ddea5850683a", kill_on_drop: false }` [INFO] [stdout] 578ebf25227444d53c30603e507a624156d1606b0231e3440892ddea5850683a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] dbb7f326e191f1ddaad71ac0055edaf8a9a64543333c51eb37e7e77a7b9af5cc [INFO] running `Command { std: "docker" "start" "-a" "dbb7f326e191f1ddaad71ac0055edaf8a9a64543333c51eb37e7e77a7b9af5cc", kill_on_drop: false }` [INFO] [stderr] Checking groenlang v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | name: name, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fbody` [INFO] [stdout] --> src/parser.rs:295:24 [INFO] [stdout] | [INFO] [stdout] 295 | fn body(&mut self, fbody: &mut ExpDesc, ismethod: bool) -> GResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_fbody` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ismethod` [INFO] [stdout] --> src/parser.rs:295:45 [INFO] [stdout] | [INFO] [stdout] 295 | fn body(&mut self, fbody: &mut ExpDesc, ismethod: bool) -> GResult<()> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ismethod` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Concat` is never constructed [INFO] [stdout] --> src/code.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum BinOpr { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 21 | Concat, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinOpr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `etype`, `line`, `expected_token`, and `current_token` are never read [INFO] [stdout] --> src/error.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct Error { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 12 | etype: ErrorType, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 13 | line: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | expected_token: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 15 | current_token: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Flt` is never constructed [INFO] [stdout] --> src/lexer.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum Token { [INFO] [stdout] | ----- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 38 | Flt(String), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `RFunction` and `KString` are never constructed [INFO] [stdout] --> src/object.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum Value { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 8 | RFunction(), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | KString(String), /* literal string */ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Value` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | / return match candidate { [INFO] [stdout] 39 | | Char('+') => Some(Add), [INFO] [stdout] 40 | | Char('-') => Some(Sub), [INFO] [stdout] 41 | | Char('*') => Some(Mul), [INFO] [stdout] ... | [INFO] [stdout] 59 | | _ => None, [INFO] [stdout] 60 | | }; [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] 38 ~ match candidate { [INFO] [stdout] 39 + Char('+') => Some(Add), [INFO] [stdout] 40 + Char('-') => Some(Sub), [INFO] [stdout] 41 + Char('*') => Some(Mul), [INFO] [stdout] 42 + Char('%') => Some(Mod), [INFO] [stdout] 43 + Char('^') => Some(Pow), [INFO] [stdout] 44 + Char('/') => Some(Div), [INFO] [stdout] 45 + Idiv => Some(IDiv), [INFO] [stdout] 46 + Char('&') => Some(Band), [INFO] [stdout] 47 + Char('|') => Some(Bor), [INFO] [stdout] 48 + Char('~') => Some(BXor), [INFO] [stdout] 49 + Shl => Some(ShL), [INFO] [stdout] 50 + Shr => Some(ShR), [INFO] [stdout] 51 + Ne => Some(NE), [INFO] [stdout] 52 + Token::Eq => Some(BinOpr::Eq), [INFO] [stdout] 53 + Char('<') => Some(LT), [INFO] [stdout] 54 + Le => Some(LE), [INFO] [stdout] 55 + Char('>') => Some(GT), [INFO] [stdout] 56 + Ge => Some(GE), [INFO] [stdout] 57 + Token::And => Some(BinOpr::And), [INFO] [stdout] 58 + Token::Or => Some(BinOpr::Or), [INFO] [stdout] 59 + _ => None, [INFO] [stdout] 60 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | / return match &self { [INFO] [stdout] 66 | | /* arithmetic operators */ [INFO] [stdout] 67 | | Add | Sub => 10, [INFO] [stdout] 68 | | Mul | Mod => 11, [INFO] [stdout] ... | [INFO] [stdout] 82 | | Or => 1, [INFO] [stdout] 83 | | }; [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] 65 ~ match &self { [INFO] [stdout] 66 + /* arithmetic operators */ [INFO] [stdout] 67 + Add | Sub => 10, [INFO] [stdout] 68 + Mul | Mod => 11, [INFO] [stdout] 69 + Pow => 14, [INFO] [stdout] 70 + Div | IDiv => 11, [INFO] [stdout] 71 + /* bitwise operators */ [INFO] [stdout] 72 + Band => 6, [INFO] [stdout] 73 + Bor => 4, [INFO] [stdout] 74 + BXor => 5, [INFO] [stdout] 75 + ShL | ShR => 7, [INFO] [stdout] 76 + /* string operator */ [INFO] [stdout] 77 + Concat => 9, [INFO] [stdout] 78 + /* comparison operators */ [INFO] [stdout] 79 + Eq | LT | LE | NE | GT | GE => 3, [INFO] [stdout] 80 + /* logical operators */ [INFO] [stdout] 81 + And => 2, [INFO] [stdout] 82 + Or => 1, [INFO] [stdout] 83 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | / return match &self { [INFO] [stdout] 89 | | /* arithmetic operators */ [INFO] [stdout] 90 | | Add | Sub => 10, [INFO] [stdout] 91 | | Mul | Mod => 11, [INFO] [stdout] ... | [INFO] [stdout] 105 | | Or => 1, [INFO] [stdout] 106 | | }; [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] 88 ~ match &self { [INFO] [stdout] 89 + /* arithmetic operators */ [INFO] [stdout] 90 + Add | Sub => 10, [INFO] [stdout] 91 + Mul | Mod => 11, [INFO] [stdout] 92 + Pow => 13, [INFO] [stdout] 93 + Div | IDiv => 11, [INFO] [stdout] 94 + /* bitwise operators */ [INFO] [stdout] 95 + Band => 6, [INFO] [stdout] 96 + Bor => 4, [INFO] [stdout] 97 + BXor => 5, [INFO] [stdout] 98 + ShL | ShR => 7, [INFO] [stdout] 99 + /* string operator */ [INFO] [stdout] 100 + Concat => 8, [INFO] [stdout] 101 + /* comparison operators */ [INFO] [stdout] 102 + Eq | LT | LE | NE | GT | GE => 3, [INFO] [stdout] 103 + /* logical operators */ [INFO] [stdout] 104 + And => 2, [INFO] [stdout] 105 + Or => 1, [INFO] [stdout] 106 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | / return match (self, left, right) { [INFO] [stdout] 113 | | (Add, Int(l), Int(r)) => Some(Int(l + r)), [INFO] [stdout] 114 | | (Sub, Int(l), Int(r)) => Some(Int(l - r)), [INFO] [stdout] 115 | | (Mul, Int(l), Int(r)) => Some(Int(l * r)), [INFO] [stdout] ... | [INFO] [stdout] 124 | | (_, _, _) => None, //TODO: error [INFO] [stdout] 125 | | }; [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] 112 ~ match (self, left, right) { [INFO] [stdout] 113 + (Add, Int(l), Int(r)) => Some(Int(l + r)), [INFO] [stdout] 114 + (Sub, Int(l), Int(r)) => Some(Int(l - r)), [INFO] [stdout] 115 + (Mul, Int(l), Int(r)) => Some(Int(l * r)), [INFO] [stdout] 116 + (Pow, Int(l), Int(r)) => Some(Int(l ^ r)), [INFO] [stdout] 117 + (Mod, Int(l), Int(r)) => Some(Int(l % r)), [INFO] [stdout] 118 + (Div, Int(l), Int(r)) => Some(Int(l / r)), [INFO] [stdout] 119 + (Add, Number(l), Number(r)) => Some(Number(l + r)), [INFO] [stdout] 120 + (Sub, Number(l), Number(r)) => Some(Number(l - r)), [INFO] [stdout] 121 + (Mul, Number(l), Number(r)) => Some(Number(l * r)), [INFO] [stdout] 122 + (Mod, Number(l), Number(r)) => Some(Number(l % r)), [INFO] [stdout] 123 + (Div, Number(l), Number(r)) => Some(Number(l / r)), [INFO] [stdout] 124 + (_, _, _) => None, //TODO: error [INFO] [stdout] 125 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | / return match candidate { [INFO] [stdout] 138 | | Token::Char('-') => Some(UnOpr::Minus), [INFO] [stdout] 139 | | Token::Char('!') => Some(UnOpr::Not), [INFO] [stdout] 140 | | _ => None, [INFO] [stdout] 141 | | }; [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] 137 ~ match candidate { [INFO] [stdout] 138 + Token::Char('-') => Some(UnOpr::Minus), [INFO] [stdout] 139 + Token::Char('!') => Some(UnOpr::Not), [INFO] [stdout] 140 + _ => None, [INFO] [stdout] 141 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | / return match (self, v) { [INFO] [stdout] 148 | | (Minus, Int(i)) => Some(Int(-i)), [INFO] [stdout] 149 | | (Minus, Number(f)) => Some(Number(-f)), [INFO] [stdout] 150 | | (Not, Bool(b)) => Some(Bool(!b)), [INFO] [stdout] 151 | | (_, _) => None, [INFO] [stdout] 152 | | }; [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] 147 ~ match (self, v) { [INFO] [stdout] 148 + (Minus, Int(i)) => Some(Int(-i)), [INFO] [stdout] 149 + (Minus, Number(f)) => Some(Number(-f)), [INFO] [stdout] 150 + (Not, Bool(b)) => Some(Bool(!b)), [INFO] [stdout] 151 + (_, _) => None, [INFO] [stdout] 152 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | return 12; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 156 - return 12; [INFO] [stdout] 156 + 12 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | / return Error { [INFO] [stdout] 21 | | etype: ErrorType::Syntactic(), [INFO] [stdout] 22 | | line: l, [INFO] [stdout] 23 | | expected_token: e, [INFO] [stdout] 24 | | current_token: c, [INFO] [stdout] 25 | | }; [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] 20 ~ Error { [INFO] [stdout] 21 + etype: ErrorType::Syntactic(), [INFO] [stdout] 22 + line: l, [INFO] [stdout] 23 + expected_token: e, [INFO] [stdout] 24 + current_token: c, [INFO] [stdout] 25 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | / return Error { [INFO] [stdout] 30 | | etype: ErrorType::Semantic(), [INFO] [stdout] 31 | | line: l, [INFO] [stdout] 32 | | expected_token: e, [INFO] [stdout] 33 | | current_token: c, [INFO] [stdout] 34 | | }; [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] 29 ~ Error { [INFO] [stdout] 30 + etype: ErrorType::Semantic(), [INFO] [stdout] 31 + line: l, [INFO] [stdout] 32 + expected_token: e, [INFO] [stdout] 33 + current_token: c, [INFO] [stdout] 34 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | / return Error { [INFO] [stdout] 39 | | etype: ErrorType::Semantic(), [INFO] [stdout] 40 | | line: l, [INFO] [stdout] 41 | | expected_token: e, [INFO] [stdout] 42 | | current_token: c, [INFO] [stdout] 43 | | }; [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] 38 ~ Error { [INFO] [stdout] 39 + etype: ErrorType::Semantic(), [INFO] [stdout] 40 + line: l, [INFO] [stdout] 41 + expected_token: e, [INFO] [stdout] 42 + current_token: c, [INFO] [stdout] 43 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | 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] 73 - return None; [INFO] [stdout] 73 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | / return LexState { [INFO] [stdout] 102 | | current: '\n', [INFO] [stdout] 103 | | linenumber: 0, [INFO] [stdout] 104 | | lastline: 0, [INFO] [stdout] ... | [INFO] [stdout] 112 | | }; [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] 101 ~ LexState { [INFO] [stdout] 102 + current: '\n', [INFO] [stdout] 103 + linenumber: 0, [INFO] [stdout] 104 + lastline: 0, [INFO] [stdout] 105 + token: Token::Eos, [INFO] [stdout] 106 + lookahead: None, [INFO] [stdout] 107 + //state: Weak::new(), [INFO] [stdout] 108 + zio: Zio::new(input), [INFO] [stdout] 109 + buff: vec![], [INFO] [stdout] 110 + //h: Table::new(), [INFO] [stdout] 111 + //source: String::new(), [INFO] [stdout] 112 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | return self.linenumber; [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] 116 - return self.linenumber; [INFO] [stdout] 116 + self.linenumber [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | return self.token.clone(); [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] 120 - return self.token.clone(); [INFO] [stdout] 120 + self.token.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | return Ok(()); [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] 132 - return Ok(()); [INFO] [stdout] 132 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:262:9 [INFO] [stdout] | [INFO] [stdout] 262 | return s; [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] 262 - return s; [INFO] [stdout] 262 + s [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:273:9 [INFO] [stdout] | [INFO] [stdout] 273 | return Token::Int(number_str.to_owned()); [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] 273 - return Token::Int(number_str.to_owned()); [INFO] [stdout] 273 + Token::Int(number_str.to_owned()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/lexer.rs:267:15 [INFO] [stdout] | [INFO] [stdout] 267 | while self.current.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.current.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:286:9 [INFO] [stdout] | [INFO] [stdout] 286 | 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] 286 - return false; [INFO] [stdout] 286 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:310:9 [INFO] [stdout] | [INFO] [stdout] 310 | 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] 310 - return true; [INFO] [stdout] 310 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lexer.rs:304:9 [INFO] [stdout] | [INFO] [stdout] 304 | / if self.current_is_new_line() && self.current != old { [INFO] [stdout] 305 | | if !self.next_char() { [INFO] [stdout] 306 | | /* skip '\n\r' or '\r\n' */ [INFO] [stdout] 307 | | return false; [INFO] [stdout] 308 | | } [INFO] [stdout] 309 | | } [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] 304 ~ if self.current_is_new_line() && self.current != old [INFO] [stdout] 305 ~ && !self.next_char() { [INFO] [stdout] 306 | /* skip '\n\r' or '\r\n' */ [INFO] [stdout] 307 | return false; [INFO] [stdout] 308 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:322:9 [INFO] [stdout] | [INFO] [stdout] 322 | return Ok(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] 322 - return Ok(false); [INFO] [stdout] 322 + Ok(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:327:9 [INFO] [stdout] | [INFO] [stdout] 327 | / return if !moved { [INFO] [stdout] 328 | | Err(Error::syntactical( [INFO] [stdout] 329 | | self.linenumber, [INFO] [stdout] 330 | | c.to_string(), [INFO] [stdout] ... | [INFO] [stdout] 334 | | Ok(()) [INFO] [stdout] 335 | | }; [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] 327 ~ if !moved { [INFO] [stdout] 328 + Err(Error::syntactical( [INFO] [stdout] 329 + self.linenumber, [INFO] [stdout] 330 + c.to_string(), [INFO] [stdout] 331 + self.token.to_string(), [INFO] [stdout] 332 + )) [INFO] [stdout] 333 + } else { [INFO] [stdout] 334 + Ok(()) [INFO] [stdout] 335 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:339:9 [INFO] [stdout] | [INFO] [stdout] 339 | return self.next_if_token(Token::Char(c)); [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] 339 - return self.next_if_token(Token::Char(c)); [INFO] [stdout] 339 + self.next_if_token(Token::Char(c)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:343:9 [INFO] [stdout] | [INFO] [stdout] 343 | return self.check_next_is_token(Token::Char(c)); [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] 343 - return self.check_next_is_token(Token::Char(c)); [INFO] [stdout] 343 + self.check_next_is_token(Token::Char(c)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `i` after checking its variant with `is_ok` [INFO] [stdout] --> src/object.rs:21:36 [INFO] [stdout] | [INFO] [stdout] 19 | if i.is_ok() { [INFO] [stdout] | ------------ help: try: `if let Ok() = i` [INFO] [stdout] 20 | /* try as an integer */ [INFO] [stdout] 21 | return Some(Value::Int(i.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: called `unwrap` on `f` after checking its variant with `is_ok` [INFO] [stdout] --> src/object.rs:26:39 [INFO] [stdout] | [INFO] [stdout] 24 | if f.is_ok() { [INFO] [stdout] | ------------ help: try: `if let Ok() = f` [INFO] [stdout] 25 | /* else try as a float */ [INFO] [stdout] 26 | return Some(Value::Number(f.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/object.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | 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] 28 - return None; [INFO] [stdout] 28 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | / return ExpDesc { [INFO] [stdout] 38 | | literal_value: None, [INFO] [stdout] 39 | | kind: ExpKind::Void, [INFO] [stdout] 40 | | var: None, [INFO] [stdout] 41 | | }; [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] 37 ~ ExpDesc { [INFO] [stdout] 38 + literal_value: None, [INFO] [stdout] 39 + kind: ExpKind::Void, [INFO] [stdout] 40 + var: None, [INFO] [stdout] 41 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | 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] 57 - return false; [INFO] [stdout] 57 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | / return match self.kind { [INFO] [stdout] 69 | | Nil => Some(Value::Nil()), [INFO] [stdout] 70 | | Bool | ConstInt | ConstFlt => self.literal_value.clone(), [INFO] [stdout] 71 | | _ => return None, [INFO] [stdout] 72 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 68 ~ match self.kind { [INFO] [stdout] 69 + Nil => Some(Value::Nil()), [INFO] [stdout] 70 + Bool | ConstInt | ConstFlt => self.literal_value.clone(), [INFO] [stdout] 71 + _ => return None, [INFO] [stdout] 72 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | / return match (&self.kind, &self.literal_value) { [INFO] [stdout] 77 | | (ExpKind::Nil, _) => false, [INFO] [stdout] 78 | | (ExpKind::Bool, Some(Value::Bool(b))) => *b, [INFO] [stdout] 79 | | (_, _) => false, [INFO] [stdout] 80 | | }; [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 ~ match (&self.kind, &self.literal_value) { [INFO] [stdout] 77 + (ExpKind::Nil, _) => false, [INFO] [stdout] 78 + (ExpKind::Bool, Some(Value::Bool(b))) => *b, [INFO] [stdout] 79 + (_, _) => false, [INFO] [stdout] 80 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | / return VarDesc { [INFO] [stdout] 102 | | value: Value::Nil(), [INFO] [stdout] 103 | | name: name, [INFO] [stdout] 104 | | }; [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] 101 ~ VarDesc { [INFO] [stdout] 102 + value: Value::Nil(), [INFO] [stdout] 103 + name: name, [INFO] [stdout] 104 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:122:9 [INFO] [stdout] | [INFO] [stdout] 122 | 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] 122 - return None; [INFO] [stdout] 122 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Iterator::find` [INFO] [stdout] --> src/parser.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | / for v in self.actvar.iter_mut() { [INFO] [stdout] 118 | | if v.name == name { [INFO] [stdout] 119 | | return Some(v); [INFO] [stdout] ... | [INFO] [stdout] 122 | | return None; [INFO] [stdout] | |____________________^ help: replace with an iterator: `self.actvar.iter_mut().find(|v| v.name == name).map(|v| v as _)` [INFO] [stdout] | [INFO] [stdout] = note: you may need to dereference some variables [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] = note: `#[warn(clippy::manual_find)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | 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] 131 - return None; [INFO] [stdout] 131 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | return FuncState { blocks: vec![] }; [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] 146 - return FuncState { blocks: vec![] }; [INFO] [stdout] 146 + FuncState { blocks: vec![] } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | return Err(Error::semantic(0, name, "unknown".to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 156 - return Err(Error::semantic(0, name, "unknown".to_owned())); [INFO] [stdout] 156 + Err(Error::semantic(0, name, "unknown".to_owned())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | return Err(Error::semantic(0, name, "unknown".to_owned())); [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] 165 - return Err(Error::semantic(0, name, "unknown".to_owned())); [INFO] [stdout] 165 + Err(Error::semantic(0, name, "unknown".to_owned())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 169 | if self.blocks.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.blocks.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: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | return p.statlist(); [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] 195 - return p.statlist(); [INFO] [stdout] 195 + p.statlist() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | / return Parser { [INFO] [stdout] 200 | | ls: LexState::new(input), [INFO] [stdout] 201 | | fs: FuncState::new(), [INFO] [stdout] 202 | | }; [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] 199 ~ Parser { [INFO] [stdout] 200 + ls: LexState::new(input), [INFO] [stdout] 201 + fs: FuncState::new(), [INFO] [stdout] 202 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:282:9 [INFO] [stdout] | [INFO] [stdout] 282 | return Ok(()); [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] 282 - return Ok(()); [INFO] [stdout] 282 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:292:9 [INFO] [stdout] | [INFO] [stdout] 292 | return self.body(&mut fbody, 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] 292 - return self.body(&mut fbody, true); [INFO] [stdout] 292 + self.body(&mut fbody, true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 303 | return Ok(()); [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] 303 - return Ok(()); [INFO] [stdout] 303 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:309:9 [INFO] [stdout] | [INFO] [stdout] 309 | return self.ls.check_next_is_char(')'); [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] 309 - return self.ls.check_next_is_char(')'); [INFO] [stdout] 309 + self.ls.check_next_is_char(')') [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:332:9 [INFO] [stdout] | [INFO] [stdout] 332 | return Ok(()); [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] 332 - return Ok(()); [INFO] [stdout] 332 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:342:13 [INFO] [stdout] | [INFO] [stdout] 342 | return Ok(name); [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] 342 - return Ok(name); [INFO] [stdout] 342 + Ok(name) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:344:13 [INFO] [stdout] | [INFO] [stdout] 344 | / return Err(Error::syntactical( [INFO] [stdout] 345 | | self.ls.linenumber(), [INFO] [stdout] 346 | | "".to_owned(), [INFO] [stdout] 347 | | self.ls.current().to_string(), [INFO] [stdout] 348 | | )); [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] 344 ~ Err(Error::syntactical( [INFO] [stdout] 345 + self.ls.linenumber(), [INFO] [stdout] 346 + "".to_owned(), [INFO] [stdout] 347 + self.ls.current().to_string(), [INFO] [stdout] 348 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:354:9 [INFO] [stdout] | [INFO] [stdout] 354 | return Ok(()); [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] 354 - return Ok(()); [INFO] [stdout] 354 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:386:9 [INFO] [stdout] | [INFO] [stdout] 386 | return Ok(opt); /* return first untreated operator */ [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] 386 - return Ok(opt); /* return first untreated operator */ [INFO] [stdout] 386 + Ok(opt)/* return first untreated operator */ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:404:9 [INFO] [stdout] | [INFO] [stdout] 404 | return Ok(()); [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] 404 - return Ok(()); [INFO] [stdout] 404 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:417:9 [INFO] [stdout] | [INFO] [stdout] 417 | return Ok(()); [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] 417 - return Ok(()); [INFO] [stdout] 417 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:409:42 [INFO] [stdout] | [INFO] [stdout] 409 | exp.literal_value = op.apply(&value); [INFO] [stdout] | ^^^^^^ help: change this to: `value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:432:9 [INFO] [stdout] | [INFO] [stdout] 432 | return self.ls.next(); [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] 432 - return self.ls.next(); [INFO] [stdout] 432 + self.ls.next() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:438:9 [INFO] [stdout] | [INFO] [stdout] 438 | return Ok(()); [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] 438 - return Ok(()); [INFO] [stdout] 438 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:468:9 [INFO] [stdout] | [INFO] [stdout] 468 | return Ok(()); [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] 468 - return Ok(()); [INFO] [stdout] 468 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:523:9 [INFO] [stdout] | [INFO] [stdout] 523 | return Ok(()); [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] 523 - return Ok(()); [INFO] [stdout] 523 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:534:9 [INFO] [stdout] | [INFO] [stdout] 534 | return Ok(()); [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] 534 - return Ok(()); [INFO] [stdout] 534 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:543:9 [INFO] [stdout] | [INFO] [stdout] 543 | return self.ls.check_next_is_char('}'); [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] 543 - return self.ls.check_next_is_char('}'); [INFO] [stdout] 543 + self.ls.check_next_is_char('}') [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/zio.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | / return Zio { [INFO] [stdout] 12 | | p: 0, [INFO] [stdout] 13 | | buf: input.chars().collect(), [INFO] [stdout] 14 | | }; [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] 11 ~ Zio { [INFO] [stdout] 12 + p: 0, [INFO] [stdout] 13 + buf: input.chars().collect(), [INFO] [stdout] 14 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/zio.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | 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] 23 - return None; [INFO] [stdout] 23 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | name: name, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tests/parsing_test.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | return Parser::eval(var_decl); [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] 42 - return Parser::eval(var_decl); [INFO] [stdout] 42 + Parser::eval(var_decl) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/parsing_test.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | assert!(!res.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `res.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] --> tests/parsing_test.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | assert!(!res.is_ok()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `res.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: unused variable: `fbody` [INFO] [stdout] --> src/parser.rs:295:24 [INFO] [stdout] | [INFO] [stdout] 295 | fn body(&mut self, fbody: &mut ExpDesc, ismethod: bool) -> GResult<()> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_fbody` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ismethod` [INFO] [stdout] --> src/parser.rs:295:45 [INFO] [stdout] | [INFO] [stdout] 295 | fn body(&mut self, fbody: &mut ExpDesc, ismethod: bool) -> GResult<()> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ismethod` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Concat` is never constructed [INFO] [stdout] --> src/code.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum BinOpr { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 21 | Concat, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinOpr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `etype`, `line`, `expected_token`, and `current_token` are never read [INFO] [stdout] --> src/error.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct Error { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 12 | etype: ErrorType, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 13 | line: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | expected_token: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 15 | current_token: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Flt` is never constructed [INFO] [stdout] --> src/lexer.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum Token { [INFO] [stdout] | ----- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 38 | Flt(String), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `RFunction` and `KString` are never constructed [INFO] [stdout] --> src/object.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum Value { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 8 | RFunction(), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | KString(String), /* literal string */ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Value` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | / return match candidate { [INFO] [stdout] 39 | | Char('+') => Some(Add), [INFO] [stdout] 40 | | Char('-') => Some(Sub), [INFO] [stdout] 41 | | Char('*') => Some(Mul), [INFO] [stdout] ... | [INFO] [stdout] 59 | | _ => None, [INFO] [stdout] 60 | | }; [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] 38 ~ match candidate { [INFO] [stdout] 39 + Char('+') => Some(Add), [INFO] [stdout] 40 + Char('-') => Some(Sub), [INFO] [stdout] 41 + Char('*') => Some(Mul), [INFO] [stdout] 42 + Char('%') => Some(Mod), [INFO] [stdout] 43 + Char('^') => Some(Pow), [INFO] [stdout] 44 + Char('/') => Some(Div), [INFO] [stdout] 45 + Idiv => Some(IDiv), [INFO] [stdout] 46 + Char('&') => Some(Band), [INFO] [stdout] 47 + Char('|') => Some(Bor), [INFO] [stdout] 48 + Char('~') => Some(BXor), [INFO] [stdout] 49 + Shl => Some(ShL), [INFO] [stdout] 50 + Shr => Some(ShR), [INFO] [stdout] 51 + Ne => Some(NE), [INFO] [stdout] 52 + Token::Eq => Some(BinOpr::Eq), [INFO] [stdout] 53 + Char('<') => Some(LT), [INFO] [stdout] 54 + Le => Some(LE), [INFO] [stdout] 55 + Char('>') => Some(GT), [INFO] [stdout] 56 + Ge => Some(GE), [INFO] [stdout] 57 + Token::And => Some(BinOpr::And), [INFO] [stdout] 58 + Token::Or => Some(BinOpr::Or), [INFO] [stdout] 59 + _ => None, [INFO] [stdout] 60 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | / return match &self { [INFO] [stdout] 66 | | /* arithmetic operators */ [INFO] [stdout] 67 | | Add | Sub => 10, [INFO] [stdout] 68 | | Mul | Mod => 11, [INFO] [stdout] ... | [INFO] [stdout] 82 | | Or => 1, [INFO] [stdout] 83 | | }; [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] 65 ~ match &self { [INFO] [stdout] 66 + /* arithmetic operators */ [INFO] [stdout] 67 + Add | Sub => 10, [INFO] [stdout] 68 + Mul | Mod => 11, [INFO] [stdout] 69 + Pow => 14, [INFO] [stdout] 70 + Div | IDiv => 11, [INFO] [stdout] 71 + /* bitwise operators */ [INFO] [stdout] 72 + Band => 6, [INFO] [stdout] 73 + Bor => 4, [INFO] [stdout] 74 + BXor => 5, [INFO] [stdout] 75 + ShL | ShR => 7, [INFO] [stdout] 76 + /* string operator */ [INFO] [stdout] 77 + Concat => 9, [INFO] [stdout] 78 + /* comparison operators */ [INFO] [stdout] 79 + Eq | LT | LE | NE | GT | GE => 3, [INFO] [stdout] 80 + /* logical operators */ [INFO] [stdout] 81 + And => 2, [INFO] [stdout] 82 + Or => 1, [INFO] [stdout] 83 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | / return match &self { [INFO] [stdout] 89 | | /* arithmetic operators */ [INFO] [stdout] 90 | | Add | Sub => 10, [INFO] [stdout] 91 | | Mul | Mod => 11, [INFO] [stdout] ... | [INFO] [stdout] 105 | | Or => 1, [INFO] [stdout] 106 | | }; [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] 88 ~ match &self { [INFO] [stdout] 89 + /* arithmetic operators */ [INFO] [stdout] 90 + Add | Sub => 10, [INFO] [stdout] 91 + Mul | Mod => 11, [INFO] [stdout] 92 + Pow => 13, [INFO] [stdout] 93 + Div | IDiv => 11, [INFO] [stdout] 94 + /* bitwise operators */ [INFO] [stdout] 95 + Band => 6, [INFO] [stdout] 96 + Bor => 4, [INFO] [stdout] 97 + BXor => 5, [INFO] [stdout] 98 + ShL | ShR => 7, [INFO] [stdout] 99 + /* string operator */ [INFO] [stdout] 100 + Concat => 8, [INFO] [stdout] 101 + /* comparison operators */ [INFO] [stdout] 102 + Eq | LT | LE | NE | GT | GE => 3, [INFO] [stdout] 103 + /* logical operators */ [INFO] [stdout] 104 + And => 2, [INFO] [stdout] 105 + Or => 1, [INFO] [stdout] 106 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | / return match (self, left, right) { [INFO] [stdout] 113 | | (Add, Int(l), Int(r)) => Some(Int(l + r)), [INFO] [stdout] 114 | | (Sub, Int(l), Int(r)) => Some(Int(l - r)), [INFO] [stdout] 115 | | (Mul, Int(l), Int(r)) => Some(Int(l * r)), [INFO] [stdout] ... | [INFO] [stdout] 124 | | (_, _, _) => None, //TODO: error [INFO] [stdout] 125 | | }; [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] 112 ~ match (self, left, right) { [INFO] [stdout] 113 + (Add, Int(l), Int(r)) => Some(Int(l + r)), [INFO] [stdout] 114 + (Sub, Int(l), Int(r)) => Some(Int(l - r)), [INFO] [stdout] 115 + (Mul, Int(l), Int(r)) => Some(Int(l * r)), [INFO] [stdout] 116 + (Pow, Int(l), Int(r)) => Some(Int(l ^ r)), [INFO] [stdout] 117 + (Mod, Int(l), Int(r)) => Some(Int(l % r)), [INFO] [stdout] 118 + (Div, Int(l), Int(r)) => Some(Int(l / r)), [INFO] [stdout] 119 + (Add, Number(l), Number(r)) => Some(Number(l + r)), [INFO] [stdout] 120 + (Sub, Number(l), Number(r)) => Some(Number(l - r)), [INFO] [stdout] 121 + (Mul, Number(l), Number(r)) => Some(Number(l * r)), [INFO] [stdout] 122 + (Mod, Number(l), Number(r)) => Some(Number(l % r)), [INFO] [stdout] 123 + (Div, Number(l), Number(r)) => Some(Number(l / r)), [INFO] [stdout] 124 + (_, _, _) => None, //TODO: error [INFO] [stdout] 125 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | / return match candidate { [INFO] [stdout] 138 | | Token::Char('-') => Some(UnOpr::Minus), [INFO] [stdout] 139 | | Token::Char('!') => Some(UnOpr::Not), [INFO] [stdout] 140 | | _ => None, [INFO] [stdout] 141 | | }; [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] 137 ~ match candidate { [INFO] [stdout] 138 + Token::Char('-') => Some(UnOpr::Minus), [INFO] [stdout] 139 + Token::Char('!') => Some(UnOpr::Not), [INFO] [stdout] 140 + _ => None, [INFO] [stdout] 141 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | / return match (self, v) { [INFO] [stdout] 148 | | (Minus, Int(i)) => Some(Int(-i)), [INFO] [stdout] 149 | | (Minus, Number(f)) => Some(Number(-f)), [INFO] [stdout] 150 | | (Not, Bool(b)) => Some(Bool(!b)), [INFO] [stdout] 151 | | (_, _) => None, [INFO] [stdout] 152 | | }; [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] 147 ~ match (self, v) { [INFO] [stdout] 148 + (Minus, Int(i)) => Some(Int(-i)), [INFO] [stdout] 149 + (Minus, Number(f)) => Some(Number(-f)), [INFO] [stdout] 150 + (Not, Bool(b)) => Some(Bool(!b)), [INFO] [stdout] 151 + (_, _) => None, [INFO] [stdout] 152 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | return 12; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 156 - return 12; [INFO] [stdout] 156 + 12 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | / return Error { [INFO] [stdout] 21 | | etype: ErrorType::Syntactic(), [INFO] [stdout] 22 | | line: l, [INFO] [stdout] 23 | | expected_token: e, [INFO] [stdout] 24 | | current_token: c, [INFO] [stdout] 25 | | }; [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] 20 ~ Error { [INFO] [stdout] 21 + etype: ErrorType::Syntactic(), [INFO] [stdout] 22 + line: l, [INFO] [stdout] 23 + expected_token: e, [INFO] [stdout] 24 + current_token: c, [INFO] [stdout] 25 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | / return Error { [INFO] [stdout] 30 | | etype: ErrorType::Semantic(), [INFO] [stdout] 31 | | line: l, [INFO] [stdout] 32 | | expected_token: e, [INFO] [stdout] 33 | | current_token: c, [INFO] [stdout] 34 | | }; [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] 29 ~ Error { [INFO] [stdout] 30 + etype: ErrorType::Semantic(), [INFO] [stdout] 31 + line: l, [INFO] [stdout] 32 + expected_token: e, [INFO] [stdout] 33 + current_token: c, [INFO] [stdout] 34 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | / return Error { [INFO] [stdout] 39 | | etype: ErrorType::Semantic(), [INFO] [stdout] 40 | | line: l, [INFO] [stdout] 41 | | expected_token: e, [INFO] [stdout] 42 | | current_token: c, [INFO] [stdout] 43 | | }; [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] 38 ~ Error { [INFO] [stdout] 39 + etype: ErrorType::Semantic(), [INFO] [stdout] 40 + line: l, [INFO] [stdout] 41 + expected_token: e, [INFO] [stdout] 42 + current_token: c, [INFO] [stdout] 43 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | 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] 73 - return None; [INFO] [stdout] 73 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | / return LexState { [INFO] [stdout] 102 | | current: '\n', [INFO] [stdout] 103 | | linenumber: 0, [INFO] [stdout] 104 | | lastline: 0, [INFO] [stdout] ... | [INFO] [stdout] 112 | | }; [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] 101 ~ LexState { [INFO] [stdout] 102 + current: '\n', [INFO] [stdout] 103 + linenumber: 0, [INFO] [stdout] 104 + lastline: 0, [INFO] [stdout] 105 + token: Token::Eos, [INFO] [stdout] 106 + lookahead: None, [INFO] [stdout] 107 + //state: Weak::new(), [INFO] [stdout] 108 + zio: Zio::new(input), [INFO] [stdout] 109 + buff: vec![], [INFO] [stdout] 110 + //h: Table::new(), [INFO] [stdout] 111 + //source: String::new(), [INFO] [stdout] 112 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | return self.linenumber; [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] 116 - return self.linenumber; [INFO] [stdout] 116 + self.linenumber [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | return self.token.clone(); [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] 120 - return self.token.clone(); [INFO] [stdout] 120 + self.token.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | return Ok(()); [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] 132 - return Ok(()); [INFO] [stdout] 132 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:262:9 [INFO] [stdout] | [INFO] [stdout] 262 | return s; [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] 262 - return s; [INFO] [stdout] 262 + s [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:273:9 [INFO] [stdout] | [INFO] [stdout] 273 | return Token::Int(number_str.to_owned()); [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] 273 - return Token::Int(number_str.to_owned()); [INFO] [stdout] 273 + Token::Int(number_str.to_owned()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/lexer.rs:267:15 [INFO] [stdout] | [INFO] [stdout] 267 | while self.current.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.current.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:286:9 [INFO] [stdout] | [INFO] [stdout] 286 | 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] 286 - return false; [INFO] [stdout] 286 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:310:9 [INFO] [stdout] | [INFO] [stdout] 310 | 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] 310 - return true; [INFO] [stdout] 310 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lexer.rs:304:9 [INFO] [stdout] | [INFO] [stdout] 304 | / if self.current_is_new_line() && self.current != old { [INFO] [stdout] 305 | | if !self.next_char() { [INFO] [stdout] 306 | | /* skip '\n\r' or '\r\n' */ [INFO] [stdout] 307 | | return false; [INFO] [stdout] 308 | | } [INFO] [stdout] 309 | | } [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] 304 ~ if self.current_is_new_line() && self.current != old [INFO] [stdout] 305 ~ && !self.next_char() { [INFO] [stdout] 306 | /* skip '\n\r' or '\r\n' */ [INFO] [stdout] 307 | return false; [INFO] [stdout] 308 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:322:9 [INFO] [stdout] | [INFO] [stdout] 322 | return Ok(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] 322 - return Ok(false); [INFO] [stdout] 322 + Ok(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:327:9 [INFO] [stdout] | [INFO] [stdout] 327 | / return if !moved { [INFO] [stdout] 328 | | Err(Error::syntactical( [INFO] [stdout] 329 | | self.linenumber, [INFO] [stdout] 330 | | c.to_string(), [INFO] [stdout] ... | [INFO] [stdout] 334 | | Ok(()) [INFO] [stdout] 335 | | }; [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] 327 ~ if !moved { [INFO] [stdout] 328 + Err(Error::syntactical( [INFO] [stdout] 329 + self.linenumber, [INFO] [stdout] 330 + c.to_string(), [INFO] [stdout] 331 + self.token.to_string(), [INFO] [stdout] 332 + )) [INFO] [stdout] 333 + } else { [INFO] [stdout] 334 + Ok(()) [INFO] [stdout] 335 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:339:9 [INFO] [stdout] | [INFO] [stdout] 339 | return self.next_if_token(Token::Char(c)); [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] 339 - return self.next_if_token(Token::Char(c)); [INFO] [stdout] 339 + self.next_if_token(Token::Char(c)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:343:9 [INFO] [stdout] | [INFO] [stdout] 343 | return self.check_next_is_token(Token::Char(c)); [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] 343 - return self.check_next_is_token(Token::Char(c)); [INFO] [stdout] 343 + self.check_next_is_token(Token::Char(c)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lexer.rs:354:9 [INFO] [stdout] | [INFO] [stdout] 354 | assert_eq!(lexer.next_char(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 354 - assert_eq!(lexer.next_char(), true); [INFO] [stdout] 354 + assert!(lexer.next_char()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lexer.rs:355:9 [INFO] [stdout] | [INFO] [stdout] 355 | assert_eq!(lexer.next_char(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 355 - assert_eq!(lexer.next_char(), false); [INFO] [stdout] 355 + assert!(!lexer.next_char()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lexer.rs:361:9 [INFO] [stdout] | [INFO] [stdout] 361 | assert_eq!(lexer.increment_line_number(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 361 - assert_eq!(lexer.increment_line_number(), true); [INFO] [stdout] 361 + assert!(lexer.increment_line_number()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lexer.rs:362:9 [INFO] [stdout] | [INFO] [stdout] 362 | assert_eq!(lexer.increment_line_number(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 362 - assert_eq!(lexer.increment_line_number(), false); [INFO] [stdout] 362 + assert!(!lexer.increment_line_number()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:371:9 [INFO] [stdout] | [INFO] [stdout] 371 | return Ok(()); [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] 371 - return Ok(()); [INFO] [stdout] 371 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lexer.rs:368:9 [INFO] [stdout] | [INFO] [stdout] 368 | assert_eq!(lexer.next_if_token(Token::Char('='))?, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 368 - assert_eq!(lexer.next_if_token(Token::Char('='))?, false); [INFO] [stdout] 368 + assert!(!lexer.next_if_token(Token::Char('='))?); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lexer.rs:370:9 [INFO] [stdout] | [INFO] [stdout] 370 | assert_eq!(lexer.next_if_token(Token::Char('='))?, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 370 - assert_eq!(lexer.next_if_token(Token::Char('='))?, true); [INFO] [stdout] 370 + assert!(lexer.next_if_token(Token::Char('='))?); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer.rs:380:9 [INFO] [stdout] | [INFO] [stdout] 380 | return Ok(()); [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] 380 - return Ok(()); [INFO] [stdout] 380 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lexer.rs:377:9 [INFO] [stdout] | [INFO] [stdout] 377 | assert_eq!(lexer.next_if_char('=')?, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 377 - assert_eq!(lexer.next_if_char('=')?, false); [INFO] [stdout] 377 + assert!(!lexer.next_if_char('=')?); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lexer.rs:379:9 [INFO] [stdout] | [INFO] [stdout] 379 | assert_eq!(lexer.next_if_char('=')?, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 379 - assert_eq!(lexer.next_if_char('=')?, true); [INFO] [stdout] 379 + assert!(lexer.next_if_char('=')?); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `i` after checking its variant with `is_ok` [INFO] [stdout] --> src/object.rs:21:36 [INFO] [stdout] | [INFO] [stdout] 19 | if i.is_ok() { [INFO] [stdout] | ------------ help: try: `if let Ok() = i` [INFO] [stdout] 20 | /* try as an integer */ [INFO] [stdout] 21 | return Some(Value::Int(i.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: called `unwrap` on `f` after checking its variant with `is_ok` [INFO] [stdout] --> src/object.rs:26:39 [INFO] [stdout] | [INFO] [stdout] 24 | if f.is_ok() { [INFO] [stdout] | ------------ help: try: `if let Ok() = f` [INFO] [stdout] 25 | /* else try as a float */ [INFO] [stdout] 26 | return Some(Value::Number(f.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/object.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | 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] 28 - return None; [INFO] [stdout] 28 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | / return ExpDesc { [INFO] [stdout] 38 | | literal_value: None, [INFO] [stdout] 39 | | kind: ExpKind::Void, [INFO] [stdout] 40 | | var: None, [INFO] [stdout] 41 | | }; [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] 37 ~ ExpDesc { [INFO] [stdout] 38 + literal_value: None, [INFO] [stdout] 39 + kind: ExpKind::Void, [INFO] [stdout] 40 + var: None, [INFO] [stdout] 41 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | 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] 57 - return false; [INFO] [stdout] 57 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | / return match self.kind { [INFO] [stdout] 69 | | Nil => Some(Value::Nil()), [INFO] [stdout] 70 | | Bool | ConstInt | ConstFlt => self.literal_value.clone(), [INFO] [stdout] 71 | | _ => return None, [INFO] [stdout] 72 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 68 ~ match self.kind { [INFO] [stdout] 69 + Nil => Some(Value::Nil()), [INFO] [stdout] 70 + Bool | ConstInt | ConstFlt => self.literal_value.clone(), [INFO] [stdout] 71 + _ => return None, [INFO] [stdout] 72 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | / return match (&self.kind, &self.literal_value) { [INFO] [stdout] 77 | | (ExpKind::Nil, _) => false, [INFO] [stdout] 78 | | (ExpKind::Bool, Some(Value::Bool(b))) => *b, [INFO] [stdout] 79 | | (_, _) => false, [INFO] [stdout] 80 | | }; [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 ~ match (&self.kind, &self.literal_value) { [INFO] [stdout] 77 + (ExpKind::Nil, _) => false, [INFO] [stdout] 78 + (ExpKind::Bool, Some(Value::Bool(b))) => *b, [INFO] [stdout] 79 + (_, _) => false, [INFO] [stdout] 80 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | / return VarDesc { [INFO] [stdout] 102 | | value: Value::Nil(), [INFO] [stdout] 103 | | name: name, [INFO] [stdout] 104 | | }; [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] 101 ~ VarDesc { [INFO] [stdout] 102 + value: Value::Nil(), [INFO] [stdout] 103 + name: name, [INFO] [stdout] 104 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:122:9 [INFO] [stdout] | [INFO] [stdout] 122 | 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] 122 - return None; [INFO] [stdout] 122 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Iterator::find` [INFO] [stdout] --> src/parser.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | / for v in self.actvar.iter_mut() { [INFO] [stdout] 118 | | if v.name == name { [INFO] [stdout] 119 | | return Some(v); [INFO] [stdout] ... | [INFO] [stdout] 122 | | return None; [INFO] [stdout] | |____________________^ help: replace with an iterator: `self.actvar.iter_mut().find(|v| v.name == name).map(|v| v as _)` [INFO] [stdout] | [INFO] [stdout] = note: you may need to dereference some variables [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] = note: `#[warn(clippy::manual_find)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | 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] 131 - return None; [INFO] [stdout] 131 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | return FuncState { blocks: vec![] }; [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] 146 - return FuncState { blocks: vec![] }; [INFO] [stdout] 146 + FuncState { blocks: vec![] } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | return Err(Error::semantic(0, name, "unknown".to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 156 - return Err(Error::semantic(0, name, "unknown".to_owned())); [INFO] [stdout] 156 + Err(Error::semantic(0, name, "unknown".to_owned())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | return Err(Error::semantic(0, name, "unknown".to_owned())); [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] 165 - return Err(Error::semantic(0, name, "unknown".to_owned())); [INFO] [stdout] 165 + Err(Error::semantic(0, name, "unknown".to_owned())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 169 | if self.blocks.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.blocks.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: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | return p.statlist(); [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] 195 - return p.statlist(); [INFO] [stdout] 195 + p.statlist() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | / return Parser { [INFO] [stdout] 200 | | ls: LexState::new(input), [INFO] [stdout] 201 | | fs: FuncState::new(), [INFO] [stdout] 202 | | }; [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] 199 ~ Parser { [INFO] [stdout] 200 + ls: LexState::new(input), [INFO] [stdout] 201 + fs: FuncState::new(), [INFO] [stdout] 202 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:282:9 [INFO] [stdout] | [INFO] [stdout] 282 | return Ok(()); [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] 282 - return Ok(()); [INFO] [stdout] 282 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:292:9 [INFO] [stdout] | [INFO] [stdout] 292 | return self.body(&mut fbody, 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] 292 - return self.body(&mut fbody, true); [INFO] [stdout] 292 + self.body(&mut fbody, true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 303 | return Ok(()); [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] 303 - return Ok(()); [INFO] [stdout] 303 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:309:9 [INFO] [stdout] | [INFO] [stdout] 309 | return self.ls.check_next_is_char(')'); [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] 309 - return self.ls.check_next_is_char(')'); [INFO] [stdout] 309 + self.ls.check_next_is_char(')') [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:332:9 [INFO] [stdout] | [INFO] [stdout] 332 | return Ok(()); [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] 332 - return Ok(()); [INFO] [stdout] 332 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:342:13 [INFO] [stdout] | [INFO] [stdout] 342 | return Ok(name); [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] 342 - return Ok(name); [INFO] [stdout] 342 + Ok(name) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:344:13 [INFO] [stdout] | [INFO] [stdout] 344 | / return Err(Error::syntactical( [INFO] [stdout] 345 | | self.ls.linenumber(), [INFO] [stdout] 346 | | "".to_owned(), [INFO] [stdout] 347 | | self.ls.current().to_string(), [INFO] [stdout] 348 | | )); [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] 344 ~ Err(Error::syntactical( [INFO] [stdout] 345 + self.ls.linenumber(), [INFO] [stdout] 346 + "".to_owned(), [INFO] [stdout] 347 + self.ls.current().to_string(), [INFO] [stdout] 348 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:354:9 [INFO] [stdout] | [INFO] [stdout] 354 | return Ok(()); [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] 354 - return Ok(()); [INFO] [stdout] 354 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:386:9 [INFO] [stdout] | [INFO] [stdout] 386 | return Ok(opt); /* return first untreated operator */ [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] 386 - return Ok(opt); /* return first untreated operator */ [INFO] [stdout] 386 + Ok(opt)/* return first untreated operator */ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:404:9 [INFO] [stdout] | [INFO] [stdout] 404 | return Ok(()); [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] 404 - return Ok(()); [INFO] [stdout] 404 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:417:9 [INFO] [stdout] | [INFO] [stdout] 417 | return Ok(()); [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] 417 - return Ok(()); [INFO] [stdout] 417 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:409:42 [INFO] [stdout] | [INFO] [stdout] 409 | exp.literal_value = op.apply(&value); [INFO] [stdout] | ^^^^^^ help: change this to: `value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:432:9 [INFO] [stdout] | [INFO] [stdout] 432 | return self.ls.next(); [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] 432 - return self.ls.next(); [INFO] [stdout] 432 + self.ls.next() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:438:9 [INFO] [stdout] | [INFO] [stdout] 438 | return Ok(()); [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] 438 - return Ok(()); [INFO] [stdout] 438 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:468:9 [INFO] [stdout] | [INFO] [stdout] 468 | return Ok(()); [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] 468 - return Ok(()); [INFO] [stdout] 468 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:523:9 [INFO] [stdout] | [INFO] [stdout] 523 | return Ok(()); [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] 523 - return Ok(()); [INFO] [stdout] 523 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:534:9 [INFO] [stdout] | [INFO] [stdout] 534 | return Ok(()); [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] 534 - return Ok(()); [INFO] [stdout] 534 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:543:9 [INFO] [stdout] | [INFO] [stdout] 543 | return self.ls.check_next_is_char('}'); [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] 543 - return self.ls.check_next_is_char('}'); [INFO] [stdout] 543 + self.ls.check_next_is_char('}') [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/zio.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | / return Zio { [INFO] [stdout] 12 | | p: 0, [INFO] [stdout] 13 | | buf: input.chars().collect(), [INFO] [stdout] 14 | | }; [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] 11 ~ Zio { [INFO] [stdout] 12 + p: 0, [INFO] [stdout] 13 + buf: input.chars().collect(), [INFO] [stdout] 14 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/zio.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | 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] 23 - return None; [INFO] [stdout] 23 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/lexer.rs:369:9 [INFO] [stdout] | [INFO] [stdout] 369 | lexer.next(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 369 | let _ = lexer.next(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/lexer.rs:378:9 [INFO] [stdout] | [INFO] [stdout] 378 | lexer.next(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 378 | let _ = lexer.next(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.61s [INFO] running `Command { std: "docker" "inspect" "dbb7f326e191f1ddaad71ac0055edaf8a9a64543333c51eb37e7e77a7b9af5cc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dbb7f326e191f1ddaad71ac0055edaf8a9a64543333c51eb37e7e77a7b9af5cc", kill_on_drop: false }` [INFO] [stdout] dbb7f326e191f1ddaad71ac0055edaf8a9a64543333c51eb37e7e77a7b9af5cc