[INFO] cloning repository https://github.com/JedCPT/rust-monkey [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JedCPT/rust-monkey" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJedCPT%2Frust-monkey", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJedCPT%2Frust-monkey'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e058e7ffef73921326c5cf1473dc3a8663ef52ce [INFO] linting JedCPT/rust-monkey against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJedCPT%2Frust-monkey" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/JedCPT/rust-monkey [INFO] finished tweaking git repo https://github.com/JedCPT/rust-monkey [INFO] tweaked toml for git repo https://github.com/JedCPT/rust-monkey written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/JedCPT/rust-monkey 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/JedCPT/rust-monkey already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded downcast-rs v1.0.3 [INFO] [stderr] Downloaded maplit v1.0.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] e8e83fc894aea3d6ee72fc67383c351f978a066e861bcd67d9e5ff595bccc027 [INFO] running `Command { std: "docker" "start" "-a" "e8e83fc894aea3d6ee72fc67383c351f978a066e861bcd67d9e5ff595bccc027", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e8e83fc894aea3d6ee72fc67383c351f978a066e861bcd67d9e5ff595bccc027", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e8e83fc894aea3d6ee72fc67383c351f978a066e861bcd67d9e5ff595bccc027", kill_on_drop: false }` [INFO] [stdout] e8e83fc894aea3d6ee72fc67383c351f978a066e861bcd67d9e5ff595bccc027 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] c53d402ff4eadd9124921129d15ba90922f94a4bdf16776bb8a1b6c696a71b55 [INFO] running `Command { std: "docker" "start" "-a" "c53d402ff4eadd9124921129d15ba90922f94a4bdf16776bb8a1b6c696a71b55", kill_on_drop: false }` [INFO] [stderr] Checking maplit v1.0.1 [INFO] [stderr] Checking downcast-rs v1.0.3 [INFO] [stderr] Checking rust-monkey v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/enviroment/mod.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | outer: outer, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `outer` [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: redundant field names in struct initialization [INFO] [stdout] --> src/lexer/token.rs:147:13 [INFO] [stdout] | [INFO] [stdout] 147 | token_type: token_type, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `token_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lexer/token.rs:148:13 [INFO] [stdout] | [INFO] [stdout] 148 | literal: literal, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `literal` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser/mod.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | lexer: lexer, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `lexer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser/mod.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | identifier: identifier, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `identifier` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser/mod.rs:360:13 [INFO] [stdout] | [INFO] [stdout] 360 | token: token, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `token` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser/mod.rs:380:13 [INFO] [stdout] | [INFO] [stdout] 380 | token: token, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `token` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser/mod.rs:382:13 [INFO] [stdout] | [INFO] [stdout] 382 | left: left, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser/mod.rs:446:13 [INFO] [stdout] | [INFO] [stdout] 446 | alternative: alternative, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `alternative` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:68:20 [INFO] [stdout] | [INFO] [stdout] 68 | pub value: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 68 | pub value: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/enviroment/mod.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | outer: outer, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `outer` [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: redundant field names in struct initialization [INFO] [stdout] --> src/lexer/token.rs:147:13 [INFO] [stdout] | [INFO] [stdout] 147 | token_type: token_type, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `token_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lexer/token.rs:148:13 [INFO] [stdout] | [INFO] [stdout] 148 | literal: literal, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `literal` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:74:20 [INFO] [stdout] | [INFO] [stdout] 74 | pub value: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 74 | pub value: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:79:20 [INFO] [stdout] | [INFO] [stdout] 79 | pub value: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 79 | pub value: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:84:29 [INFO] [stdout] | [INFO] [stdout] 84 | pub statements: Vec>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 84 | pub statements: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:105:20 [INFO] [stdout] | [INFO] [stdout] 105 | pub right: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 105 | pub right: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:110:19 [INFO] [stdout] | [INFO] [stdout] 110 | pub left: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 110 | pub left: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:111:20 [INFO] [stdout] | [INFO] [stdout] 111 | pub right: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 111 | pub right: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:116:24 [INFO] [stdout] | [INFO] [stdout] 116 | pub condition: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 116 | pub condition: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:117:26 [INFO] [stdout] | [INFO] [stdout] 117 | pub consequence: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 117 | pub consequence: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:118:33 [INFO] [stdout] | [INFO] [stdout] 118 | pub alternative: Option>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 118 | pub alternative: Option>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:123:32 [INFO] [stdout] | [INFO] [stdout] 123 | pub parameters: Rc>>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 123 | pub parameters: Rc>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:124:22 [INFO] [stdout] | [INFO] [stdout] 124 | pub body: Rc>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 124 | pub body: Rc>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser/mod.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | lexer: lexer, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `lexer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:129:28 [INFO] [stdout] | [INFO] [stdout] 129 | pub arguments: Vec>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 129 | pub arguments: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:130:30 [INFO] [stdout] | [INFO] [stdout] 130 | pub func_identifier: Box, // ast::IdentifierExpression [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 130 | pub func_identifier: Box, // ast::IdentifierExpression [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/enviroment/mod.rs:23:39 [INFO] [stdout] | [INFO] [stdout] 23 | pub variables: HashMap>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 | pub variables: HashMap>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/object/mod.rs:59:22 [INFO] [stdout] | [INFO] [stdout] 59 | pub body: Rc>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 59 | pub body: Rc>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/object/mod.rs:60:32 [INFO] [stdout] | [INFO] [stdout] 60 | pub parameters: Rc>>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 60 | pub parameters: Rc>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser/mod.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | identifier: identifier, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `identifier` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:41:29 [INFO] [stdout] | [INFO] [stdout] 41 | pub statements: Vec>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 41 | pub statements: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser/mod.rs:360:13 [INFO] [stdout] | [INFO] [stdout] 360 | token: token, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `token` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser/mod.rs:380:13 [INFO] [stdout] | [INFO] [stdout] 380 | token: token, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `token` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:55:56 [INFO] [stdout] | [INFO] [stdout] 55 | fn eval(&self, env: Rc>) -> Rc; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 55 | fn eval(&self, env: Rc>) -> Rc; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser/mod.rs:382:13 [INFO] [stdout] | [INFO] [stdout] 382 | left: left, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser/mod.rs:446:13 [INFO] [stdout] | [INFO] [stdout] 446 | alternative: alternative, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `alternative` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:144:56 [INFO] [stdout] | [INFO] [stdout] 144 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 144 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:173:56 [INFO] [stdout] | [INFO] [stdout] 173 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 173 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:187:56 [INFO] [stdout] | [INFO] [stdout] 187 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 187 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:203:56 [INFO] [stdout] | [INFO] [stdout] 203 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 203 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:231:57 [INFO] [stdout] | [INFO] [stdout] 231 | fn eval(&self, _env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 231 | fn eval(&self, _env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:245:57 [INFO] [stdout] | [INFO] [stdout] 245 | fn eval(&self, _env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 245 | fn eval(&self, _env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:259:56 [INFO] [stdout] | [INFO] [stdout] 259 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 259 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:353:56 [INFO] [stdout] | [INFO] [stdout] 353 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 353 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:443:56 [INFO] [stdout] | [INFO] [stdout] 443 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 443 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:482:56 [INFO] [stdout] | [INFO] [stdout] 482 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 482 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:534:56 [INFO] [stdout] | [INFO] [stdout] 534 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 534 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:626:56 [INFO] [stdout] | [INFO] [stdout] 626 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 626 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:68:20 [INFO] [stdout] | [INFO] [stdout] 68 | pub value: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 68 | pub value: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:74:20 [INFO] [stdout] | [INFO] [stdout] 74 | pub value: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 74 | pub value: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:79:20 [INFO] [stdout] | [INFO] [stdout] 79 | pub value: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 79 | pub value: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:84:29 [INFO] [stdout] | [INFO] [stdout] 84 | pub statements: Vec>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 84 | pub statements: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:105:20 [INFO] [stdout] | [INFO] [stdout] 105 | pub right: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 105 | pub right: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:110:19 [INFO] [stdout] | [INFO] [stdout] 110 | pub left: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 110 | pub left: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:111:20 [INFO] [stdout] | [INFO] [stdout] 111 | pub right: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 111 | pub right: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:116:24 [INFO] [stdout] | [INFO] [stdout] 116 | pub condition: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 116 | pub condition: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:117:26 [INFO] [stdout] | [INFO] [stdout] 117 | pub consequence: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 117 | pub consequence: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:118:33 [INFO] [stdout] | [INFO] [stdout] 118 | pub alternative: Option>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 118 | pub alternative: Option>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:123:32 [INFO] [stdout] | [INFO] [stdout] 123 | pub parameters: Rc>>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 123 | pub parameters: Rc>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:124:22 [INFO] [stdout] | [INFO] [stdout] 124 | pub body: Rc>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 124 | pub body: Rc>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:129:28 [INFO] [stdout] | [INFO] [stdout] 129 | pub arguments: Vec>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 129 | pub arguments: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:130:30 [INFO] [stdout] | [INFO] [stdout] 130 | pub func_identifier: Box, // ast::IdentifierExpression [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 130 | pub func_identifier: Box, // ast::IdentifierExpression [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/enviroment/mod.rs:23:39 [INFO] [stdout] | [INFO] [stdout] 23 | pub variables: HashMap>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 | pub variables: HashMap>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/object/mod.rs:59:22 [INFO] [stdout] | [INFO] [stdout] 59 | pub body: Rc>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 59 | pub body: Rc>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/object/mod.rs:60:32 [INFO] [stdout] | [INFO] [stdout] 60 | pub parameters: Rc>>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 60 | pub parameters: Rc>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:41:29 [INFO] [stdout] | [INFO] [stdout] 41 | pub statements: Vec>, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 41 | pub statements: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:319:46 [INFO] [stdout] | [INFO] [stdout] 319 | fn eval_minus_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 319 | fn eval_minus_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:319:61 [INFO] [stdout] | [INFO] [stdout] 319 | fn eval_minus_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 319 | fn eval_minus_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:333:45 [INFO] [stdout] | [INFO] [stdout] 333 | fn eval_bang_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 333 | fn eval_bang_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:333:60 [INFO] [stdout] | [INFO] [stdout] 333 | fn eval_bang_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 333 | fn eval_bang_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:380:55 [INFO] [stdout] | [INFO] [stdout] 380 | fn eval_boolean_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 380 | fn eval_boolean_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:380:75 [INFO] [stdout] | [INFO] [stdout] 380 | fn eval_boolean_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 380 | fn eval_boolean_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:380:90 [INFO] [stdout] | [INFO] [stdout] 380 | fn eval_boolean_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 380 | fn eval_boolean_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:397:55 [INFO] [stdout] | [INFO] [stdout] 397 | fn eval_integer_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 397 | fn eval_integer_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:397:75 [INFO] [stdout] | [INFO] [stdout] 397 | fn eval_integer_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 397 | fn eval_integer_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:397:90 [INFO] [stdout] | [INFO] [stdout] 397 | fn eval_integer_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 397 | fn eval_integer_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:562:70 [INFO] [stdout] | [INFO] [stdout] 562 | fn eval_arguments(&self, env: Rc>) -> Vec> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 562 | fn eval_arguments(&self, env: Rc>) -> Vec> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:580:18 [INFO] [stdout] | [INFO] [stdout] 580 | func: Rc, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 580 | func: Rc, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:55:56 [INFO] [stdout] | [INFO] [stdout] 55 | fn eval(&self, env: Rc>) -> Rc; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 55 | fn eval(&self, env: Rc>) -> Rc; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:581:22 [INFO] [stdout] | [INFO] [stdout] 581 | args: Vec>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 581 | args: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:144:56 [INFO] [stdout] | [INFO] [stdout] 144 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 144 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:583:13 [INFO] [stdout] | [INFO] [stdout] 583 | ) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 583 | ) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/enviroment/mod.rs:40:53 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn insert(&mut self, key: String, value: Rc) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 40 | pub fn insert(&mut self, key: String, value: Rc) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/enviroment/mod.rs:45:50 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn get(&self, key: &String) -> Option> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 45 | pub fn get(&self, key: &String) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:173:56 [INFO] [stdout] | [INFO] [stdout] 173 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 173 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:187:56 [INFO] [stdout] | [INFO] [stdout] 187 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 187 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:203:56 [INFO] [stdout] | [INFO] [stdout] 203 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 203 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:231:57 [INFO] [stdout] | [INFO] [stdout] 231 | fn eval(&self, _env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 231 | fn eval(&self, _env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:166:49 [INFO] [stdout] | [INFO] [stdout] 166 | fn parse_statement(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 166 | fn parse_statement(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:245:57 [INFO] [stdout] | [INFO] [stdout] 245 | fn eval(&self, _env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 245 | fn eval(&self, _env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:174:53 [INFO] [stdout] | [INFO] [stdout] 174 | fn parse_let_statement(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 174 | fn parse_let_statement(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:259:56 [INFO] [stdout] | [INFO] [stdout] 259 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 259 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:212:56 [INFO] [stdout] | [INFO] [stdout] 212 | fn parse_return_statement(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 212 | fn parse_return_statement(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:353:56 [INFO] [stdout] | [INFO] [stdout] 353 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 353 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:234:60 [INFO] [stdout] | [INFO] [stdout] 234 | fn parse_expression_statement(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 234 | fn parse_expression_statement(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:255:55 [INFO] [stdout] | [INFO] [stdout] 255 | fn parse_block_statement(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 255 | fn parse_block_statement(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:443:56 [INFO] [stdout] | [INFO] [stdout] 443 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 443 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:279:74 [INFO] [stdout] | [INFO] [stdout] 279 | fn parse_expression(&mut self, precedence: Precedence) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 279 | fn parse_expression(&mut self, precedence: Precedence) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:482:56 [INFO] [stdout] | [INFO] [stdout] 482 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 482 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:317:61 [INFO] [stdout] | [INFO] [stdout] 317 | fn parse_identifier_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 317 | fn parse_identifier_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:534:56 [INFO] [stdout] | [INFO] [stdout] 534 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 534 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:324:55 [INFO] [stdout] | [INFO] [stdout] 324 | fn parse_bool_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 324 | fn parse_bool_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:626:56 [INFO] [stdout] | [INFO] [stdout] 626 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 626 | fn eval(&self, env: Rc>) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:332:59 [INFO] [stdout] | [INFO] [stdout] 332 | fn parse_integral_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 332 | fn parse_integral_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:347:57 [INFO] [stdout] | [INFO] [stdout] 347 | fn parse_prefix_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 347 | fn parse_prefix_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:366:52 [INFO] [stdout] | [INFO] [stdout] 366 | fn parse_infix_expression(&mut self, left: Box) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 366 | fn parse_infix_expression(&mut self, left: Box) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:366:73 [INFO] [stdout] | [INFO] [stdout] 366 | fn parse_infix_expression(&mut self, left: Box) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 366 | fn parse_infix_expression(&mut self, left: Box) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:387:58 [INFO] [stdout] | [INFO] [stdout] 387 | fn parse_grouped_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 387 | fn parse_grouped_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:399:57 [INFO] [stdout] | [INFO] [stdout] 399 | fn parse_ifelse_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 399 | fn parse_ifelse_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:451:55 [INFO] [stdout] | [INFO] [stdout] 451 | fn parse_func_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 451 | fn parse_func_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:492:51 [INFO] [stdout] | [INFO] [stdout] 492 | fn parse_call_expression(&mut self, func: Box) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 492 | fn parse_call_expression(&mut self, func: Box) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:492:72 [INFO] [stdout] | [INFO] [stdout] 492 | fn parse_call_expression(&mut self, func: Box) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 492 | fn parse_call_expression(&mut self, func: Box) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:204:28 [INFO] [stdout] | [INFO] [stdout] 204 | let mut result: Rc = Rc::new(object::Null {}); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 204 | let mut result: Rc = Rc::new(object::Null {}); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:319:46 [INFO] [stdout] | [INFO] [stdout] 319 | fn eval_minus_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 319 | fn eval_minus_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:319:61 [INFO] [stdout] | [INFO] [stdout] 319 | fn eval_minus_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 319 | fn eval_minus_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:333:45 [INFO] [stdout] | [INFO] [stdout] 333 | fn eval_bang_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 333 | fn eval_bang_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:333:60 [INFO] [stdout] | [INFO] [stdout] 333 | fn eval_bang_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 333 | fn eval_bang_operator(&self, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:380:55 [INFO] [stdout] | [INFO] [stdout] 380 | fn eval_boolean_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 380 | fn eval_boolean_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:380:75 [INFO] [stdout] | [INFO] [stdout] 380 | fn eval_boolean_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 380 | fn eval_boolean_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:380:90 [INFO] [stdout] | [INFO] [stdout] 380 | fn eval_boolean_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 380 | fn eval_boolean_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:397:55 [INFO] [stdout] | [INFO] [stdout] 397 | fn eval_integer_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 397 | fn eval_integer_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:397:75 [INFO] [stdout] | [INFO] [stdout] 397 | fn eval_integer_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 397 | fn eval_integer_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:397:90 [INFO] [stdout] | [INFO] [stdout] 397 | fn eval_integer_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 397 | fn eval_integer_infix_expression(&self, left: &Rc, right: &Rc) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:562:70 [INFO] [stdout] | [INFO] [stdout] 562 | fn eval_arguments(&self, env: Rc>) -> Vec> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 562 | fn eval_arguments(&self, env: Rc>) -> Vec> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:580:18 [INFO] [stdout] | [INFO] [stdout] 580 | func: Rc, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 580 | func: Rc, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:581:22 [INFO] [stdout] | [INFO] [stdout] 581 | args: Vec>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 581 | args: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:583:13 [INFO] [stdout] | [INFO] [stdout] 583 | ) -> Rc { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 583 | ) -> Rc { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/enviroment/mod.rs:40:53 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn insert(&mut self, key: String, value: Rc) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 40 | pub fn insert(&mut self, key: String, value: Rc) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/enviroment/mod.rs:45:50 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn get(&self, key: &String) -> Option> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 45 | pub fn get(&self, key: &String) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:563:35 [INFO] [stdout] | [INFO] [stdout] 563 | let mut to_return: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 563 | let mut to_return: Vec> = Vec::new(); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:166:49 [INFO] [stdout] | [INFO] [stdout] 166 | fn parse_statement(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 166 | fn parse_statement(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:564:28 [INFO] [stdout] | [INFO] [stdout] 564 | let mut result: Rc; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 564 | let mut result: Rc; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:174:53 [INFO] [stdout] | [INFO] [stdout] 174 | fn parse_let_statement(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 174 | fn parse_let_statement(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:212:56 [INFO] [stdout] | [INFO] [stdout] 212 | fn parse_return_statement(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 212 | fn parse_return_statement(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:234:60 [INFO] [stdout] | [INFO] [stdout] 234 | fn parse_expression_statement(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 234 | fn parse_expression_statement(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:255:55 [INFO] [stdout] | [INFO] [stdout] 255 | fn parse_block_statement(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 255 | fn parse_block_statement(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:279:74 [INFO] [stdout] | [INFO] [stdout] 279 | fn parse_expression(&mut self, precedence: Precedence) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 279 | fn parse_expression(&mut self, precedence: Precedence) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:317:61 [INFO] [stdout] | [INFO] [stdout] 317 | fn parse_identifier_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 317 | fn parse_identifier_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:324:55 [INFO] [stdout] | [INFO] [stdout] 324 | fn parse_bool_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 324 | fn parse_bool_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:332:59 [INFO] [stdout] | [INFO] [stdout] 332 | fn parse_integral_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 332 | fn parse_integral_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:347:57 [INFO] [stdout] | [INFO] [stdout] 347 | fn parse_prefix_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 347 | fn parse_prefix_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:366:52 [INFO] [stdout] | [INFO] [stdout] 366 | fn parse_infix_expression(&mut self, left: Box) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 366 | fn parse_infix_expression(&mut self, left: Box) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:366:73 [INFO] [stdout] | [INFO] [stdout] 366 | fn parse_infix_expression(&mut self, left: Box) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 366 | fn parse_infix_expression(&mut self, left: Box) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:387:58 [INFO] [stdout] | [INFO] [stdout] 387 | fn parse_grouped_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 387 | fn parse_grouped_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:399:57 [INFO] [stdout] | [INFO] [stdout] 399 | fn parse_ifelse_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 399 | fn parse_ifelse_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:451:55 [INFO] [stdout] | [INFO] [stdout] 451 | fn parse_func_expression(&mut self) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 451 | fn parse_func_expression(&mut self) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:492:51 [INFO] [stdout] | [INFO] [stdout] 492 | fn parse_call_expression(&mut self, func: Box) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 492 | fn parse_call_expression(&mut self, func: Box) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:492:72 [INFO] [stdout] | [INFO] [stdout] 492 | fn parse_call_expression(&mut self, func: Box) -> Option> { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 492 | fn parse_call_expression(&mut self, func: Box) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:204:28 [INFO] [stdout] | [INFO] [stdout] 204 | let mut result: Rc = Rc::new(object::Null {}); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 204 | let mut result: Rc = Rc::new(object::Null {}); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:75:39 [INFO] [stdout] | [INFO] [stdout] 75 | let mut statement: Option>; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 75 | let mut statement: Option>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:432:41 [INFO] [stdout] | [INFO] [stdout] 432 | let mut alternative: Option> = None; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 432 | let mut alternative: Option> = None; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:460:37 [INFO] [stdout] | [INFO] [stdout] 460 | let mut parameters: Vec> = Vec::new(); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 460 | let mut parameters: Vec> = Vec::new(); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:36:24 [INFO] [stdout] | [INFO] [stdout] 36 | let mut result: Rc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 36 | let mut result: Rc; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:563:35 [INFO] [stdout] | [INFO] [stdout] 563 | let mut to_return: Vec> = Vec::new(); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 563 | let mut to_return: Vec> = Vec::new(); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/ast/mod.rs:564:28 [INFO] [stdout] | [INFO] [stdout] 564 | let mut result: Rc; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 564 | let mut result: Rc; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:75:39 [INFO] [stdout] | [INFO] [stdout] 75 | let mut statement: Option>; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 75 | let mut statement: Option>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:432:41 [INFO] [stdout] | [INFO] [stdout] 432 | let mut alternative: Option> = None; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 432 | let mut alternative: Option> = None; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser/mod.rs:460:37 [INFO] [stdout] | [INFO] [stdout] 460 | let mut parameters: Vec> = Vec::new(); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 460 | let mut parameters: Vec> = Vec::new(); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:36:24 [INFO] [stdout] | [INFO] [stdout] 36 | let mut result: Rc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 36 | let mut result: Rc; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `token` is never read [INFO] [stdout] --> src/ast/mod.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct ExpressionStatement { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] 78 | pub token: Token, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `token` is never read [INFO] [stdout] --> src/ast/mod.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 82 | pub struct BlockStatement { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 83 | pub token: Token, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `token` is never read [INFO] [stdout] --> src/ast/mod.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 127 | pub struct CallExpression { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 128 | pub token: Token, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:141:9 [INFO] [stdout] | [INFO] [stdout] 141 | return NodeType::LetStatement; [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] 141 - return NodeType::LetStatement; [INFO] [stdout] 141 + NodeType::LetStatement [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | return Rc::new(object::Null {}); [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] 155 - return Rc::new(object::Null {}); [INFO] [stdout] 155 + Rc::new(object::Null {}) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | / return format!( [INFO] [stdout] 160 | | "[{} {} = {}]", [INFO] [stdout] 161 | | self.token, [INFO] [stdout] 162 | | self.identifier.to_string(), [INFO] [stdout] 163 | | self.value.to_string() [INFO] [stdout] 164 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 159 ~ format!( [INFO] [stdout] 160 + "[{} {} = {}]", [INFO] [stdout] 161 + self.token, [INFO] [stdout] 162 + self.identifier.to_string(), [INFO] [stdout] 163 + self.value.to_string() [INFO] [stdout] 164 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | return NodeType::ReturnStatement; [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] 170 - return NodeType::ReturnStatement; [INFO] [stdout] 170 + NodeType::ReturnStatement [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:174:9 [INFO] [stdout] | [INFO] [stdout] 174 | return self.value.eval(env); [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] 174 - return self.value.eval(env); [INFO] [stdout] 174 + self.value.eval(env) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | return format!("[{} {}]", self.token, self.value.to_string()); [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] 178 - return format!("[{} {}]", self.token, self.value.to_string()); [INFO] [stdout] 178 + format!("[{} {}]", self.token, self.value.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:184:9 [INFO] [stdout] | [INFO] [stdout] 184 | return NodeType::ExpressionStatement; [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] 184 - return NodeType::ExpressionStatement; [INFO] [stdout] 184 + NodeType::ExpressionStatement [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | return self.value.eval(env); [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] 188 - return self.value.eval(env); [INFO] [stdout] 188 + self.value.eval(env) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | return format!("[{}]", self.value.to_string()); [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] 192 - return format!("[{}]", self.value.to_string()); [INFO] [stdout] 192 + format!("[{}]", self.value.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | return NodeType::BlockStatement; [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] 198 - return NodeType::BlockStatement; [INFO] [stdout] 198 + NodeType::BlockStatement [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:211:9 [INFO] [stdout] | [INFO] [stdout] 211 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 211 - return result; [INFO] [stdout] 211 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | return to_return; [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] 220 - return to_return; [INFO] [stdout] 220 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:228:9 [INFO] [stdout] | [INFO] [stdout] 228 | return NodeType::IntegralExpression; [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] 228 - return NodeType::IntegralExpression; [INFO] [stdout] 228 + NodeType::IntegralExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | return Rc::new(object::Integer { value: self.value }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 232 - return Rc::new(object::Integer { value: self.value }); [INFO] [stdout] 232 + Rc::new(object::Integer { value: self.value }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | return format!("{}", self.token); [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] 236 - return format!("{}", self.token); [INFO] [stdout] 236 + format!("{}", self.token) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:242:9 [INFO] [stdout] | [INFO] [stdout] 242 | return NodeType::BoolExpression; [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] 242 - return NodeType::BoolExpression; [INFO] [stdout] 242 + NodeType::BoolExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:246:9 [INFO] [stdout] | [INFO] [stdout] 246 | return Rc::new(object::Boolean { value: self.value }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 246 - return Rc::new(object::Boolean { value: self.value }); [INFO] [stdout] 246 + Rc::new(object::Boolean { value: self.value }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | return format!("{}", self.token); [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] 250 - return format!("{}", self.token); [INFO] [stdout] 250 + format!("{}", self.token) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:256:9 [INFO] [stdout] | [INFO] [stdout] 256 | return NodeType::IdentifierExpression; [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] 256 - return NodeType::IdentifierExpression; [INFO] [stdout] 256 + NodeType::IdentifierExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:304:9 [INFO] [stdout] | [INFO] [stdout] 304 | / return Rc::new(object::Error { [INFO] [stdout] 305 | | message: format!( [INFO] [stdout] 306 | | "Variable {} in scope but there was an error extracting it from the enviroment.", [INFO] [stdout] 307 | | self.token.literal [INFO] [stdout] 308 | | ) [INFO] [stdout] 309 | | .to_string(), [INFO] [stdout] 310 | | }); [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] 304 ~ Rc::new(object::Error { [INFO] [stdout] 305 + message: format!( [INFO] [stdout] 306 + "Variable {} in scope but there was an error extracting it from the enviroment.", [INFO] [stdout] 307 + self.token.literal [INFO] [stdout] 308 + ) [INFO] [stdout] 309 + .to_string(), [INFO] [stdout] 310 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:314:9 [INFO] [stdout] | [INFO] [stdout] 314 | return format!("{}", self.token); [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] 314 - return format!("{}", self.token); [INFO] [stdout] 314 + format!("{}", self.token) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `operand` after checking its variant with `is_some` [INFO] [stdout] --> src/ast/mod.rs:323:25 [INFO] [stdout] | [INFO] [stdout] 321 | if operand.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = operand` [INFO] [stdout] 322 | let to_return = object::Integer { [INFO] [stdout] 323 | value: -operand.unwrap().value, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | / return Rc::new(object::Error { [INFO] [stdout] 329 | | message: "Error: Prefix operand is not an integer as expected".to_string(), [INFO] [stdout] 330 | | }); [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] 328 ~ Rc::new(object::Error { [INFO] [stdout] 329 + message: "Error: Prefix operand is not an integer as expected".to_string(), [INFO] [stdout] 330 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `operand` after checking its variant with `is_some` [INFO] [stdout] --> src/ast/mod.rs:337:25 [INFO] [stdout] | [INFO] [stdout] 335 | if operand.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = operand` [INFO] [stdout] 336 | let to_return = object::Boolean { [INFO] [stdout] 337 | value: !operand.unwrap().value, [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/ast/mod.rs:342:9 [INFO] [stdout] | [INFO] [stdout] 342 | / return Rc::new(object::Error { [INFO] [stdout] 343 | | message: "Error: Prefix operand is not a boolean as expected".to_string(), [INFO] [stdout] 344 | | }); [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 ~ Rc::new(object::Error { [INFO] [stdout] 343 + message: "Error: Prefix operand is not a boolean as expected".to_string(), [INFO] [stdout] 344 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:350:9 [INFO] [stdout] | [INFO] [stdout] 350 | return NodeType::PrefixExpression; [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] 350 - return NodeType::PrefixExpression; [INFO] [stdout] 350 + NodeType::PrefixExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:361:17 [INFO] [stdout] | [INFO] [stdout] 361 | return self.eval_bang_operator(&right); [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] 361 - return self.eval_bang_operator(&right); [INFO] [stdout] 361 + self.eval_bang_operator(&right) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:364:17 [INFO] [stdout] | [INFO] [stdout] 364 | return self.eval_minus_operator(&right); [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] 364 - return self.eval_minus_operator(&right); [INFO] [stdout] 364 + self.eval_minus_operator(&right) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:367:17 [INFO] [stdout] | [INFO] [stdout] 367 | / return Rc::new(object::Error { [INFO] [stdout] 368 | | message: "Error: Not a valid prefix operator.".to_string(), [INFO] [stdout] 369 | | }); [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] 367 ~ Rc::new(object::Error { [INFO] [stdout] 368 + message: "Error: Not a valid prefix operator.".to_string(), [INFO] [stdout] 369 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:375:9 [INFO] [stdout] | [INFO] [stdout] 375 | return format!("[{} {}]", self.token, self.right.to_string()); [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] 375 - return format!("[{} {}]", self.token, self.right.to_string()); [INFO] [stdout] 375 + format!("[{} {}]", self.token, self.right.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:392:9 [INFO] [stdout] | [INFO] [stdout] 392 | / return Rc::new(object::Boolean { [INFO] [stdout] 393 | | value: value.unwrap(), [INFO] [stdout] 394 | | }); [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] 392 ~ Rc::new(object::Boolean { [INFO] [stdout] 393 + value: value.unwrap(), [INFO] [stdout] 394 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `int_value` after checking its variant with `is_some` [INFO] [stdout] --> src/ast/mod.rs:415:24 [INFO] [stdout] | [INFO] [stdout] 413 | if int_value.is_some() { [INFO] [stdout] | ---------------------- help: try: `if let Some() = int_value` [INFO] [stdout] 414 | return Rc::new(object::Integer { [INFO] [stdout] 415 | value: int_value.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `bool_value` after checking its variant with `is_some` [INFO] [stdout] --> src/ast/mod.rs:429:24 [INFO] [stdout] | [INFO] [stdout] 427 | if bool_value.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = bool_value` [INFO] [stdout] 428 | return Rc::new(object::Boolean { [INFO] [stdout] 429 | value: bool_value.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/ast/mod.rs:432:9 [INFO] [stdout] | [INFO] [stdout] 432 | / return Rc::new(object::Error { [INFO] [stdout] 433 | | message: "Integer infix being evaluated with invalid operand.".to_string(), [INFO] [stdout] 434 | | }); [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 ~ Rc::new(object::Error { [INFO] [stdout] 433 + message: "Integer infix being evaluated with invalid operand.".to_string(), [INFO] [stdout] 434 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:440:9 [INFO] [stdout] | [INFO] [stdout] 440 | return NodeType::InfixExpression; [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] 440 - return NodeType::InfixExpression; [INFO] [stdout] 440 + NodeType::InfixExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:451:13 [INFO] [stdout] | [INFO] [stdout] 451 | return self.eval_integer_infix_expression(&l_operand, &r_operand); [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] 451 - return self.eval_integer_infix_expression(&l_operand, &r_operand); [INFO] [stdout] 451 + self.eval_integer_infix_expression(&l_operand, &r_operand) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:457:13 [INFO] [stdout] | [INFO] [stdout] 457 | return self.eval_boolean_infix_expression(&l_operand, &r_operand); [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] 457 - return self.eval_boolean_infix_expression(&l_operand, &r_operand); [INFO] [stdout] 457 + self.eval_boolean_infix_expression(&l_operand, &r_operand) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:461:13 [INFO] [stdout] | [INFO] [stdout] 461 | / return Rc::new(object::Error { [INFO] [stdout] 462 | | message: "The operand types don't match.".to_string(), [INFO] [stdout] 463 | | }); [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] 461 ~ Rc::new(object::Error { [INFO] [stdout] 462 + message: "The operand types don't match.".to_string(), [INFO] [stdout] 463 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:468:9 [INFO] [stdout] | [INFO] [stdout] 468 | / return format!( [INFO] [stdout] 469 | | "[{} {} {}]", [INFO] [stdout] 470 | | self.left.to_string(), [INFO] [stdout] 471 | | self.token, [INFO] [stdout] 472 | | self.right.to_string() [INFO] [stdout] 473 | | ); [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 ~ format!( [INFO] [stdout] 469 + "[{} {} {}]", [INFO] [stdout] 470 + self.left.to_string(), [INFO] [stdout] 471 + self.token, [INFO] [stdout] 472 + self.right.to_string() [INFO] [stdout] 473 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:479:9 [INFO] [stdout] | [INFO] [stdout] 479 | return NodeType::IfElseExpression; [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] 479 - return NodeType::IfElseExpression; [INFO] [stdout] 479 + NodeType::IfElseExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:498:13 [INFO] [stdout] | [INFO] [stdout] 498 | return self.consequence.eval(env.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] 498 - return self.consequence.eval(env.clone()); [INFO] [stdout] 498 + self.consequence.eval(env.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:502:13 [INFO] [stdout] | [INFO] [stdout] 502 | return self.alternative.as_ref().unwrap().eval(env.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] 502 - return self.alternative.as_ref().unwrap().eval(env.clone()); [INFO] [stdout] 502 + self.alternative.as_ref().unwrap().eval(env.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:506:13 [INFO] [stdout] | [INFO] [stdout] 506 | return Rc::new(object::Null {}); [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] 506 - return Rc::new(object::Null {}); [INFO] [stdout] 506 + Rc::new(object::Null {}) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/ast/mod.rs:497:12 [INFO] [stdout] | [INFO] [stdout] 497 | if bool_condition.value == true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bool_condition.value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:519:9 [INFO] [stdout] | [INFO] [stdout] 519 | / return format!( [INFO] [stdout] 520 | | "{} {} do \n{}else do \n{}", [INFO] [stdout] 521 | | self.token, [INFO] [stdout] 522 | | self.condition.to_string(), [INFO] [stdout] 523 | | self.consequence.to_string(), [INFO] [stdout] 524 | | self.alternative.as_ref().unwrap().to_string() [INFO] [stdout] 525 | | ); [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] 519 ~ format!( [INFO] [stdout] 520 + "{} {} do \n{}else do \n{}", [INFO] [stdout] 521 + self.token, [INFO] [stdout] 522 + self.condition.to_string(), [INFO] [stdout] 523 + self.consequence.to_string(), [INFO] [stdout] 524 + self.alternative.as_ref().unwrap().to_string() [INFO] [stdout] 525 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:531:9 [INFO] [stdout] | [INFO] [stdout] 531 | return NodeType::FunctionExpression; [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] 531 - return NodeType::FunctionExpression; [INFO] [stdout] 531 + NodeType::FunctionExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:543:9 [INFO] [stdout] | [INFO] [stdout] 543 | return Rc::new(to_return); [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 Rc::new(to_return); [INFO] [stdout] 543 + Rc::new(to_return) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:557:9 [INFO] [stdout] | [INFO] [stdout] 557 | return to_return; [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] 557 - return to_return; [INFO] [stdout] 557 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/ast/mod.rs:552:12 [INFO] [stdout] | [INFO] [stdout] 552 | if self.parameters.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.parameters.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: unnecessary use of `to_string` [INFO] [stdout] --> src/ast/mod.rs:555:28 [INFO] [stdout] | [INFO] [stdout] 555 | to_return.push_str(&")\n".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use: `")\n"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:575:9 [INFO] [stdout] | [INFO] [stdout] 575 | return to_return; [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] 575 - return to_return; [INFO] [stdout] 575 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `token` is never read [INFO] [stdout] --> src/ast/mod.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct ExpressionStatement { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] 78 | pub token: Token, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `token` is never read [INFO] [stdout] --> src/ast/mod.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 82 | pub struct BlockStatement { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 83 | pub token: Token, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `token` is never read [INFO] [stdout] --> src/ast/mod.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 127 | pub struct CallExpression { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 128 | pub token: Token, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:617:9 [INFO] [stdout] | [INFO] [stdout] 617 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 617 - return result; [INFO] [stdout] 617 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/ast/mod.rs:590:26 [INFO] [stdout] | [INFO] [stdout] 590 | message: format!("Error in calling function").to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Error in calling function".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/ast/mod.rs:614:26 [INFO] [stdout] | [INFO] [stdout] 614 | message: format!("Error in calling function").to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Error in calling function".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:623:9 [INFO] [stdout] | [INFO] [stdout] 623 | return NodeType::CallExpression; [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] 623 - return NodeType::CallExpression; [INFO] [stdout] 623 + NodeType::CallExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:645:9 [INFO] [stdout] | [INFO] [stdout] 645 | return self.eval_func(func, arguments, env.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] 645 - return self.eval_func(func, arguments, env.clone()); [INFO] [stdout] 645 + self.eval_func(func, arguments, env.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:141:9 [INFO] [stdout] | [INFO] [stdout] 141 | return NodeType::LetStatement; [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] 141 - return NodeType::LetStatement; [INFO] [stdout] 141 + NodeType::LetStatement [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:658:9 [INFO] [stdout] | [INFO] [stdout] 658 | return to_return; [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] 658 - return to_return; [INFO] [stdout] 658 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/ast/mod.rs:654:12 [INFO] [stdout] | [INFO] [stdout] 654 | if self.arguments.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.arguments.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/ast/mod.rs:657:28 [INFO] [stdout] | [INFO] [stdout] 657 | to_return.push_str(&")]".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use: `")]"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/enviroment/mod.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | return to_return; [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 - return to_return; [INFO] [stdout] 37 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | return Rc::new(object::Null {}); [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] 155 - return Rc::new(object::Null {}); [INFO] [stdout] 155 + Rc::new(object::Null {}) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `to_return` after checking its variant with `is_some` [INFO] [stdout] --> src/enviroment/mod.rs:48:25 [INFO] [stdout] | [INFO] [stdout] 47 | if to_return.is_some() { [INFO] [stdout] | ---------------------- help: try: `if let Some() = to_return` [INFO] [stdout] 48 | return Some(to_return.unwrap().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.outer` after checking its variant with `is_some` [INFO] [stdout] --> src/enviroment/mod.rs:52:20 [INFO] [stdout] | [INFO] [stdout] 51 | if self.outer.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = &self.outer` [INFO] [stdout] 52 | return self [INFO] [stdout] | ____________________^ [INFO] [stdout] 53 | | .outer [INFO] [stdout] 54 | | .as_ref() [INFO] [stdout] 55 | | .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/enviroment/mod.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | 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] 60 - return None; [INFO] [stdout] 60 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | / return format!( [INFO] [stdout] 160 | | "[{} {} = {}]", [INFO] [stdout] 161 | | self.token, [INFO] [stdout] 162 | | self.identifier.to_string(), [INFO] [stdout] 163 | | self.value.to_string() [INFO] [stdout] 164 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 159 ~ format!( [INFO] [stdout] 160 + "[{} {} = {}]", [INFO] [stdout] 161 + self.token, [INFO] [stdout] 162 + self.identifier.to_string(), [INFO] [stdout] 163 + self.value.to_string() [INFO] [stdout] 164 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are needlessly cloning iterator elements [INFO] [stdout] --> src/enviroment/mod.rs:57:26 [INFO] [stdout] | [INFO] [stdout] 57 | .get(key) [INFO] [stdout] | __________________________^ [INFO] [stdout] 58 | | .map(|x| x.clone()); [INFO] [stdout] | |___________________________________^ help: remove the `map` call [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | return NodeType::ReturnStatement; [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] 170 - return NodeType::ReturnStatement; [INFO] [stdout] 170 + NodeType::ReturnStatement [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:174:9 [INFO] [stdout] | [INFO] [stdout] 174 | return self.value.eval(env); [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] 174 - return self.value.eval(env); [INFO] [stdout] 174 + self.value.eval(env) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | return format!("[{} {}]", self.token, self.value.to_string()); [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] 178 - return format!("[{} {}]", self.token, self.value.to_string()); [INFO] [stdout] 178 + format!("[{} {}]", self.token, self.value.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:184:9 [INFO] [stdout] | [INFO] [stdout] 184 | return NodeType::ExpressionStatement; [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] 184 - return NodeType::ExpressionStatement; [INFO] [stdout] 184 + NodeType::ExpressionStatement [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | return literal.chars().all(|x| x.is_digit(10)); [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] 69 - return literal.chars().all(|x| x.is_digit(10)); [INFO] [stdout] 69 + literal.chars().all(|x| x.is_digit(10)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/lexer/token.rs:68:20 [INFO] [stdout] | [INFO] [stdout] 68 | fn is_int(literal: &String) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 68 - fn is_int(literal: &String) -> bool { [INFO] [stdout] 68 + fn is_int(literal: &str) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | return self.value.eval(env); [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] 188 - return self.value.eval(env); [INFO] [stdout] 188 + self.value.eval(env) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | return format!("[{}]", self.value.to_string()); [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] 192 - return format!("[{}]", self.value.to_string()); [INFO] [stdout] 192 + format!("[{}]", self.value.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/lexer/token.rs:69:36 [INFO] [stdout] | [INFO] [stdout] 69 | return literal.chars().all(|x| x.is_digit(10)); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `x.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/token.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | return literal.chars().all(|x| x.is_ascii_alphabetic()); [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 literal.chars().all(|x| x.is_ascii_alphabetic()); [INFO] [stdout] 73 + literal.chars().all(|x| x.is_ascii_alphabetic()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/lexer/token.rs:72:27 [INFO] [stdout] | [INFO] [stdout] 72 | fn is_identifier(literal: &String) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 72 - fn is_identifier(literal: &String) -> bool { [INFO] [stdout] 72 + fn is_identifier(literal: &str) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | return NodeType::BlockStatement; [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] 198 - return NodeType::BlockStatement; [INFO] [stdout] 198 + NodeType::BlockStatement [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:211:9 [INFO] [stdout] | [INFO] [stdout] 211 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 211 - return result; [INFO] [stdout] 211 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | / return Token { [INFO] [stdout] 147 | | token_type: token_type, [INFO] [stdout] 148 | | literal: literal, [INFO] [stdout] 149 | | }; [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 ~ Token { [INFO] [stdout] 147 + token_type: token_type, [INFO] [stdout] 148 + literal: literal, [INFO] [stdout] 149 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | return to_return; [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] 220 - return to_return; [INFO] [stdout] 220 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:228:9 [INFO] [stdout] | [INFO] [stdout] 228 | return NodeType::IntegralExpression; [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] 228 - return NodeType::IntegralExpression; [INFO] [stdout] 228 + NodeType::IntegralExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | return Rc::new(object::Integer { value: self.value }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 232 - return Rc::new(object::Integer { value: self.value }); [INFO] [stdout] 232 + Rc::new(object::Integer { value: self.value }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | return format!("{}", self.token); [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] 236 - return format!("{}", self.token); [INFO] [stdout] 236 + format!("{}", self.token) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:242:9 [INFO] [stdout] | [INFO] [stdout] 242 | return NodeType::BoolExpression; [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] 242 - return NodeType::BoolExpression; [INFO] [stdout] 242 + NodeType::BoolExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:246:9 [INFO] [stdout] | [INFO] [stdout] 246 | return Rc::new(object::Boolean { value: self.value }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 246 - return Rc::new(object::Boolean { value: self.value }); [INFO] [stdout] 246 + Rc::new(object::Boolean { value: self.value }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | return format!("{}", self.token); [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] 250 - return format!("{}", self.token); [INFO] [stdout] 250 + format!("{}", self.token) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:256:9 [INFO] [stdout] | [INFO] [stdout] 256 | return NodeType::IdentifierExpression; [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] 256 - return NodeType::IdentifierExpression; [INFO] [stdout] 256 + NodeType::IdentifierExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:304:9 [INFO] [stdout] | [INFO] [stdout] 304 | / return Rc::new(object::Error { [INFO] [stdout] 305 | | message: format!( [INFO] [stdout] 306 | | "Variable {} in scope but there was an error extracting it from the enviroment.", [INFO] [stdout] 307 | | self.token.literal [INFO] [stdout] 308 | | ) [INFO] [stdout] 309 | | .to_string(), [INFO] [stdout] 310 | | }); [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] 304 ~ Rc::new(object::Error { [INFO] [stdout] 305 + message: format!( [INFO] [stdout] 306 + "Variable {} in scope but there was an error extracting it from the enviroment.", [INFO] [stdout] 307 + self.token.literal [INFO] [stdout] 308 + ) [INFO] [stdout] 309 + .to_string(), [INFO] [stdout] 310 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:314:9 [INFO] [stdout] | [INFO] [stdout] 314 | return format!("{}", self.token); [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] 314 - return format!("{}", self.token); [INFO] [stdout] 314 + format!("{}", self.token) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `operand` after checking its variant with `is_some` [INFO] [stdout] --> src/ast/mod.rs:323:25 [INFO] [stdout] | [INFO] [stdout] 321 | if operand.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = operand` [INFO] [stdout] 322 | let to_return = object::Integer { [INFO] [stdout] 323 | value: -operand.unwrap().value, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | / return Rc::new(object::Error { [INFO] [stdout] 329 | | message: "Error: Prefix operand is not an integer as expected".to_string(), [INFO] [stdout] 330 | | }); [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] 328 ~ Rc::new(object::Error { [INFO] [stdout] 329 + message: "Error: Prefix operand is not an integer as expected".to_string(), [INFO] [stdout] 330 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `operand` after checking its variant with `is_some` [INFO] [stdout] --> src/ast/mod.rs:337:25 [INFO] [stdout] | [INFO] [stdout] 335 | if operand.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = operand` [INFO] [stdout] 336 | let to_return = object::Boolean { [INFO] [stdout] 337 | value: !operand.unwrap().value, [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/ast/mod.rs:342:9 [INFO] [stdout] | [INFO] [stdout] 342 | / return Rc::new(object::Error { [INFO] [stdout] 343 | | message: "Error: Prefix operand is not a boolean as expected".to_string(), [INFO] [stdout] 344 | | }); [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 ~ Rc::new(object::Error { [INFO] [stdout] 343 + message: "Error: Prefix operand is not a boolean as expected".to_string(), [INFO] [stdout] 344 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:350:9 [INFO] [stdout] | [INFO] [stdout] 350 | return NodeType::PrefixExpression; [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] 350 - return NodeType::PrefixExpression; [INFO] [stdout] 350 + NodeType::PrefixExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:361:17 [INFO] [stdout] | [INFO] [stdout] 361 | return self.eval_bang_operator(&right); [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] 361 - return self.eval_bang_operator(&right); [INFO] [stdout] 361 + self.eval_bang_operator(&right) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:364:17 [INFO] [stdout] | [INFO] [stdout] 364 | return self.eval_minus_operator(&right); [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] 364 - return self.eval_minus_operator(&right); [INFO] [stdout] 364 + self.eval_minus_operator(&right) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:367:17 [INFO] [stdout] | [INFO] [stdout] 367 | / return Rc::new(object::Error { [INFO] [stdout] 368 | | message: "Error: Not a valid prefix operator.".to_string(), [INFO] [stdout] 369 | | }); [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] 367 ~ Rc::new(object::Error { [INFO] [stdout] 368 + message: "Error: Not a valid prefix operator.".to_string(), [INFO] [stdout] 369 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:375:9 [INFO] [stdout] | [INFO] [stdout] 375 | return format!("[{} {}]", self.token, self.right.to_string()); [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] 375 - return format!("[{} {}]", self.token, self.right.to_string()); [INFO] [stdout] 375 + format!("[{} {}]", self.token, self.right.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:392:9 [INFO] [stdout] | [INFO] [stdout] 392 | / return Rc::new(object::Boolean { [INFO] [stdout] 393 | | value: value.unwrap(), [INFO] [stdout] 394 | | }); [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] 392 ~ Rc::new(object::Boolean { [INFO] [stdout] 393 + value: value.unwrap(), [INFO] [stdout] 394 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `int_value` after checking its variant with `is_some` [INFO] [stdout] --> src/ast/mod.rs:415:24 [INFO] [stdout] | [INFO] [stdout] 413 | if int_value.is_some() { [INFO] [stdout] | ---------------------- help: try: `if let Some() = int_value` [INFO] [stdout] 414 | return Rc::new(object::Integer { [INFO] [stdout] 415 | value: int_value.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `bool_value` after checking its variant with `is_some` [INFO] [stdout] --> src/ast/mod.rs:429:24 [INFO] [stdout] | [INFO] [stdout] 427 | if bool_value.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = bool_value` [INFO] [stdout] 428 | return Rc::new(object::Boolean { [INFO] [stdout] 429 | value: bool_value.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/ast/mod.rs:432:9 [INFO] [stdout] | [INFO] [stdout] 432 | / return Rc::new(object::Error { [INFO] [stdout] 433 | | message: "Integer infix being evaluated with invalid operand.".to_string(), [INFO] [stdout] 434 | | }); [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 ~ Rc::new(object::Error { [INFO] [stdout] 433 + message: "Integer infix being evaluated with invalid operand.".to_string(), [INFO] [stdout] 434 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:440:9 [INFO] [stdout] | [INFO] [stdout] 440 | return NodeType::InfixExpression; [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] 440 - return NodeType::InfixExpression; [INFO] [stdout] 440 + NodeType::InfixExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:451:13 [INFO] [stdout] | [INFO] [stdout] 451 | return self.eval_integer_infix_expression(&l_operand, &r_operand); [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] 451 - return self.eval_integer_infix_expression(&l_operand, &r_operand); [INFO] [stdout] 451 + self.eval_integer_infix_expression(&l_operand, &r_operand) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:457:13 [INFO] [stdout] | [INFO] [stdout] 457 | return self.eval_boolean_infix_expression(&l_operand, &r_operand); [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] 457 - return self.eval_boolean_infix_expression(&l_operand, &r_operand); [INFO] [stdout] 457 + self.eval_boolean_infix_expression(&l_operand, &r_operand) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:461:13 [INFO] [stdout] | [INFO] [stdout] 461 | / return Rc::new(object::Error { [INFO] [stdout] 462 | | message: "The operand types don't match.".to_string(), [INFO] [stdout] 463 | | }); [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] 461 ~ Rc::new(object::Error { [INFO] [stdout] 462 + message: "The operand types don't match.".to_string(), [INFO] [stdout] 463 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:468:9 [INFO] [stdout] | [INFO] [stdout] 468 | / return format!( [INFO] [stdout] 469 | | "[{} {} {}]", [INFO] [stdout] 470 | | self.left.to_string(), [INFO] [stdout] 471 | | self.token, [INFO] [stdout] 472 | | self.right.to_string() [INFO] [stdout] 473 | | ); [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 ~ format!( [INFO] [stdout] 469 + "[{} {} {}]", [INFO] [stdout] 470 + self.left.to_string(), [INFO] [stdout] 471 + self.token, [INFO] [stdout] 472 + self.right.to_string() [INFO] [stdout] 473 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:479:9 [INFO] [stdout] | [INFO] [stdout] 479 | return NodeType::IfElseExpression; [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] 479 - return NodeType::IfElseExpression; [INFO] [stdout] 479 + NodeType::IfElseExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:498:13 [INFO] [stdout] | [INFO] [stdout] 498 | return self.consequence.eval(env.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] 498 - return self.consequence.eval(env.clone()); [INFO] [stdout] 498 + self.consequence.eval(env.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:502:13 [INFO] [stdout] | [INFO] [stdout] 502 | return self.alternative.as_ref().unwrap().eval(env.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] 502 - return self.alternative.as_ref().unwrap().eval(env.clone()); [INFO] [stdout] 502 + self.alternative.as_ref().unwrap().eval(env.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:506:13 [INFO] [stdout] | [INFO] [stdout] 506 | return Rc::new(object::Null {}); [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] 506 - return Rc::new(object::Null {}); [INFO] [stdout] 506 + Rc::new(object::Null {}) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/ast/mod.rs:497:12 [INFO] [stdout] | [INFO] [stdout] 497 | if bool_condition.value == true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bool_condition.value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:519:9 [INFO] [stdout] | [INFO] [stdout] 519 | / return format!( [INFO] [stdout] 520 | | "{} {} do \n{}else do \n{}", [INFO] [stdout] 521 | | self.token, [INFO] [stdout] 522 | | self.condition.to_string(), [INFO] [stdout] 523 | | self.consequence.to_string(), [INFO] [stdout] 524 | | self.alternative.as_ref().unwrap().to_string() [INFO] [stdout] 525 | | ); [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] 519 ~ format!( [INFO] [stdout] 520 + "{} {} do \n{}else do \n{}", [INFO] [stdout] 521 + self.token, [INFO] [stdout] 522 + self.condition.to_string(), [INFO] [stdout] 523 + self.consequence.to_string(), [INFO] [stdout] 524 + self.alternative.as_ref().unwrap().to_string() [INFO] [stdout] 525 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:531:9 [INFO] [stdout] | [INFO] [stdout] 531 | return NodeType::FunctionExpression; [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] 531 - return NodeType::FunctionExpression; [INFO] [stdout] 531 + NodeType::FunctionExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:543:9 [INFO] [stdout] | [INFO] [stdout] 543 | return Rc::new(to_return); [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 Rc::new(to_return); [INFO] [stdout] 543 + Rc::new(to_return) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:557:9 [INFO] [stdout] | [INFO] [stdout] 557 | return to_return; [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] 557 - return to_return; [INFO] [stdout] 557 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/ast/mod.rs:552:12 [INFO] [stdout] | [INFO] [stdout] 552 | if self.parameters.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.parameters.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: unnecessary use of `to_string` [INFO] [stdout] --> src/ast/mod.rs:555:28 [INFO] [stdout] | [INFO] [stdout] 555 | to_return.push_str(&")\n".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use: `")\n"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:575:9 [INFO] [stdout] | [INFO] [stdout] 575 | return to_return; [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] 575 - return to_return; [INFO] [stdout] 575 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | / return self.token_type == TokenType::Plus [INFO] [stdout] 154 | | || self.token_type == TokenType::Minus [INFO] [stdout] 155 | | || self.token_type == TokenType::Asterisk [INFO] [stdout] 156 | | || self.token_type == TokenType::Slash [INFO] [stdout] ... | [INFO] [stdout] 159 | | || self.token_type == TokenType::Equal [INFO] [stdout] 160 | | || self.token_type == TokenType::NotEqual; [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] 153 ~ self.token_type == TokenType::Plus [INFO] [stdout] 154 + || self.token_type == TokenType::Minus [INFO] [stdout] 155 + || self.token_type == TokenType::Asterisk [INFO] [stdout] 156 + || self.token_type == TokenType::Slash [INFO] [stdout] 157 + || self.token_type == TokenType::Lt [INFO] [stdout] 158 + || self.token_type == TokenType::Gt [INFO] [stdout] 159 + || self.token_type == TokenType::Equal [INFO] [stdout] 160 ~ || self.token_type == TokenType::NotEqual [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | return result.unwrap().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] 179 - return result.unwrap().clone(); [INFO] [stdout] 179 + result.unwrap().clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:617:9 [INFO] [stdout] | [INFO] [stdout] 617 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 617 - return result; [INFO] [stdout] 617 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/ast/mod.rs:590:26 [INFO] [stdout] | [INFO] [stdout] 590 | message: format!("Error in calling function").to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Error in calling function".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/ast/mod.rs:614:26 [INFO] [stdout] | [INFO] [stdout] 614 | message: format!("Error in calling function").to_string(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Error in calling function".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:623:9 [INFO] [stdout] | [INFO] [stdout] 623 | return NodeType::CallExpression; [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] 623 - return NodeType::CallExpression; [INFO] [stdout] 623 + NodeType::CallExpression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:645:9 [INFO] [stdout] | [INFO] [stdout] 645 | return self.eval_func(func, arguments, env.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] 645 - return self.eval_func(func, arguments, env.clone()); [INFO] [stdout] 645 + self.eval_func(func, arguments, env.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast/mod.rs:658:9 [INFO] [stdout] | [INFO] [stdout] 658 | return to_return; [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] 658 - return to_return; [INFO] [stdout] 658 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/ast/mod.rs:654:12 [INFO] [stdout] | [INFO] [stdout] 654 | if self.arguments.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.arguments.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/ast/mod.rs:657:28 [INFO] [stdout] | [INFO] [stdout] 657 | to_return.push_str(&")]".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use: `")]"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/enviroment/mod.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | return to_return; [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 - return to_return; [INFO] [stdout] 37 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `to_return` after checking its variant with `is_some` [INFO] [stdout] --> src/enviroment/mod.rs:48:25 [INFO] [stdout] | [INFO] [stdout] 47 | if to_return.is_some() { [INFO] [stdout] | ---------------------- help: try: `if let Some() = to_return` [INFO] [stdout] 48 | return Some(to_return.unwrap().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.outer` after checking its variant with `is_some` [INFO] [stdout] --> src/enviroment/mod.rs:52:20 [INFO] [stdout] | [INFO] [stdout] 51 | if self.outer.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = &self.outer` [INFO] [stdout] 52 | return self [INFO] [stdout] | ____________________^ [INFO] [stdout] 53 | | .outer [INFO] [stdout] 54 | | .as_ref() [INFO] [stdout] 55 | | .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/enviroment/mod.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | 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] 60 - return None; [INFO] [stdout] 60 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Precedence` which implements the `Copy` trait [INFO] [stdout] --> src/lexer/token.rs:179:16 [INFO] [stdout] | [INFO] [stdout] 179 | return result.unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*result.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are needlessly cloning iterator elements [INFO] [stdout] --> src/enviroment/mod.rs:57:26 [INFO] [stdout] | [INFO] [stdout] 57 | .get(key) [INFO] [stdout] | __________________________^ [INFO] [stdout] 58 | | .map(|x| x.clone()); [INFO] [stdout] | |___________________________________^ help: remove the `map` call [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:190:13 [INFO] [stdout] | [INFO] [stdout] 190 | return write!(fmt, "="); [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] 190 - return write!(fmt, "="); [INFO] [stdout] 190 + write!(fmt, "=") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:192:13 [INFO] [stdout] | [INFO] [stdout] 192 | return write!(fmt, "+"); [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] 192 - return write!(fmt, "+"); [INFO] [stdout] 192 + write!(fmt, "+") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:194:13 [INFO] [stdout] | [INFO] [stdout] 194 | return write!(fmt, "-"); [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] 194 - return write!(fmt, "-"); [INFO] [stdout] 194 + write!(fmt, "-") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:196:13 [INFO] [stdout] | [INFO] [stdout] 196 | return write!(fmt, "!"); [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] 196 - return write!(fmt, "!"); [INFO] [stdout] 196 + write!(fmt, "!") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | return write!(fmt, "*"); [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] 198 - return write!(fmt, "*"); [INFO] [stdout] 198 + write!(fmt, "*") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:200:13 [INFO] [stdout] | [INFO] [stdout] 200 | return write!(fmt, "/"); [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] 200 - return write!(fmt, "/"); [INFO] [stdout] 200 + write!(fmt, "/") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:202:13 [INFO] [stdout] | [INFO] [stdout] 202 | return write!(fmt, "<"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 202 - return write!(fmt, "<"); [INFO] [stdout] 202 + write!(fmt, "<") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | return write!(fmt, ">"); [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] 204 - return write!(fmt, ">"); [INFO] [stdout] 204 + write!(fmt, ">") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | return literal.chars().all(|x| x.is_digit(10)); [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] 69 - return literal.chars().all(|x| x.is_digit(10)); [INFO] [stdout] 69 + literal.chars().all(|x| x.is_digit(10)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | return write!(fmt, "=="); [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] 206 - return write!(fmt, "=="); [INFO] [stdout] 206 + write!(fmt, "==") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/lexer/token.rs:68:20 [INFO] [stdout] | [INFO] [stdout] 68 | fn is_int(literal: &String) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 68 - fn is_int(literal: &String) -> bool { [INFO] [stdout] 68 + fn is_int(literal: &str) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/lexer/token.rs:69:36 [INFO] [stdout] | [INFO] [stdout] 69 | return literal.chars().all(|x| x.is_digit(10)); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `x.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/token.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | return literal.chars().all(|x| x.is_ascii_alphabetic()); [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 literal.chars().all(|x| x.is_ascii_alphabetic()); [INFO] [stdout] 73 + literal.chars().all(|x| x.is_ascii_alphabetic()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | return write!(fmt, "!="); [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] 208 - return write!(fmt, "!="); [INFO] [stdout] 208 + write!(fmt, "!=") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | return write!(fmt, ";"); [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] 212 - return write!(fmt, ";"); [INFO] [stdout] 212 + write!(fmt, ";") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/lexer/token.rs:72:27 [INFO] [stdout] | [INFO] [stdout] 72 | fn is_identifier(literal: &String) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 72 - fn is_identifier(literal: &String) -> bool { [INFO] [stdout] 72 + fn is_identifier(literal: &str) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:214:13 [INFO] [stdout] | [INFO] [stdout] 214 | return write!(fmt, ","); [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] 214 - return write!(fmt, ","); [INFO] [stdout] 214 + write!(fmt, ",") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:218:13 [INFO] [stdout] | [INFO] [stdout] 218 | return write!(fmt, "("); [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] 218 - return write!(fmt, "("); [INFO] [stdout] 218 + write!(fmt, "(") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:220:13 [INFO] [stdout] | [INFO] [stdout] 220 | return write!(fmt, ")"); [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] 220 - return write!(fmt, ")"); [INFO] [stdout] 220 + write!(fmt, ")") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:222:13 [INFO] [stdout] | [INFO] [stdout] 222 | return write!(fmt, "{{"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 222 - return write!(fmt, "{{"); [INFO] [stdout] 222 + write!(fmt, "{{") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 224 | return write!(fmt, "}}"); [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] 224 - return write!(fmt, "}}"); [INFO] [stdout] 224 + write!(fmt, "}}") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | return write!(fmt, "Let"); [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] 228 - return write!(fmt, "Let"); [INFO] [stdout] 228 + write!(fmt, "Let") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:230:13 [INFO] [stdout] | [INFO] [stdout] 230 | return write!(fmt, "Func"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 230 - return write!(fmt, "Func"); [INFO] [stdout] 230 + write!(fmt, "Func") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:232:13 [INFO] [stdout] | [INFO] [stdout] 232 | return write!(fmt, "If"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 232 - return write!(fmt, "If"); [INFO] [stdout] 232 + write!(fmt, "If") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | / return Token { [INFO] [stdout] 147 | | token_type: token_type, [INFO] [stdout] 148 | | literal: literal, [INFO] [stdout] 149 | | }; [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 ~ Token { [INFO] [stdout] 147 + token_type: token_type, [INFO] [stdout] 148 + literal: literal, [INFO] [stdout] 149 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:234:13 [INFO] [stdout] | [INFO] [stdout] 234 | return write!(fmt, "Else"); [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] 234 - return write!(fmt, "Else"); [INFO] [stdout] 234 + write!(fmt, "Else") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:236:13 [INFO] [stdout] | [INFO] [stdout] 236 | return write!(fmt, "Return"); [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] 236 - return write!(fmt, "Return"); [INFO] [stdout] 236 + write!(fmt, "Return") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:238:13 [INFO] [stdout] | [INFO] [stdout] 238 | return write!(fmt, "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] 238 - return write!(fmt, "True"); [INFO] [stdout] 238 + write!(fmt, "True") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:240:13 [INFO] [stdout] | [INFO] [stdout] 240 | return write!(fmt, "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] 240 - return write!(fmt, "False"); [INFO] [stdout] 240 + write!(fmt, "False") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:244:13 [INFO] [stdout] | [INFO] [stdout] 244 | return write!(fmt, "{}", self.literal); [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] 244 - return write!(fmt, "{}", self.literal); [INFO] [stdout] 244 + write!(fmt, "{}", self.literal) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:246:13 [INFO] [stdout] | [INFO] [stdout] 246 | return write!(fmt, "{}", self.literal); [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] 246 - return write!(fmt, "{}", self.literal); [INFO] [stdout] 246 + write!(fmt, "{}", self.literal) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:248:13 [INFO] [stdout] | [INFO] [stdout] 248 | return write!(fmt, "Eof"); [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] 248 - return write!(fmt, "Eof"); [INFO] [stdout] 248 + write!(fmt, "Eof") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:250:13 [INFO] [stdout] | [INFO] [stdout] 250 | return write!(fmt, "Illegal({})", self.literal); [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] 250 - return write!(fmt, "Illegal({})", self.literal); [INFO] [stdout] 250 + write!(fmt, "Illegal({})", self.literal) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/lexer/token.rs:243:51 [INFO] [stdout] | [INFO] [stdout] 243 | else if self.token_type == TokenType::Int { [INFO] [stdout] | ___________________________________________________^ [INFO] [stdout] 244 | | return write!(fmt, "{}", self.literal); [INFO] [stdout] 245 | | } else if self.token_type == TokenType::Ident { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/lexer/token.rs:245:55 [INFO] [stdout] | [INFO] [stdout] 245 | } else if self.token_type == TokenType::Ident { [INFO] [stdout] | _______________________________________________________^ [INFO] [stdout] 246 | | return write!(fmt, "{}", self.literal); [INFO] [stdout] 247 | | } else if self.token_type == TokenType::Eof { [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/lexer/mod.rs:31:30 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn new(input_string: &String) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 31 ~ pub fn new(input_string: &str) -> Self { [INFO] [stdout] 32 | if input_string.len() == 0 { [INFO] [stdout] ... [INFO] [stdout] 35 | Lexer { [INFO] [stdout] 36 ~ input: input_string.to_owned(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer/mod.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 32 | if input_string.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/mod.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | return self.input.chars().nth(self.read_position); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 46 - return self.input.chars().nth(self.read_position); [INFO] [stdout] 46 + self.input.chars().nth(self.read_position) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `val` after checking its variant with `is_some` [INFO] [stdout] --> src/lexer/mod.rs:52:24 [INFO] [stdout] | [INFO] [stdout] 51 | if val.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = val` [INFO] [stdout] 52 | self.val = val.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/mod.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | return val; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 58 - return val; [INFO] [stdout] 58 + val [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/mod.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 103 | return Some(to_return); [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] 103 - return Some(to_return); [INFO] [stdout] 103 + Some(to_return) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/lexer/mod.rs:85:74 [INFO] [stdout] | [INFO] [stdout] 85 | if self.val == '=' && self.peak_char().unwrap_or('0') == '=' { [INFO] [stdout] | __________________________________________________________________________^ [INFO] [stdout] 86 | | self.read_char(); [INFO] [stdout] 87 | | to_return.push(self.val); [INFO] [stdout] 88 | | } else if self.val == '!' && self.peak_char().unwrap_or('0') == '=' { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/lexer/mod.rs:88:81 [INFO] [stdout] | [INFO] [stdout] 88 | } else if self.val == '!' && self.peak_char().unwrap_or('0') == '=' { [INFO] [stdout] | _________________________________________________________________________________^ [INFO] [stdout] 89 | | self.read_char(); [INFO] [stdout] 90 | | to_return.push(self.val); [INFO] [stdout] 91 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `literal` after checking its variant with `is_some` [INFO] [stdout] --> src/lexer/mod.rs:109:36 [INFO] [stdout] | [INFO] [stdout] 108 | if literal.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = literal` [INFO] [stdout] 109 | return Some(Token::new(literal.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/lexer/mod.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | return Some(Token::new(literal.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 109 - return Some(Token::new(literal.unwrap())); [INFO] [stdout] 109 + Some(Token::new(literal.unwrap())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/mod.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | return Some(Token::new("EOF".to_string())); [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] 111 - return Some(Token::new("EOF".to_string())); [INFO] [stdout] 111 + Some(Token::new("EOF".to_string())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | return ObjectType::Integer; [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] 69 - return ObjectType::Integer; [INFO] [stdout] 69 + ObjectType::Integer [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | return format!("{}", self.value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 73 - return format!("{}", self.value); [INFO] [stdout] 73 + format!("{}", self.value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | return ObjectType::Boolean; [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] 79 - return ObjectType::Boolean; [INFO] [stdout] 79 + ObjectType::Boolean [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | return format!("{}", self.value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 83 - return format!("{}", self.value); [INFO] [stdout] 83 + format!("{}", self.value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | return ObjectType::Null; [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] 89 - return ObjectType::Null; [INFO] [stdout] 89 + ObjectType::Null [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | return format!("null"); [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] 93 - return format!("null"); [INFO] [stdout] 93 + format!("null") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/object/mod.rs:93:16 [INFO] [stdout] | [INFO] [stdout] 93 | return format!("null"); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"null".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | return ObjectType::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 99 - return ObjectType::Error; [INFO] [stdout] 99 + ObjectType::Error [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 103 | return format!("{}", self.message); [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] 103 - return format!("{}", self.message); [INFO] [stdout] 103 + format!("{}", self.message) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/object/mod.rs:103:16 [INFO] [stdout] | [INFO] [stdout] 103 | return format!("{}", self.message); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `self.message.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | return ObjectType::Function; [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] 109 - return ObjectType::Function; [INFO] [stdout] 109 + ObjectType::Function [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | return to_return; [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] 123 - return to_return; [INFO] [stdout] 123 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/object/mod.rs:113:29 [INFO] [stdout] | [INFO] [stdout] 113 | let mut to_return = format!("Func ("); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Func (".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/object/mod.rs:118:12 [INFO] [stdout] | [INFO] [stdout] 118 | if self.parameters.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.parameters.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/object/mod.rs:121:28 [INFO] [stdout] | [INFO] [stdout] 121 | to_return.push_str(&")\n".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use: `")\n"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser/mod.rs:79:16 [INFO] [stdout] | [INFO] [stdout] 79 | if !statement.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `statement.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `statement` after checking its variant with `is_none` [INFO] [stdout] --> src/parser/mod.rs:81:36 [INFO] [stdout] | [INFO] [stdout] 79 | if !statement.is_none() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] 80 | if debug { [INFO] [stdout] 81 | println!("{}", statement.as_ref().unwrap().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `statement` after checking its variant with `is_none` [INFO] [stdout] --> src/parser/mod.rs:83:41 [INFO] [stdout] | [INFO] [stdout] 79 | if !statement.is_none() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 83 | program.statements.push(statement.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | return Some(program); [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 - return Some(program); [INFO] [stdout] 88 + Some(program) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | / return self.token_type == TokenType::Plus [INFO] [stdout] 154 | | || self.token_type == TokenType::Minus [INFO] [stdout] 155 | | || self.token_type == TokenType::Asterisk [INFO] [stdout] 156 | | || self.token_type == TokenType::Slash [INFO] [stdout] ... | [INFO] [stdout] 159 | | || self.token_type == TokenType::Equal [INFO] [stdout] 160 | | || self.token_type == TokenType::NotEqual; [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] 153 ~ self.token_type == TokenType::Plus [INFO] [stdout] 154 + || self.token_type == TokenType::Minus [INFO] [stdout] 155 + || self.token_type == TokenType::Asterisk [INFO] [stdout] 156 + || self.token_type == TokenType::Slash [INFO] [stdout] 157 + || self.token_type == TokenType::Lt [INFO] [stdout] 158 + || self.token_type == TokenType::Gt [INFO] [stdout] 159 + || self.token_type == TokenType::Equal [INFO] [stdout] 160 ~ || self.token_type == TokenType::NotEqual [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | return result.unwrap().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] 179 - return result.unwrap().clone(); [INFO] [stdout] 179 + result.unwrap().clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | return self.token.token_type.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] 96 - return self.token.token_type.clone(); [INFO] [stdout] 96 + self.token.token_type.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `TokenType` which implements the `Copy` trait [INFO] [stdout] --> src/parser/mod.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | return self.token.token_type.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.token.token_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | return self.token.token_type == token_type; [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] 100 - return self.token.token_type == token_type; [INFO] [stdout] 100 + self.token.token_type == token_type [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | return self.next_token.token_type == token_type; [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] 104 - return self.next_token.token_type == token_type; [INFO] [stdout] 104 + self.next_token.token_type == token_type [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | return self.token.get_precedence(); [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] 108 - return self.token.get_precedence(); [INFO] [stdout] 108 + self.token.get_precedence() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | return self.next_token.get_precedence(); [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 - return self.next_token.get_precedence(); [INFO] [stdout] 112 + self.next_token.get_precedence() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | 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] 129 - return false; [INFO] [stdout] 129 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser/mod.rs:153:12 [INFO] [stdout] | [INFO] [stdout] 153 | if self.errors.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.errors.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:209:9 [INFO] [stdout] | [INFO] [stdout] 209 | return Some(Box::new(to_return)); [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] 209 - return Some(Box::new(to_return)); [INFO] [stdout] 209 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | return Some(Box::new(to_return)); [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] 231 - return Some(Box::new(to_return)); [INFO] [stdout] 231 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:252:9 [INFO] [stdout] | [INFO] [stdout] 252 | return Some(Box::new(to_return)); [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] 252 - return Some(Box::new(to_return)); [INFO] [stdout] 252 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser/mod.rs:267:16 [INFO] [stdout] | [INFO] [stdout] 267 | if !statement.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `statement.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `statement` after checking its variant with `is_none` [INFO] [stdout] --> src/parser/mod.rs:268:43 [INFO] [stdout] | [INFO] [stdout] 267 | if !statement.is_none() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] 268 | to_return.statements.push(statement.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:272:9 [INFO] [stdout] | [INFO] [stdout] 272 | return Some(Box::new(to_return)); [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] 272 - return Some(Box::new(to_return)); [INFO] [stdout] 272 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:314:9 [INFO] [stdout] | [INFO] [stdout] 314 | return left_expression; [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] 314 - return left_expression; [INFO] [stdout] 314 + left_expression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Precedence` which implements the `Copy` trait [INFO] [stdout] --> src/lexer/token.rs:179:16 [INFO] [stdout] | [INFO] [stdout] 179 | return result.unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*result.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:190:13 [INFO] [stdout] | [INFO] [stdout] 190 | return write!(fmt, "="); [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] 190 - return write!(fmt, "="); [INFO] [stdout] 190 + write!(fmt, "=") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:192:13 [INFO] [stdout] | [INFO] [stdout] 192 | return write!(fmt, "+"); [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] 192 - return write!(fmt, "+"); [INFO] [stdout] 192 + write!(fmt, "+") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:194:13 [INFO] [stdout] | [INFO] [stdout] 194 | return write!(fmt, "-"); [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] 194 - return write!(fmt, "-"); [INFO] [stdout] 194 + write!(fmt, "-") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:321:9 [INFO] [stdout] | [INFO] [stdout] 321 | return Some(Box::new(to_return)); [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] 321 - return Some(Box::new(to_return)); [INFO] [stdout] 321 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:196:13 [INFO] [stdout] | [INFO] [stdout] 196 | return write!(fmt, "!"); [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] 196 - return write!(fmt, "!"); [INFO] [stdout] 196 + write!(fmt, "!") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | return write!(fmt, "*"); [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] 198 - return write!(fmt, "*"); [INFO] [stdout] 198 + write!(fmt, "*") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:329:9 [INFO] [stdout] | [INFO] [stdout] 329 | return Some(Box::new(to_return)); [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] 329 - return Some(Box::new(to_return)); [INFO] [stdout] 329 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:200:13 [INFO] [stdout] | [INFO] [stdout] 200 | return write!(fmt, "/"); [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] 200 - return write!(fmt, "/"); [INFO] [stdout] 200 + write!(fmt, "/") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:202:13 [INFO] [stdout] | [INFO] [stdout] 202 | return write!(fmt, "<"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 202 - return write!(fmt, "<"); [INFO] [stdout] 202 + write!(fmt, "<") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | return write!(fmt, ">"); [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] 204 - return write!(fmt, ">"); [INFO] [stdout] 204 + write!(fmt, ">") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:344:9 [INFO] [stdout] | [INFO] [stdout] 344 | return Some(Box::new(to_return)); [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 - return Some(Box::new(to_return)); [INFO] [stdout] 344 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | return write!(fmt, "=="); [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] 206 - return write!(fmt, "=="); [INFO] [stdout] 206 + write!(fmt, "==") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:363:9 [INFO] [stdout] | [INFO] [stdout] 363 | return Some(Box::new(to_return)); [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] 363 - return Some(Box::new(to_return)); [INFO] [stdout] 363 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | return write!(fmt, "!="); [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] 208 - return write!(fmt, "!="); [INFO] [stdout] 208 + write!(fmt, "!=") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | return write!(fmt, ";"); [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] 212 - return write!(fmt, ";"); [INFO] [stdout] 212 + write!(fmt, ";") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:214:13 [INFO] [stdout] | [INFO] [stdout] 214 | return write!(fmt, ","); [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] 214 - return write!(fmt, ","); [INFO] [stdout] 214 + write!(fmt, ",") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:218:13 [INFO] [stdout] | [INFO] [stdout] 218 | return write!(fmt, "("); [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] 218 - return write!(fmt, "("); [INFO] [stdout] 218 + write!(fmt, "(") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:220:13 [INFO] [stdout] | [INFO] [stdout] 220 | return write!(fmt, ")"); [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] 220 - return write!(fmt, ")"); [INFO] [stdout] 220 + write!(fmt, ")") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:222:13 [INFO] [stdout] | [INFO] [stdout] 222 | return write!(fmt, "{{"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 222 - return write!(fmt, "{{"); [INFO] [stdout] 222 + write!(fmt, "{{") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:384:9 [INFO] [stdout] | [INFO] [stdout] 384 | return Some(Box::new(to_return)); [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] 384 - return Some(Box::new(to_return)); [INFO] [stdout] 384 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 224 | return write!(fmt, "}}"); [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] 224 - return write!(fmt, "}}"); [INFO] [stdout] 224 + write!(fmt, "}}") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | return write!(fmt, "Let"); [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] 228 - return write!(fmt, "Let"); [INFO] [stdout] 228 + write!(fmt, "Let") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:230:13 [INFO] [stdout] | [INFO] [stdout] 230 | return write!(fmt, "Func"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 230 - return write!(fmt, "Func"); [INFO] [stdout] 230 + write!(fmt, "Func") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:232:13 [INFO] [stdout] | [INFO] [stdout] 232 | return write!(fmt, "If"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 232 - return write!(fmt, "If"); [INFO] [stdout] 232 + write!(fmt, "If") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:396:9 [INFO] [stdout] | [INFO] [stdout] 396 | return to_return; [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] 396 - return to_return; [INFO] [stdout] 396 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:234:13 [INFO] [stdout] | [INFO] [stdout] 234 | return write!(fmt, "Else"); [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] 234 - return write!(fmt, "Else"); [INFO] [stdout] 234 + write!(fmt, "Else") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:236:13 [INFO] [stdout] | [INFO] [stdout] 236 | return write!(fmt, "Return"); [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] 236 - return write!(fmt, "Return"); [INFO] [stdout] 236 + write!(fmt, "Return") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:448:9 [INFO] [stdout] | [INFO] [stdout] 448 | return Some(Box::new(to_return)); [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] 448 - return Some(Box::new(to_return)); [INFO] [stdout] 448 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:238:13 [INFO] [stdout] | [INFO] [stdout] 238 | return write!(fmt, "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] 238 - return write!(fmt, "True"); [INFO] [stdout] 238 + write!(fmt, "True") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:240:13 [INFO] [stdout] | [INFO] [stdout] 240 | return write!(fmt, "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] 240 - return write!(fmt, "False"); [INFO] [stdout] 240 + write!(fmt, "False") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:489:9 [INFO] [stdout] | [INFO] [stdout] 489 | return Some(Box::new(to_return)); [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] 489 - return Some(Box::new(to_return)); [INFO] [stdout] 489 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:244:13 [INFO] [stdout] | [INFO] [stdout] 244 | return write!(fmt, "{}", self.literal); [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] 244 - return write!(fmt, "{}", self.literal); [INFO] [stdout] 244 + write!(fmt, "{}", self.literal) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:533:9 [INFO] [stdout] | [INFO] [stdout] 533 | return Some(Box::new(to_return)); [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] 533 - return Some(Box::new(to_return)); [INFO] [stdout] 533 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:246:13 [INFO] [stdout] | [INFO] [stdout] 246 | return write!(fmt, "{}", self.literal); [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] 246 - return write!(fmt, "{}", self.literal); [INFO] [stdout] 246 + write!(fmt, "{}", self.literal) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/main.rs:40:61 [INFO] [stdout] | [INFO] [stdout] 40 | if result.get_type() != object::ObjectType::Null || DEBUG == true { [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `DEBUG` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/token.rs:248:13 [INFO] [stdout] | [INFO] [stdout] 248 | return write!(fmt, "Eof"); [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] 248 - return write!(fmt, "Eof"); [INFO] [stdout] 248 + write!(fmt, "Eof") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:69:39 [INFO] [stdout] | [INFO] [stdout] 69 | lexer = lexer::Lexer::new(&line.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `line.as_ref().unwrap()` [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/lexer/token.rs:250:13 [INFO] [stdout] | [INFO] [stdout] 250 | return write!(fmt, "Illegal({})", self.literal); [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] 250 - return write!(fmt, "Illegal({})", self.literal); [INFO] [stdout] 250 + write!(fmt, "Illegal({})", self.literal) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:82:39 [INFO] [stdout] | [INFO] [stdout] 82 | lexer = lexer::Lexer::new(&input_string.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `input_string.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/lexer/token.rs:243:51 [INFO] [stdout] | [INFO] [stdout] 243 | else if self.token_type == TokenType::Int { [INFO] [stdout] | ___________________________________________________^ [INFO] [stdout] 244 | | return write!(fmt, "{}", self.literal); [INFO] [stdout] 245 | | } else if self.token_type == TokenType::Ident { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/lexer/token.rs:245:55 [INFO] [stdout] | [INFO] [stdout] 245 | } else if self.token_type == TokenType::Ident { [INFO] [stdout] | _______________________________________________________^ [INFO] [stdout] 246 | | return write!(fmt, "{}", self.literal); [INFO] [stdout] 247 | | } else if self.token_type == TokenType::Eof { [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/lexer/mod.rs:31:30 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn new(input_string: &String) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 31 ~ pub fn new(input_string: &str) -> Self { [INFO] [stdout] 32 | if input_string.len() == 0 { [INFO] [stdout] ... [INFO] [stdout] 35 | Lexer { [INFO] [stdout] 36 ~ input: input_string.to_owned(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer/mod.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 32 | if input_string.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/mod.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | return self.input.chars().nth(self.read_position); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 46 - return self.input.chars().nth(self.read_position); [INFO] [stdout] 46 + self.input.chars().nth(self.read_position) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `val` after checking its variant with `is_some` [INFO] [stdout] --> src/lexer/mod.rs:52:24 [INFO] [stdout] | [INFO] [stdout] 51 | if val.is_some() { [INFO] [stdout] | ---------------- help: try: `if let Some() = val` [INFO] [stdout] 52 | self.val = val.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/mod.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | return val; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 58 - return val; [INFO] [stdout] 58 + val [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/mod.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 103 | return Some(to_return); [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] 103 - return Some(to_return); [INFO] [stdout] 103 + Some(to_return) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/lexer/mod.rs:85:74 [INFO] [stdout] | [INFO] [stdout] 85 | if self.val == '=' && self.peak_char().unwrap_or('0') == '=' { [INFO] [stdout] | __________________________________________________________________________^ [INFO] [stdout] 86 | | self.read_char(); [INFO] [stdout] 87 | | to_return.push(self.val); [INFO] [stdout] 88 | | } else if self.val == '!' && self.peak_char().unwrap_or('0') == '=' { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/lexer/mod.rs:88:81 [INFO] [stdout] | [INFO] [stdout] 88 | } else if self.val == '!' && self.peak_char().unwrap_or('0') == '=' { [INFO] [stdout] | _________________________________________________________________________________^ [INFO] [stdout] 89 | | self.read_char(); [INFO] [stdout] 90 | | to_return.push(self.val); [INFO] [stdout] 91 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `literal` after checking its variant with `is_some` [INFO] [stdout] --> src/lexer/mod.rs:109:36 [INFO] [stdout] | [INFO] [stdout] 108 | if literal.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = literal` [INFO] [stdout] 109 | return Some(Token::new(literal.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/lexer/mod.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | return Some(Token::new(literal.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 109 - return Some(Token::new(literal.unwrap())); [INFO] [stdout] 109 + Some(Token::new(literal.unwrap())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/mod.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | return Some(Token::new("EOF".to_string())); [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] 111 - return Some(Token::new("EOF".to_string())); [INFO] [stdout] 111 + Some(Token::new("EOF".to_string())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | return ObjectType::Integer; [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] 69 - return ObjectType::Integer; [INFO] [stdout] 69 + ObjectType::Integer [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | return format!("{}", self.value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 73 - return format!("{}", self.value); [INFO] [stdout] 73 + format!("{}", self.value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | return ObjectType::Boolean; [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] 79 - return ObjectType::Boolean; [INFO] [stdout] 79 + ObjectType::Boolean [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | return format!("{}", self.value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 83 - return format!("{}", self.value); [INFO] [stdout] 83 + format!("{}", self.value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | return ObjectType::Null; [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] 89 - return ObjectType::Null; [INFO] [stdout] 89 + ObjectType::Null [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | return format!("null"); [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] 93 - return format!("null"); [INFO] [stdout] 93 + format!("null") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/object/mod.rs:93:16 [INFO] [stdout] | [INFO] [stdout] 93 | return format!("null"); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"null".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | return ObjectType::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 99 - return ObjectType::Error; [INFO] [stdout] 99 + ObjectType::Error [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 103 | return format!("{}", self.message); [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] 103 - return format!("{}", self.message); [INFO] [stdout] 103 + format!("{}", self.message) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/object/mod.rs:103:16 [INFO] [stdout] | [INFO] [stdout] 103 | return format!("{}", self.message); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `self.message.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | return ObjectType::Function; [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] 109 - return ObjectType::Function; [INFO] [stdout] 109 + ObjectType::Function [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/object/mod.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | return to_return; [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] 123 - return to_return; [INFO] [stdout] 123 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/object/mod.rs:113:29 [INFO] [stdout] | [INFO] [stdout] 113 | let mut to_return = format!("Func ("); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Func (".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/object/mod.rs:118:12 [INFO] [stdout] | [INFO] [stdout] 118 | if self.parameters.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.parameters.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/object/mod.rs:121:28 [INFO] [stdout] | [INFO] [stdout] 121 | to_return.push_str(&")\n".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use: `")\n"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser/mod.rs:79:16 [INFO] [stdout] | [INFO] [stdout] 79 | if !statement.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `statement.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `statement` after checking its variant with `is_none` [INFO] [stdout] --> src/parser/mod.rs:81:36 [INFO] [stdout] | [INFO] [stdout] 79 | if !statement.is_none() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] 80 | if debug { [INFO] [stdout] 81 | println!("{}", statement.as_ref().unwrap().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `statement` after checking its variant with `is_none` [INFO] [stdout] --> src/parser/mod.rs:83:41 [INFO] [stdout] | [INFO] [stdout] 79 | if !statement.is_none() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 83 | program.statements.push(statement.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | return Some(program); [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 - return Some(program); [INFO] [stdout] 88 + Some(program) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.56s [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | return self.token.token_type.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] 96 - return self.token.token_type.clone(); [INFO] [stdout] 96 + self.token.token_type.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `TokenType` which implements the `Copy` trait [INFO] [stdout] --> src/parser/mod.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | return self.token.token_type.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.token.token_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | return self.token.token_type == token_type; [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] 100 - return self.token.token_type == token_type; [INFO] [stdout] 100 + self.token.token_type == token_type [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 104 | return self.next_token.token_type == token_type; [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] 104 - return self.next_token.token_type == token_type; [INFO] [stdout] 104 + self.next_token.token_type == token_type [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | return self.token.get_precedence(); [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] 108 - return self.token.get_precedence(); [INFO] [stdout] 108 + self.token.get_precedence() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | return self.next_token.get_precedence(); [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 - return self.next_token.get_precedence(); [INFO] [stdout] 112 + self.next_token.get_precedence() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | 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] 129 - return false; [INFO] [stdout] 129 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser/mod.rs:153:12 [INFO] [stdout] | [INFO] [stdout] 153 | if self.errors.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.errors.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:209:9 [INFO] [stdout] | [INFO] [stdout] 209 | return Some(Box::new(to_return)); [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] 209 - return Some(Box::new(to_return)); [INFO] [stdout] 209 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | return Some(Box::new(to_return)); [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] 231 - return Some(Box::new(to_return)); [INFO] [stdout] 231 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:252:9 [INFO] [stdout] | [INFO] [stdout] 252 | return Some(Box::new(to_return)); [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] 252 - return Some(Box::new(to_return)); [INFO] [stdout] 252 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser/mod.rs:267:16 [INFO] [stdout] | [INFO] [stdout] 267 | if !statement.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `statement.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `statement` after checking its variant with `is_none` [INFO] [stdout] --> src/parser/mod.rs:268:43 [INFO] [stdout] | [INFO] [stdout] 267 | if !statement.is_none() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] 268 | to_return.statements.push(statement.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:272:9 [INFO] [stdout] | [INFO] [stdout] 272 | return Some(Box::new(to_return)); [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] 272 - return Some(Box::new(to_return)); [INFO] [stdout] 272 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:314:9 [INFO] [stdout] | [INFO] [stdout] 314 | return left_expression; [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] 314 - return left_expression; [INFO] [stdout] 314 + left_expression [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:321:9 [INFO] [stdout] | [INFO] [stdout] 321 | return Some(Box::new(to_return)); [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] 321 - return Some(Box::new(to_return)); [INFO] [stdout] 321 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:329:9 [INFO] [stdout] | [INFO] [stdout] 329 | return Some(Box::new(to_return)); [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] 329 - return Some(Box::new(to_return)); [INFO] [stdout] 329 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:344:9 [INFO] [stdout] | [INFO] [stdout] 344 | return Some(Box::new(to_return)); [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 - return Some(Box::new(to_return)); [INFO] [stdout] 344 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:363:9 [INFO] [stdout] | [INFO] [stdout] 363 | return Some(Box::new(to_return)); [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] 363 - return Some(Box::new(to_return)); [INFO] [stdout] 363 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:384:9 [INFO] [stdout] | [INFO] [stdout] 384 | return Some(Box::new(to_return)); [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] 384 - return Some(Box::new(to_return)); [INFO] [stdout] 384 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:396:9 [INFO] [stdout] | [INFO] [stdout] 396 | return to_return; [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] 396 - return to_return; [INFO] [stdout] 396 + to_return [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:448:9 [INFO] [stdout] | [INFO] [stdout] 448 | return Some(Box::new(to_return)); [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] 448 - return Some(Box::new(to_return)); [INFO] [stdout] 448 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:489:9 [INFO] [stdout] | [INFO] [stdout] 489 | return Some(Box::new(to_return)); [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] 489 - return Some(Box::new(to_return)); [INFO] [stdout] 489 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser/mod.rs:533:9 [INFO] [stdout] | [INFO] [stdout] 533 | return Some(Box::new(to_return)); [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] 533 - return Some(Box::new(to_return)); [INFO] [stdout] 533 + Some(Box::new(to_return)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/main.rs:40:61 [INFO] [stdout] | [INFO] [stdout] 40 | if result.get_type() != object::ObjectType::Null || DEBUG == true { [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `DEBUG` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:69:39 [INFO] [stdout] | [INFO] [stdout] 69 | lexer = lexer::Lexer::new(&line.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `line.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:82:39 [INFO] [stdout] | [INFO] [stdout] 82 | lexer = lexer::Lexer::new(&input_string.as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `input_string.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "c53d402ff4eadd9124921129d15ba90922f94a4bdf16776bb8a1b6c696a71b55", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c53d402ff4eadd9124921129d15ba90922f94a4bdf16776bb8a1b6c696a71b55", kill_on_drop: false }` [INFO] [stdout] c53d402ff4eadd9124921129d15ba90922f94a4bdf16776bb8a1b6c696a71b55