[INFO] cloning repository https://github.com/Katamithetaka/codecrafters-byte-code-compiler-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Katamithetaka/codecrafters-byte-code-compiler-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKatamithetaka%2Fcodecrafters-byte-code-compiler-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKatamithetaka%2Fcodecrafters-byte-code-compiler-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5905eec4ba3199e6b0a359fa3903fec678eafd3b [INFO] linting Katamithetaka/codecrafters-byte-code-compiler-rust against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKatamithetaka%2Fcodecrafters-byte-code-compiler-rust" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Katamithetaka/codecrafters-byte-code-compiler-rust [INFO] finished tweaking git repo https://github.com/Katamithetaka/codecrafters-byte-code-compiler-rust [INFO] tweaked toml for git repo https://github.com/Katamithetaka/codecrafters-byte-code-compiler-rust written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Katamithetaka/codecrafters-byte-code-compiler-rust 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/Katamithetaka/codecrafters-byte-code-compiler-rust 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 syn v2.0.113 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 6ab5acbc41a609d857722f2a729d3754a9b50bc6551b3235ca15fbd71d5b321b [INFO] running `Command { std: "docker" "start" "-a" "6ab5acbc41a609d857722f2a729d3754a9b50bc6551b3235ca15fbd71d5b321b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6ab5acbc41a609d857722f2a729d3754a9b50bc6551b3235ca15fbd71d5b321b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6ab5acbc41a609d857722f2a729d3754a9b50bc6551b3235ca15fbd71d5b321b", kill_on_drop: false }` [INFO] [stdout] 6ab5acbc41a609d857722f2a729d3754a9b50bc6551b3235ca15fbd71d5b321b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 586a6188a9186de26ee8c08588853e2ec5ee6088dbead2e9a653b910bec3ba7c [INFO] running `Command { std: "docker" "start" "-a" "586a6188a9186de26ee8c08588853e2ec5ee6088dbead2e9a653b910bec3ba7c", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.104 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Compiling anyhow v1.0.86 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Checking foldhash v0.2.0 [INFO] [stderr] Checking bytes v1.7.1 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Compiling quote v1.0.42 [INFO] [stderr] Compiling syn v2.0.113 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Checking strum v0.27.2 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking codecrafters-interpreter v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/ast_parser.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | tokens: tokens, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `tokens` [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/ast_parser.rs:391:21 [INFO] [stdout] | [INFO] [stdout] 391 | 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/compiler/compiler.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | line: line, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `line` [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/compiler/compiler.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 224 | line: line, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `line` [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/expressions/literal.rs:30:23 [INFO] [stdout] | [INFO] [stdout] 30 | return Self { 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: empty line after doc comment [INFO] [stdout] --> src/statements.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | / /// Statements represent executable units of code in the language being interpreted. [INFO] [stdout] 3 | | [INFO] [stdout] | |_^ [INFO] [stdout] 4 | use std::{cell::RefCell, fmt::Debug, rc::Rc}; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! This module defines various statement types and traits used in the interpreter. [INFO] [stdout] 2 ~ //! Statements represent executable units of code in the language being interpreted. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/global_functions.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | / /// It includes utilities for defining and registering global functions. [INFO] [stdout] 3 | | [INFO] [stdout] | |_^ [INFO] [stdout] 4 | use std::rc::Rc; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! This module defines global functions that can be registered and used within the interpreter. [INFO] [stdout] 2 ~ //! It includes utilities for defining and registering global functions. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/ast_parser.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | tokens: tokens, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `tokens` [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/ast_parser.rs:391:21 [INFO] [stdout] | [INFO] [stdout] 391 | 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/compiler/compiler.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | line: line, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `line` [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/compiler/compiler.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 224 | line: line, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `line` [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/expressions/literal.rs:30:23 [INFO] [stdout] | [INFO] [stdout] 30 | return Self { 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: empty line after doc comment [INFO] [stdout] --> src/statements.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | / /// Statements represent executable units of code in the language being interpreted. [INFO] [stdout] 3 | | [INFO] [stdout] | |_^ [INFO] [stdout] 4 | use std::{cell::RefCell, fmt::Debug, rc::Rc}; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! This module defines various statement types and traits used in the interpreter. [INFO] [stdout] 2 ~ //! Statements represent executable units of code in the language being interpreted. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/global_functions.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | / /// It includes utilities for defining and registering global functions. [INFO] [stdout] 3 | | [INFO] [stdout] | |_^ [INFO] [stdout] 4 | use std::rc::Rc; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! This module defines global functions that can be registered and used within the interpreter. [INFO] [stdout] 2 ~ //! It includes utilities for defining and registering global functions. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 131 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 131 - return Ok(()); [INFO] [stdout] 131 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:139:9 [INFO] [stdout] | [INFO] [stdout] 139 | / return self [INFO] [stdout] 140 | | .state [INFO] [stdout] 141 | | .it [INFO] [stdout] 142 | | .peek() [INFO] [stdout] 143 | | .unwrap_or(self.state.tokens.last().as_ref().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] 139 ~ self [INFO] [stdout] 140 + .state [INFO] [stdout] 141 + .it [INFO] [stdout] 142 + .peek() [INFO] [stdout] 143 ~ .unwrap_or(self.state.tokens.last().as_ref().unwrap()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | / return Err(ParserError { [INFO] [stdout] 163 | | error, [INFO] [stdout] 164 | | line: self.line_number() as line_type, [INFO] [stdout] 165 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 162 ~ Err(ParserError { [INFO] [stdout] 163 + error, [INFO] [stdout] 164 + line: self.line_number() as line_type, [INFO] [stdout] 165 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:217:9 [INFO] [stdout] | [INFO] [stdout] 217 | return Ok(expr); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 217 - return Ok(expr); [INFO] [stdout] 217 + Ok(expr) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `expressions::Expressions<'_>` [INFO] [stdout] --> src/ast_parser.rs:330:12 [INFO] [stdout] | [INFO] [stdout] 330 | Ok(expr.into()) [INFO] [stdout] | ^^^^^^^^^^^ help: consider removing `.into()`: `expr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:441:9 [INFO] [stdout] | [INFO] [stdout] 441 | return Ok(statement); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 441 - return Ok(statement); [INFO] [stdout] 441 + Ok(statement) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:467:9 [INFO] [stdout] | [INFO] [stdout] 467 | return Ok(statement.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 467 - return Ok(statement.into()) [INFO] [stdout] 467 + Ok(statement.into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `statements::function_declaration_statement::FunctionDeclareStatement<'_>` [INFO] [stdout] --> src/ast_parser.rs:467:19 [INFO] [stdout] | [INFO] [stdout] 467 | return Ok(statement.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `statement` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:490:9 [INFO] [stdout] | [INFO] [stdout] 490 | return Ok(statement.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 490 - return Ok(statement.into()) [INFO] [stdout] 490 + Ok(statement.into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `statements::Statements<'_>` [INFO] [stdout] --> src/ast_parser.rs:506:20 [INFO] [stdout] | [INFO] [stdout] 506 | Ok(self.class_declaration()?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.class_declaration()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:542:9 [INFO] [stdout] | [INFO] [stdout] 542 | return Ok(IfStatement::new(statements)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 542 - return Ok(IfStatement::new(statements)); [INFO] [stdout] 542 + Ok(IfStatement::new(statements)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:549:9 [INFO] [stdout] | [INFO] [stdout] 549 | return Ok(WhileStatement::new(expression, Box::new(statement)).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 549 - return Ok(WhileStatement::new(expression, Box::new(statement)).into()); [INFO] [stdout] 549 + Ok(WhileStatement::new(expression, Box::new(statement)).into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:591:9 [INFO] [stdout] | [INFO] [stdout] 591 | return Ok(ForStatement::new(declaration, test, inc, statement, begin_line, end_line).into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 591 - return Ok(ForStatement::new(declaration, test, inc, statement, begin_line, end_line).into()) [INFO] [stdout] 591 + Ok(ForStatement::new(declaration, test, inc, statement, begin_line, end_line).into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `expressions::Expressions<'_>` [INFO] [stdout] --> src/ast_parser.rs:571:22 [INFO] [stdout] | [INFO] [stdout] 571 | Some(self.expression()?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.expression()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `expressions::Expressions<'_>` [INFO] [stdout] --> src/ast_parser.rs:580:22 [INFO] [stdout] | [INFO] [stdout] 580 | Some(self.expression()?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.expression()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `statements::Statements<'_>` [INFO] [stdout] --> src/ast_parser.rs:607:20 [INFO] [stdout] | [INFO] [stdout] 607 | Ok(self.while_statement()?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.while_statement()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `statements::Statements<'_>` [INFO] [stdout] --> src/ast_parser.rs:611:20 [INFO] [stdout] | [INFO] [stdout] 611 | Ok(self.for_statement()?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.for_statement()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/chunk.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / return Self { [INFO] [stdout] 23 | | code: vec![], [INFO] [stdout] 24 | | constants: vec![], [INFO] [stdout] 25 | | lines: vec![], [INFO] [stdout] 26 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 22 ~ Self { [INFO] [stdout] 23 + code: vec![], [INFO] [stdout] 24 + constants: vec![], [INFO] [stdout] 25 + lines: vec![], [INFO] [stdout] 26 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/chunk.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | return Varint((self.constants.len() - 1) as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 31 - return Varint((self.constants.len() - 1) as u32); [INFO] [stdout] 31 + Varint((self.constants.len() - 1) as u32) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/chunk.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | return self.lines[line_index].0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 58 - return self.lines[line_index].0; [INFO] [stdout] 58 + self.lines[line_index].0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/chunk.rs:67:47 [INFO] [stdout] | [INFO] [stdout] 67 | i = disassemble_instruction(heap, &self, i, previous); [INFO] [stdout] | ^^^^^ help: change this to: `self` [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/compiler/chunk.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | return Varint(v as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 76 - return Varint(v as u32); [INFO] [stdout] 76 + Varint(v as u32) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | return offset + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 49 - return offset + 1; [INFO] [stdout] 49 + offset + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | return offset + o + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 - return offset + o + 1; [INFO] [stdout] 59 + offset + o + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | return offset + o; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for 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 offset + o; [INFO] [stdout] 69 + offset + o [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:64:46 [INFO] [stdout] | [INFO] [stdout] 64 | let register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:65:44 [INFO] [stdout] | [INFO] [stdout] 65 | let (constant, o) = Varint::read_bytes(&chunk, offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return offset; [INFO] [stdout] 78 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:74:46 [INFO] [stdout] | [INFO] [stdout] 74 | let register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:75:42 [INFO] [stdout] | [INFO] [stdout] 75 | let global = global_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | return offset + o; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 90 - return offset + o; [INFO] [stdout] 90 + offset + o [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:83:52 [INFO] [stdout] | [INFO] [stdout] 83 | let value_register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:84:50 [INFO] [stdout] | [INFO] [stdout] 84 | let dst_register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:86:44 [INFO] [stdout] | [INFO] [stdout] 86 | let (constant, o) = Varint::read_bytes(&chunk, offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 97 - return offset; [INFO] [stdout] 97 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 107 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 107 - return offset; [INFO] [stdout] 107 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:104:35 [INFO] [stdout] | [INFO] [stdout] 104 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 120 - return offset; [INFO] [stdout] 120 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:115:35 [INFO] [stdout] | [INFO] [stdout] 115 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:116:35 [INFO] [stdout] | [INFO] [stdout] 116 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:117:35 [INFO] [stdout] | [INFO] [stdout] 117 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:135:5 [INFO] [stdout] | [INFO] [stdout] 135 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 135 - return offset; [INFO] [stdout] 135 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:128:35 [INFO] [stdout] | [INFO] [stdout] 128 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:129:35 [INFO] [stdout] | [INFO] [stdout] 129 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:130:35 [INFO] [stdout] | [INFO] [stdout] 130 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:131:35 [INFO] [stdout] | [INFO] [stdout] 131 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 148 - return offset; [INFO] [stdout] 148 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:143:46 [INFO] [stdout] | [INFO] [stdout] 143 | let register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:144:40 [INFO] [stdout] | [INFO] [stdout] 144 | let index = stack_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 157 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 157 - return offset; [INFO] [stdout] 157 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:153:46 [INFO] [stdout] | [INFO] [stdout] 153 | let register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:165:5 [INFO] [stdout] | [INFO] [stdout] 165 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 165 - return offset; [INFO] [stdout] 165 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:177:5 [INFO] [stdout] | [INFO] [stdout] 177 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 177 - return offset; [INFO] [stdout] 177 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:171:46 [INFO] [stdout] | [INFO] [stdout] 171 | let register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:213:5 [INFO] [stdout] | [INFO] [stdout] 213 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 213 - return offset; [INFO] [stdout] 213 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:184:49 [INFO] [stdout] | [INFO] [stdout] 184 | let fn_register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:186:53 [INFO] [stdout] | [INFO] [stdout] 186 | let (constant, bytes_read) = Varint::read_bytes(&chunk, offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:194:47 [INFO] [stdout] | [INFO] [stdout] 194 | let index = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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: empty string literal in `eprintln!` [INFO] [stdout] --> src/compiler/instructions.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | eprintln!(""); [INFO] [stdout] | ^^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `eprintln!` [INFO] [stdout] --> src/compiler/instructions.rs:211:5 [INFO] [stdout] | [INFO] [stdout] 211 | eprintln!(""); [INFO] [stdout] | ^^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:231:83 [INFO] [stdout] | [INFO] [stdout] 231 | Some(Instructions::Constant) => constant_instruction(heap, "OP_CONSTANT", &chunk, offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/vm.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 67 | return self.get_register(register); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 67 - return self.get_register(register); [INFO] [stdout] 67 + self.get_register(register) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/vm.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | return constant; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for 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 constant; [INFO] [stdout] 73 + constant [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/vm.rs:71:51 [INFO] [stdout] | [INFO] [stdout] 71 | let (constant, size) = Varint::read_bytes(&self.core.current_chunk, self.core.ip); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.core.current_chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/vm.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 77 | return stack_index_type::read_bytes(self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 77 - return stack_index_type::read_bytes(self); [INFO] [stdout] 77 + stack_index_type::read_bytes(self) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/vm.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | return global_index_type::read_bytes(self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 81 - return global_index_type::read_bytes(self); [INFO] [stdout] 81 + global_index_type::read_bytes(self) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statement with no effect [INFO] [stdout] --> src/compiler/vm.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | self.core.stack_index; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stdout] = note: `#[warn(clippy::no_effect)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Value` which implements the `Copy` trait [INFO] [stdout] --> src/compiler/vm.rs:115:50 [INFO] [stdout] | [INFO] [stdout] 115 | self.core.registers[register as usize] = chunk.constants[constant as usize].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `chunk.constants[constant as usize]` [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: using `clone` on type `Value` which implements the `Copy` trait [INFO] [stdout] --> src/compiler/vm.rs:299:21 [INFO] [stdout] | [INFO] [stdout] 299 | *variable = self.core.registers[register as usize].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.core.registers[register as usize]` [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: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:309:30 [INFO] [stdout] | [INFO] [stdout] 309 | let previous_index = self.core.stack_states.pop().ok_or_else(|| InterpretError::InvalidStackPop)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 309 - let previous_index = self.core.stack_states.pop().ok_or_else(|| InterpretError::InvalidStackPop)?; [INFO] [stdout] 309 + let previous_index = self.core.stack_states.pop().ok_or(InterpretError::InvalidStackPop)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Value` which implements the `Copy` trait [INFO] [stdout] --> src/compiler/vm.rs:336:57 [INFO] [stdout] | [INFO] [stdout] 336 | self.core.registers[output_register as usize] = self.core.stack[index as usize].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.core.stack[index as usize]` [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: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:336:73 [INFO] [stdout] | [INFO] [stdout] 336 | self.core.registers[output_register as usize] = self.core.stack[index as usize].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `{ index }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:358:44 [INFO] [stdout] | [INFO] [stdout] 358 | self.heap.set(&mut self.core.stack[index as usize], self.core.registers[output_register as usize]); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/compiler/vm.rs:478:17 [INFO] [stdout] | [INFO] [stdout] 478 | / if let Some(expected) = arg_count { [INFO] [stdout] 479 | | if expected != num_args { [INFO] [stdout] 480 | | Err(EvaluateErrorDetails::InvalidArgCount)?; [INFO] [stdout] 481 | | } [INFO] [stdout] 482 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 478 ~ if let Some(expected) = arg_count [INFO] [stdout] 479 ~ && expected != num_args { [INFO] [stdout] 480 | Err(EvaluateErrorDetails::InvalidArgCount)?; [INFO] [stdout] 481 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:528:21 [INFO] [stdout] | [INFO] [stdout] 528 | let v = self.core.call_stack.last() .ok_or_else(|| EvaluateErrorDetails::InvalidReturnStatement)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 528 - let v = self.core.call_stack.last() .ok_or_else(|| EvaluateErrorDetails::InvalidReturnStatement)?; [INFO] [stdout] 528 + let v = self.core.call_stack.last() .ok_or(EvaluateErrorDetails::InvalidReturnStatement)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:534:53 [INFO] [stdout] | [INFO] [stdout] 534 | std::mem::take(&mut self.core.stack[index as usize]) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:540:17 [INFO] [stdout] | [INFO] [stdout] 540 | let v = self.core.call_stack.pop().ok_or_else(|| EvaluateErrorDetails::InvalidReturnStatement)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 540 - let v = self.core.call_stack.pop().ok_or_else(|| EvaluateErrorDetails::InvalidReturnStatement)?; [INFO] [stdout] 540 + let v = self.core.call_stack.pop().ok_or(EvaluateErrorDetails::InvalidReturnStatement)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:549:41 [INFO] [stdout] | [INFO] [stdout] 549 | self.core.stack_states.truncate(v.stack_state_index as usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `v.stack_state_index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:578:90 [INFO] [stdout] | [INFO] [stdout] 578 | let cell = self.heap.alloc(HeapObject::Cell(RefCell::new(self.core.stack[index as usize]))); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:579:33 [INFO] [stdout] | [INFO] [stdout] 579 | self.core.stack[index as usize] = Value::Cell(cell); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Value` which implements the `Copy` trait [INFO] [stdout] --> src/compiler/vm.rs:580:31 [INFO] [stdout] | [INFO] [stdout] 580 | upvalues.push(self.core.stack[index as usize].clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.core.stack[index as usize]` [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: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:580:47 [INFO] [stdout] | [INFO] [stdout] 580 | upvalues.push(self.core.stack[index as usize].clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `{ index }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:610:27 [INFO] [stdout] | [INFO] [stdout] 610 | let upvalues_gc = self.core.call_stack.last() [INFO] [stdout] | ___________________________^ [INFO] [stdout] 611 | | .ok_or_else(|| EvaluateErrorDetails::InvalidUpvalueAccess)? [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 611 - .ok_or_else(|| EvaluateErrorDetails::InvalidUpvalueAccess)? [INFO] [stdout] 611 + .ok_or(EvaluateErrorDetails::InvalidUpvalueAccess)? [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:635:27 [INFO] [stdout] | [INFO] [stdout] 635 | let upvalues_gc = self.core.call_stack.last() [INFO] [stdout] | ___________________________^ [INFO] [stdout] 636 | | .ok_or_else(|| EvaluateErrorDetails::InvalidUpvalueAccess)? [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 636 - .ok_or_else(|| EvaluateErrorDetails::InvalidUpvalueAccess)? [INFO] [stdout] 636 + .ok_or(EvaluateErrorDetails::InvalidUpvalueAccess)? [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:679:50 [INFO] [stdout] | [INFO] [stdout] 679 | self.core.registers[register as usize] = self [INFO] [stdout] | __________________________________________________^ [INFO] [stdout] 680 | | .heap [INFO] [stdout] 681 | | .instance_get(instance_gc, &field_name) [INFO] [stdout] 682 | | .ok_or_else(|| EvaluateErrorDetails::UndefinedVariable(field_name))?; [INFO] [stdout] | |_______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 682 - .ok_or_else(|| EvaluateErrorDetails::UndefinedVariable(field_name))?; [INFO] [stdout] 682 + .ok_or(EvaluateErrorDetails::UndefinedVariable(field_name))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/compiler/vm.rs:756:17 [INFO] [stdout] | [INFO] [stdout] 756 | / match func_kind { [INFO] [stdout] 757 | | FunctionKind::Function => return Ok(()), [INFO] [stdout] 758 | | _ => {} [INFO] [stdout] 759 | | } [INFO] [stdout] | |_________________^ help: try: `if let FunctionKind::Function = func_kind { return Ok(()) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:774:40 [INFO] [stdout] | [INFO] [stdout] 774 | let instance = c.instance.ok_or_else(|| EvaluateErrorDetails::UnbindedMethod)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 774 - let instance = c.instance.ok_or_else(|| EvaluateErrorDetails::UnbindedMethod)?; [INFO] [stdout] 774 + let instance = c.instance.ok_or(EvaluateErrorDetails::UnbindedMethod)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:777:41 [INFO] [stdout] | [INFO] [stdout] 777 | ... let class = class_val.ok_or_else(|| EvaluateErrorDetails::UnbindedMethod)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 777 - let class = class_val.ok_or_else(|| EvaluateErrorDetails::UnbindedMethod)?; [INFO] [stdout] 777 + let class = class_val.ok_or(EvaluateErrorDetails::UnbindedMethod)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:811:53 [INFO] [stdout] | [INFO] [stdout] 811 | ... HeapObject::Class(c) => c.base_class.ok_or_else(|| EvaluateErrorDetails::UnbindedMethod)?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 811 - HeapObject::Class(c) => c.base_class.ok_or_else(|| EvaluateErrorDetails::UnbindedMethod)?, [INFO] [stdout] 811 + HeapObject::Class(c) => c.base_class.ok_or(EvaluateErrorDetails::UnbindedMethod)?, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:867:43 [INFO] [stdout] | [INFO] [stdout] 867 | HeapObject::Class(c) => match c.base_class.ok_or_else(|| EvaluateErrorDetails::InvalidUpvalueAccess)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 867 - HeapObject::Class(c) => match c.base_class.ok_or_else(|| EvaluateErrorDetails::InvalidUpvalueAccess)? { [INFO] [stdout] 867 + HeapObject::Class(c) => match c.base_class.ok_or(EvaluateErrorDetails::InvalidUpvalueAccess)? { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:874:26 [INFO] [stdout] | [INFO] [stdout] 874 | let method_val = self [INFO] [stdout] | __________________________^ [INFO] [stdout] 875 | | .heap [INFO] [stdout] 876 | | .class_get_method(base_class_gc, &identifier) [INFO] [stdout] 877 | | .ok_or_else(|| EvaluateErrorDetails::UndefinedVariable(identifier))?; [INFO] [stdout] | |_______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 877 - .ok_or_else(|| EvaluateErrorDetails::UndefinedVariable(identifier))?; [INFO] [stdout] 877 + .ok_or(EvaluateErrorDetails::UndefinedVariable(identifier))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/vm.rs:976:5 [INFO] [stdout] | [INFO] [stdout] 976 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 976 - return Ok(()); [INFO] [stdout] 976 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Result.or_else(|x| Err(y))`, which is more succinctly expressed as `map_err(|x| y)` [INFO] [stdout] --> src/compiler/vm.rs:970:9 [INFO] [stdout] | [INFO] [stdout] 970 | / execute_instruction(vm, instruction).or_else(|err| Err(EvaluateError { [INFO] [stdout] 971 | | error: err, [INFO] [stdout] 972 | | line: vm.core.current_chunk.get_line(previous_ip as usize) as line_type, [INFO] [stdout] 973 | | }))?; [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 970 ~ execute_instruction(vm, instruction).map_err(|err| EvaluateError { [INFO] [stdout] 971 + error: err, [INFO] [stdout] 972 + line: vm.core.current_chunk.get_line(previous_ip as usize) as line_type, [INFO] [stdout] 973 ~ })?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:972:50 [INFO] [stdout] | [INFO] [stdout] 972 | line: vm.core.current_chunk.get_line(previous_ip as usize) as line_type, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `previous_ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/compiler.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | pub mod compiler; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` 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/compiler/compiler.rs:118:61 [INFO] [stdout] | [INFO] [stdout] 118 | None => self.globals.as_ref().unwrap().contains(&name), [INFO] [stdout] | ^^^^^ help: change this to: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/compiler.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | return self.chunk.get_constant(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] 140 - return self.chunk.get_constant(value) [INFO] [stdout] 140 + self.chunk.get_constant(value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/compiler.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | return self.chunk.add_constant(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] 144 - return self.chunk.add_constant(value) [INFO] [stdout] 144 + self.chunk.add_constant(value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/compiler.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | return self.write(byte as u8, line); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for 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 self.write(byte as u8, line); [INFO] [stdout] 179 + self.write(byte as u8, line) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u8` is unnecessary [INFO] [stdout] --> src/compiler/compiler.rs:212:24 [INFO] [stdout] | [INFO] [stdout] 212 | self.write(0xFF as u8, line); [INFO] [stdout] | ^^^^^^^^^^ help: try: `0xFF_u8` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u8` is unnecessary [INFO] [stdout] --> src/compiler/compiler.rs:229:24 [INFO] [stdout] | [INFO] [stdout] 229 | self.write(0xFF as u8, line); [INFO] [stdout] | ^^^^^^^^^^ help: try: `0xFF_u8` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/compiler/compiler.rs:247:9 [INFO] [stdout] | [INFO] [stdout] 247 | / for i in 0..values.len() { [INFO] [stdout] 248 | | self.chunk.code[index + i] = values[i]; [INFO] [stdout] 249 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `self.chunk.code[index..(values.len() + index)].copy_from_slice(&values[..]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] = note: `#[warn(clippy::manual_memcpy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/compiler/compiler.rs:258:5 [INFO] [stdout] | [INFO] [stdout] 258 | pub fn declare_variable(&mut self, name: &'a str) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] = note: `#[warn(clippy::result_unit_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/compiler/compiler.rs:259:37 [INFO] [stdout] | [INFO] [stdout] 259 | if self.scope_depth == 0 && !self.enclosing.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.enclosing.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/compiler/compiler.rs:262:53 [INFO] [stdout] | [INFO] [stdout] 262 | if self.locals.iter().any(|f| f.name == name.to_string() && f.depth == self.scope_depth) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/compiler/compiler.rs:272:37 [INFO] [stdout] | [INFO] [stdout] 272 | if self.scope_depth == 0 && !self.enclosing.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.enclosing.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/compiler/compiler.rs:275:53 [INFO] [stdout] | [INFO] [stdout] 275 | if self.locals.iter().any(|f| f.name == name.to_string()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/compiler/compiler.rs:421:9 [INFO] [stdout] | [INFO] [stdout] 421 | / match self.locals.iter_mut().find(|l| l.name == name) { [INFO] [stdout] 422 | | Some(v) => v.is_predeclared = false, [INFO] [stdout] 423 | | None => {}, [INFO] [stdout] 424 | | } [INFO] [stdout] | |_________^ help: try: `if let Some(v) = self.locals.iter_mut().find(|l| l.name == name) { v.is_predeclared = false }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/compiler.rs:446:9 [INFO] [stdout] | [INFO] [stdout] 446 | return Ok(ResolvedVar::Global(self.global_index(&name.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] 446 - return Ok(ResolvedVar::Global(self.global_index(&name.to_string()))) [INFO] [stdout] 446 + Ok(ResolvedVar::Global(self.global_index(&name.to_string()))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/int_types.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | return v; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 32 - return v; [INFO] [stdout] 32 + v [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/int_types.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | return v; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return v; [INFO] [stdout] 40 + v [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/int_types.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | return v; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 - return v; [INFO] [stdout] 48 + v [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Heap` [INFO] [stdout] --> src/compiler/garbage_collector.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | / pub fn new() -> Self { [INFO] [stdout] 91 | | Self { [INFO] [stdout] 92 | | objects: Vec::with_capacity(1024), [INFO] [stdout] 93 | | marked: Vec::with_capacity(1024), [INFO] [stdout] ... | [INFO] [stdout] 97 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 89 + impl Default for Heap { [INFO] [stdout] 90 + fn default() -> Self { [INFO] [stdout] 91 + Self::new() [INFO] [stdout] 92 + } [INFO] [stdout] 93 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/compiler/garbage_collector.rs:429:13 [INFO] [stdout] | [INFO] [stdout] 429 | / match self.get_mut(dst) { [INFO] [stdout] 430 | | HeapObject::Class(c) => c.base_class = Some(Value::Class(src)), [INFO] [stdout] 431 | | _ => {} [INFO] [stdout] 432 | | } [INFO] [stdout] | |_____________^ help: try: `if let HeapObject::Class(c) = self.get_mut(dst) { c.base_class = Some(Value::Class(src)) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/compiler/garbage_collector.rs:442:13 [INFO] [stdout] | [INFO] [stdout] 442 | / match self.get_mut(dst) { [INFO] [stdout] 443 | | HeapObject::Class(c) => c.constructor = Some(ctor), [INFO] [stdout] 444 | | _ => {} [INFO] [stdout] 445 | | } [INFO] [stdout] | |_____________^ help: try: `if let HeapObject::Class(c) = self.get_mut(dst) { c.constructor = Some(ctor) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/assignment_expression.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | / return Self { [INFO] [stdout] 27 | | line_number: lhs.line_number(), [INFO] [stdout] 28 | | lhs, [INFO] [stdout] 29 | | rhs, [INFO] [stdout] 30 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 ~ Self { [INFO] [stdout] 27 + line_number: lhs.line_number(), [INFO] [stdout] 28 + lhs, [INFO] [stdout] 29 + rhs, [INFO] [stdout] 30 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/expressions/binary_expression.rs:16:6 [INFO] [stdout] | [INFO] [stdout] 16 | impl<'a> Display for BinaryOp { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/binary_expression.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | / return Self { [INFO] [stdout] 44 | | line_number: lhs.line_number(), [INFO] [stdout] 45 | | lhs, [INFO] [stdout] 46 | | rhs, [INFO] [stdout] 47 | | op, [INFO] [stdout] 48 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 43 ~ Self { [INFO] [stdout] 44 + line_number: lhs.line_number(), [INFO] [stdout] 45 + lhs, [INFO] [stdout] 46 + rhs, [INFO] [stdout] 47 + op, [INFO] [stdout] 48 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/expressions/equality_expression.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | impl<'a> Display for EqualityOp { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/equality_expression.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | / return Self { [INFO] [stdout] 40 | | line_number: lhs.line_number(), [INFO] [stdout] 41 | | lhs, [INFO] [stdout] 42 | | rhs, [INFO] [stdout] 43 | | op, [INFO] [stdout] 44 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 39 ~ Self { [INFO] [stdout] 40 + line_number: lhs.line_number(), [INFO] [stdout] 41 + lhs, [INFO] [stdout] 42 + rhs, [INFO] [stdout] 43 + op, [INFO] [stdout] 44 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/group.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | return Self { expr }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 21 - return Self { expr }; [INFO] [stdout] 21 + Self { expr } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/identifier.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | / return Self { [INFO] [stdout] 26 | | token: token.lexeme, [INFO] [stdout] 27 | | line: token.line as line_type, [INFO] [stdout] 28 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 ~ Self { [INFO] [stdout] 26 + token: token.lexeme, [INFO] [stdout] 27 + line: token.line as line_type, [INFO] [stdout] 28 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/literal.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | return Self { token: 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] 30 - return Self { token: token }; [INFO] [stdout] 30 + Self { token: token } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/expressions/literal.rs:53:21 [INFO] [stdout] | [INFO] [stdout] 51 | / let constant = [INFO] [stdout] 52 | | chunk.get_or_write_constant(Value::Number(v), self.line_number()); [INFO] [stdout] | |__________________________________________________________________________________________- unnecessary `let` binding [INFO] [stdout] 53 | constant [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 51 ~ [INFO] [stdout] 52 ~ chunk.get_or_write_constant(Value::Number(v), self.line_number()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/expressions/literal.rs:64:21 [INFO] [stdout] | [INFO] [stdout] 62 | / let constant = [INFO] [stdout] 63 | | chunk.get_or_write_constant(Value::String(constant_v), self.line_number()); [INFO] [stdout] | |___________________________________________________________________________________________________- unnecessary `let` binding [INFO] [stdout] 64 | constant [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 62 ~ [INFO] [stdout] 63 ~ chunk.get_or_write_constant(Value::String(constant_v), self.line_number()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/expressions/literal.rs:71:17 [INFO] [stdout] | [INFO] [stdout] 69 | / let constant = [INFO] [stdout] 70 | | chunk.get_or_write_constant(Value::Boolean(true), self.line_number()); [INFO] [stdout] | |__________________________________________________________________________________________- unnecessary `let` binding [INFO] [stdout] 71 | constant [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 69 ~ [INFO] [stdout] 70 ~ chunk.get_or_write_constant(Value::Boolean(true), self.line_number()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/expressions/literal.rs:76:17 [INFO] [stdout] | [INFO] [stdout] 74 | / let constant = [INFO] [stdout] 75 | | chunk.get_or_write_constant(Value::Boolean(false), self.line_number()); [INFO] [stdout] | |___________________________________________________________________________________________- unnecessary `let` binding [INFO] [stdout] 76 | constant [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 74 ~ [INFO] [stdout] 75 ~ chunk.get_or_write_constant(Value::Boolean(false), self.line_number()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/expressions/literal.rs:80:17 [INFO] [stdout] | [INFO] [stdout] 79 | let constant = chunk.get_or_write_constant(Value::Null, self.line_number()); [INFO] [stdout] | ---------------------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 80 | constant [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 79 ~ [INFO] [stdout] 80 ~ chunk.get_or_write_constant(Value::Null, self.line_number()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/expressions/literal.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / match dst_register { [INFO] [stdout] 86 | | Some(v) => { [INFO] [stdout] 87 | | chunk.write_load(v, constant, self.line_number()); [INFO] [stdout] ... | [INFO] [stdout] 90 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 85 ~ if let Some(v) = dst_register { [INFO] [stdout] 86 + chunk.write_load(v, constant, self.line_number()); [INFO] [stdout] 87 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/expressions/logical_expression.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | impl<'a> Display for LogicalOp { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/logical_expression.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | / return Self { [INFO] [stdout] 40 | | line_number: lhs.line_number(), [INFO] [stdout] 41 | | lhs, [INFO] [stdout] 42 | | rhs, [INFO] [stdout] 43 | | op, [INFO] [stdout] 44 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 39 ~ Self { [INFO] [stdout] 40 + line_number: lhs.line_number(), [INFO] [stdout] 41 + lhs, [INFO] [stdout] 42 + rhs, [INFO] [stdout] 43 + op, [INFO] [stdout] 44 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/expressions/relation_expression.rs:16:6 [INFO] [stdout] | [INFO] [stdout] 16 | impl<'a> Display for RelationalOp { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/relation_expression.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | / return Self { [INFO] [stdout] 44 | | line_number: lhs.line_number(), [INFO] [stdout] 45 | | lhs, [INFO] [stdout] 46 | | rhs, [INFO] [stdout] 47 | | op, [INFO] [stdout] 48 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 43 ~ Self { [INFO] [stdout] 44 + line_number: lhs.line_number(), [INFO] [stdout] 45 + lhs, [INFO] [stdout] 46 + rhs, [INFO] [stdout] 47 + op, [INFO] [stdout] 48 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/expressions/unary_expression.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | impl<'a> Display for UnaryOp { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/unary_expression.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | return Self { rhs, op }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for 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 Self { rhs, op }; [INFO] [stdout] 37 + Self { rhs, op } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/this_expression.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | / return Self { [INFO] [stdout] 24 | | token: token.lexeme, [INFO] [stdout] 25 | | line: token.line as line_type, [INFO] [stdout] 26 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 ~ Self { [INFO] [stdout] 24 + token: token.lexeme, [INFO] [stdout] 25 + line: token.line as line_type, [INFO] [stdout] 26 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/super_expression.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | / return Self { [INFO] [stdout] 25 | | token: token.lexeme, [INFO] [stdout] 26 | | line: token.line as line_type, [INFO] [stdout] 27 | | identifier [INFO] [stdout] 28 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 24 ~ Self { [INFO] [stdout] 25 + token: token.lexeme, [INFO] [stdout] 26 + line: token.line as line_type, [INFO] [stdout] 27 + identifier [INFO] [stdout] 28 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EOF` contains a capitalized acronym [INFO] [stdout] --> src/scanner.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | EOF, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Eof` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:131:13 [INFO] [stdout] | [INFO] [stdout] 131 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 131 - return Ok(()); [INFO] [stdout] 131 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:139:9 [INFO] [stdout] | [INFO] [stdout] 139 | / return self [INFO] [stdout] 140 | | .state [INFO] [stdout] 141 | | .it [INFO] [stdout] 142 | | .peek() [INFO] [stdout] 143 | | .unwrap_or(self.state.tokens.last().as_ref().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] 139 ~ self [INFO] [stdout] 140 + .state [INFO] [stdout] 141 + .it [INFO] [stdout] 142 + .peek() [INFO] [stdout] 143 ~ .unwrap_or(self.state.tokens.last().as_ref().unwrap()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | / return Err(ParserError { [INFO] [stdout] 163 | | error, [INFO] [stdout] 164 | | line: self.line_number() as line_type, [INFO] [stdout] 165 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 162 ~ Err(ParserError { [INFO] [stdout] 163 + error, [INFO] [stdout] 164 + line: self.line_number() as line_type, [INFO] [stdout] 165 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | return c.is_ascii_alphabetic() || c == '_'; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 86 - return c.is_ascii_alphabetic() || c == '_'; [INFO] [stdout] 86 + c.is_ascii_alphabetic() || c == '_' [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:217:9 [INFO] [stdout] | [INFO] [stdout] 217 | return Ok(expr); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 217 - return Ok(expr); [INFO] [stdout] 217 + Ok(expr) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | 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] 144 - return None; [INFO] [stdout] 144 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | 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] 152 - return None; [INFO] [stdout] 152 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | / return Token { [INFO] [stdout] 163 | | token, [INFO] [stdout] 164 | | line: self.line, [INFO] [stdout] 165 | | lexeme: v, [INFO] [stdout] 166 | | value: TokenValue::Null, [INFO] [stdout] 167 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 162 ~ Token { [INFO] [stdout] 163 + token, [INFO] [stdout] 164 + line: self.line, [INFO] [stdout] 165 + lexeme: v, [INFO] [stdout] 166 + value: TokenValue::Null, [INFO] [stdout] 167 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:180:17 [INFO] [stdout] | [INFO] [stdout] 180 | / return Token { [INFO] [stdout] 181 | | token: two_char_token.1, [INFO] [stdout] 182 | | lexeme: two_char_token.0, [INFO] [stdout] 183 | | value: TokenValue::Null, [INFO] [stdout] 184 | | line: self.line, [INFO] [stdout] 185 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 180 ~ Token { [INFO] [stdout] 181 + token: two_char_token.1, [INFO] [stdout] 182 + lexeme: two_char_token.0, [INFO] [stdout] 183 + value: TokenValue::Null, [INFO] [stdout] 184 + line: self.line, [INFO] [stdout] 185 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:187:17 [INFO] [stdout] | [INFO] [stdout] 187 | / return Token { [INFO] [stdout] 188 | | token: single_char_token.1, [INFO] [stdout] 189 | | lexeme: single_char_token.0, [INFO] [stdout] 190 | | value: TokenValue::Null, [INFO] [stdout] 191 | | line: self.line, [INFO] [stdout] 192 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 187 ~ Token { [INFO] [stdout] 188 + token: single_char_token.1, [INFO] [stdout] 189 + lexeme: single_char_token.0, [INFO] [stdout] 190 + value: TokenValue::Null, [INFO] [stdout] 191 + line: self.line, [INFO] [stdout] 192 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:195:13 [INFO] [stdout] | [INFO] [stdout] 195 | / return Token { [INFO] [stdout] 196 | | token: single_char_token.1, [INFO] [stdout] 197 | | lexeme: single_char_token.0, [INFO] [stdout] 198 | | value: TokenValue::Null, [INFO] [stdout] 199 | | line: self.line, [INFO] [stdout] 200 | | }; [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 195 ~ Token { [INFO] [stdout] 196 + token: single_char_token.1, [INFO] [stdout] 197 + lexeme: single_char_token.0, [INFO] [stdout] 198 + value: TokenValue::Null, [INFO] [stdout] 199 + line: self.line, [INFO] [stdout] 200 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | / return Ok(Token { [INFO] [stdout] 221 | | token: TokenKind::Number, [INFO] [stdout] 222 | | lexeme, [INFO] [stdout] 223 | | value, [INFO] [stdout] 224 | | line: self.line, [INFO] [stdout] 225 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for 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 ~ Ok(Token { [INFO] [stdout] 221 + token: TokenKind::Number, [INFO] [stdout] 222 + lexeme, [INFO] [stdout] 223 + value, [INFO] [stdout] 224 + line: self.line, [INFO] [stdout] 225 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:253:9 [INFO] [stdout] | [INFO] [stdout] 253 | / return Ok(Token { [INFO] [stdout] 254 | | token: TokenKind::String, [INFO] [stdout] 255 | | lexeme, [INFO] [stdout] 256 | | value, [INFO] [stdout] 257 | | line: self.line, [INFO] [stdout] 258 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 253 ~ Ok(Token { [INFO] [stdout] 254 + token: TokenKind::String, [INFO] [stdout] 255 + lexeme, [INFO] [stdout] 256 + value, [INFO] [stdout] 257 + line: self.line, [INFO] [stdout] 258 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `expressions::Expressions<'_>` [INFO] [stdout] --> src/ast_parser.rs:330:12 [INFO] [stdout] | [INFO] [stdout] 330 | Ok(expr.into()) [INFO] [stdout] | ^^^^^^^^^^^ help: consider removing `.into()`: `expr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:282:9 [INFO] [stdout] | [INFO] [stdout] 282 | / return Ok(Token { [INFO] [stdout] 283 | | token: TokenKind::Identifier, [INFO] [stdout] 284 | | lexeme, [INFO] [stdout] 285 | | value: TokenValue::Null, [INFO] [stdout] 286 | | line: self.line, [INFO] [stdout] 287 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 282 ~ Ok(Token { [INFO] [stdout] 283 + token: TokenKind::Identifier, [INFO] [stdout] 284 + lexeme, [INFO] [stdout] 285 + value: TokenValue::Null, [INFO] [stdout] 286 + line: self.line, [INFO] [stdout] 287 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant redefinition of a binding `c` [INFO] [stdout] --> src/scanner.rs:389:21 [INFO] [stdout] | [INFO] [stdout] 389 | let c = c; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `c` is initially defined here [INFO] [stdout] --> src/scanner.rs:388:22 [INFO] [stdout] | [INFO] [stdout] 388 | Some(c) => { [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] = note: `#[warn(clippy::redundant_locals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:410:5 [INFO] [stdout] | [INFO] [stdout] 410 | return lexer.into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 410 - return lexer.into_iter().collect(); [INFO] [stdout] 410 + lexer.into_iter().collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:441:9 [INFO] [stdout] | [INFO] [stdout] 441 | return Ok(statement); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 441 - return Ok(statement); [INFO] [stdout] 441 + Ok(statement) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:467:9 [INFO] [stdout] | [INFO] [stdout] 467 | return Ok(statement.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 467 - return Ok(statement.into()) [INFO] [stdout] 467 + Ok(statement.into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `statements::function_declaration_statement::FunctionDeclareStatement<'_>` [INFO] [stdout] --> src/ast_parser.rs:467:19 [INFO] [stdout] | [INFO] [stdout] 467 | return Ok(statement.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `statement` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:490:9 [INFO] [stdout] | [INFO] [stdout] 490 | return Ok(statement.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 490 - return Ok(statement.into()) [INFO] [stdout] 490 + Ok(statement.into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `statements::Statements<'_>` [INFO] [stdout] --> src/ast_parser.rs:506:20 [INFO] [stdout] | [INFO] [stdout] 506 | Ok(self.class_declaration()?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.class_declaration()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:542:9 [INFO] [stdout] | [INFO] [stdout] 542 | return Ok(IfStatement::new(statements)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 542 - return Ok(IfStatement::new(statements)); [INFO] [stdout] 542 + Ok(IfStatement::new(statements)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:549:9 [INFO] [stdout] | [INFO] [stdout] 549 | return Ok(WhileStatement::new(expression, Box::new(statement)).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 549 - return Ok(WhileStatement::new(expression, Box::new(statement)).into()); [INFO] [stdout] 549 + Ok(WhileStatement::new(expression, Box::new(statement)).into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ast_parser.rs:591:9 [INFO] [stdout] | [INFO] [stdout] 591 | return Ok(ForStatement::new(declaration, test, inc, statement, begin_line, end_line).into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 591 - return Ok(ForStatement::new(declaration, test, inc, statement, begin_line, end_line).into()) [INFO] [stdout] 591 + Ok(ForStatement::new(declaration, test, inc, statement, begin_line, end_line).into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `expressions::Expressions<'_>` [INFO] [stdout] --> src/ast_parser.rs:571:22 [INFO] [stdout] | [INFO] [stdout] 571 | Some(self.expression()?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.expression()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `expressions::Expressions<'_>` [INFO] [stdout] --> src/ast_parser.rs:580:22 [INFO] [stdout] | [INFO] [stdout] 580 | Some(self.expression()?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.expression()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `statements::Statements<'_>` [INFO] [stdout] --> src/ast_parser.rs:607:20 [INFO] [stdout] | [INFO] [stdout] 607 | Ok(self.while_statement()?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.while_statement()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `statements::Statements<'_>` [INFO] [stdout] --> src/ast_parser.rs:611:20 [INFO] [stdout] | [INFO] [stdout] 611 | Ok(self.for_statement()?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `self.for_statement()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/chunk.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / return Self { [INFO] [stdout] 23 | | code: vec![], [INFO] [stdout] 24 | | constants: vec![], [INFO] [stdout] 25 | | lines: vec![], [INFO] [stdout] 26 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 22 ~ Self { [INFO] [stdout] 23 + code: vec![], [INFO] [stdout] 24 + constants: vec![], [INFO] [stdout] 25 + lines: vec![], [INFO] [stdout] 26 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/chunk.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | return Varint((self.constants.len() - 1) as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 31 - return Varint((self.constants.len() - 1) as u32); [INFO] [stdout] 31 + Varint((self.constants.len() - 1) as u32) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/chunk.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | return self.lines[line_index].0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 58 - return self.lines[line_index].0; [INFO] [stdout] 58 + self.lines[line_index].0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/chunk.rs:67:47 [INFO] [stdout] | [INFO] [stdout] 67 | i = disassemble_instruction(heap, &self, i, previous); [INFO] [stdout] | ^^^^^ help: change this to: `self` [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/compiler/chunk.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | return Varint(v as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 76 - return Varint(v as u32); [INFO] [stdout] 76 + Varint(v as u32) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_none()` [INFO] [stdout] --> src/statements/return_statement.rs:29:16 [INFO] [stdout] | [INFO] [stdout] 29 | if let None = chunk.borrow().enclosing { [INFO] [stdout] | -------^^^^--------------------------- help: try: `if chunk.borrow().enclosing.is_none()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | return offset + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 49 - return offset + 1; [INFO] [stdout] 49 + offset + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | return offset + o + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 - return offset + o + 1; [INFO] [stdout] 59 + offset + o + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | return offset + o; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for 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 offset + o; [INFO] [stdout] 69 + offset + o [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:64:46 [INFO] [stdout] | [INFO] [stdout] 64 | let register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:65:44 [INFO] [stdout] | [INFO] [stdout] 65 | let (constant, o) = Varint::read_bytes(&chunk, offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return offset; [INFO] [stdout] 78 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:74:46 [INFO] [stdout] | [INFO] [stdout] 74 | let register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:75:42 [INFO] [stdout] | [INFO] [stdout] 75 | let global = global_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | return offset + o; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 90 - return offset + o; [INFO] [stdout] 90 + offset + o [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:83:52 [INFO] [stdout] | [INFO] [stdout] 83 | let value_register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:84:50 [INFO] [stdout] | [INFO] [stdout] 84 | let dst_register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:86:44 [INFO] [stdout] | [INFO] [stdout] 86 | let (constant, o) = Varint::read_bytes(&chunk, offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 97 - return offset; [INFO] [stdout] 97 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/statements.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | / match self { [INFO] [stdout] 76 | | Self::ReturnStatement(_) => true, [INFO] [stdout] 77 | | _ => false [INFO] [stdout] 78 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 75 - match self { [INFO] [stdout] 76 - Self::ReturnStatement(_) => true, [INFO] [stdout] 77 - _ => false [INFO] [stdout] 78 - } [INFO] [stdout] 75 + matches!(self, Self::ReturnStatement(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 107 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 107 - return offset; [INFO] [stdout] 107 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:104:35 [INFO] [stdout] | [INFO] [stdout] 104 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:120:5 [INFO] [stdout] | [INFO] [stdout] 120 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 120 - return offset; [INFO] [stdout] 120 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:115:35 [INFO] [stdout] | [INFO] [stdout] 115 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:116:35 [INFO] [stdout] | [INFO] [stdout] 116 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:117:35 [INFO] [stdout] | [INFO] [stdout] 117 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:135:5 [INFO] [stdout] | [INFO] [stdout] 135 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 135 - return offset; [INFO] [stdout] 135 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/global_functions.rs:33:13 [INFO] [stdout] | [INFO] [stdout] 33 | / let mut v = Vec::new(); [INFO] [stdout] 34 | | $( [INFO] [stdout] 35 | | v.push(global_mod!($mod)); [INFO] [stdout] | |__________________________________________^ help: consider using the `vec![]` macro: `let v = vec![..];` [INFO] [stdout] ... [INFO] [stdout] 62 | let functions = global_mods!(clock); [INFO] [stdout] | ------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] = note: this warning originates in the macro `global_mods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:128:35 [INFO] [stdout] | [INFO] [stdout] 128 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:129:35 [INFO] [stdout] | [INFO] [stdout] 129 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:130:35 [INFO] [stdout] | [INFO] [stdout] 130 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:131:35 [INFO] [stdout] | [INFO] [stdout] 131 | register_index_type::read(&chunk, &mut offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 148 - return offset; [INFO] [stdout] 148 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:143:46 [INFO] [stdout] | [INFO] [stdout] 143 | let register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:144:40 [INFO] [stdout] | [INFO] [stdout] 144 | let index = stack_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 157 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 157 - return offset; [INFO] [stdout] 157 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:153:46 [INFO] [stdout] | [INFO] [stdout] 153 | let register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:165:5 [INFO] [stdout] | [INFO] [stdout] 165 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 165 - return offset; [INFO] [stdout] 165 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/value.rs:69:1 [INFO] [stdout] | [INFO] [stdout] 69 | / impl Default for Value { [INFO] [stdout] 70 | | fn default() -> Self { [INFO] [stdout] 71 | | Value::Null [INFO] [stdout] 72 | | } [INFO] [stdout] 73 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 33 + #[derive(Default)] [INFO] [stdout] 34 | pub enum Value { [INFO] [stdout] 35 | Number(f64), [INFO] [stdout] 36 | String(Gc), [INFO] [stdout] 37 ~ #[default] [INFO] [stdout] 38 ~ Null, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:177:5 [INFO] [stdout] | [INFO] [stdout] 177 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 177 - return offset; [INFO] [stdout] 177 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:171:46 [INFO] [stdout] | [INFO] [stdout] 171 | let register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/instructions.rs:213:5 [INFO] [stdout] | [INFO] [stdout] 213 | return offset; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 213 - return offset; [INFO] [stdout] 213 + offset [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:184:49 [INFO] [stdout] | [INFO] [stdout] 184 | let fn_register = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:186:53 [INFO] [stdout] | [INFO] [stdout] 186 | let (constant, bytes_read) = Varint::read_bytes(&chunk, offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:194:47 [INFO] [stdout] | [INFO] [stdout] 194 | let index = register_index_type::read(&chunk, &mut offset); [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [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: empty string literal in `eprintln!` [INFO] [stdout] --> src/compiler/instructions.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | eprintln!(""); [INFO] [stdout] | ^^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `eprintln!` [INFO] [stdout] --> src/compiler/instructions.rs:211:5 [INFO] [stdout] | [INFO] [stdout] 211 | eprintln!(""); [INFO] [stdout] | ^^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/instructions.rs:231:83 [INFO] [stdout] | [INFO] [stdout] 231 | Some(Instructions::Constant) => constant_instruction(heap, "OP_CONSTANT", &chunk, offset), [INFO] [stdout] | ^^^^^^ help: change this to: `chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/vm.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 67 | return self.get_register(register); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 67 - return self.get_register(register); [INFO] [stdout] 67 + self.get_register(register) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/vm.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | return constant; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for 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 constant; [INFO] [stdout] 73 + constant [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/compiler/vm.rs:71:51 [INFO] [stdout] | [INFO] [stdout] 71 | let (constant, size) = Varint::read_bytes(&self.core.current_chunk, self.core.ip); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.core.current_chunk` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/vm.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 77 | return stack_index_type::read_bytes(self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 77 - return stack_index_type::read_bytes(self); [INFO] [stdout] 77 + stack_index_type::read_bytes(self) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/vm.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | return global_index_type::read_bytes(self); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 81 - return global_index_type::read_bytes(self); [INFO] [stdout] 81 + global_index_type::read_bytes(self) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statement with no effect [INFO] [stdout] --> src/compiler/vm.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | self.core.stack_index; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stdout] = note: `#[warn(clippy::no_effect)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Value` which implements the `Copy` trait [INFO] [stdout] --> src/compiler/vm.rs:115:50 [INFO] [stdout] | [INFO] [stdout] 115 | self.core.registers[register as usize] = chunk.constants[constant as usize].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `chunk.constants[constant as usize]` [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: using `clone` on type `Value` which implements the `Copy` trait [INFO] [stdout] --> src/compiler/vm.rs:299:21 [INFO] [stdout] | [INFO] [stdout] 299 | *variable = self.core.registers[register as usize].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.core.registers[register as usize]` [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: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:309:30 [INFO] [stdout] | [INFO] [stdout] 309 | let previous_index = self.core.stack_states.pop().ok_or_else(|| InterpretError::InvalidStackPop)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 309 - let previous_index = self.core.stack_states.pop().ok_or_else(|| InterpretError::InvalidStackPop)?; [INFO] [stdout] 309 + let previous_index = self.core.stack_states.pop().ok_or(InterpretError::InvalidStackPop)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Value` which implements the `Copy` trait [INFO] [stdout] --> src/compiler/vm.rs:336:57 [INFO] [stdout] | [INFO] [stdout] 336 | self.core.registers[output_register as usize] = self.core.stack[index as usize].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.core.stack[index as usize]` [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: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:336:73 [INFO] [stdout] | [INFO] [stdout] 336 | self.core.registers[output_register as usize] = self.core.stack[index as usize].clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `{ index }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:358:44 [INFO] [stdout] | [INFO] [stdout] 358 | self.heap.set(&mut self.core.stack[index as usize], self.core.registers[output_register as usize]); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/compiler/vm.rs:478:17 [INFO] [stdout] | [INFO] [stdout] 478 | / if let Some(expected) = arg_count { [INFO] [stdout] 479 | | if expected != num_args { [INFO] [stdout] 480 | | Err(EvaluateErrorDetails::InvalidArgCount)?; [INFO] [stdout] 481 | | } [INFO] [stdout] 482 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 478 ~ if let Some(expected) = arg_count [INFO] [stdout] 479 ~ && expected != num_args { [INFO] [stdout] 480 | Err(EvaluateErrorDetails::InvalidArgCount)?; [INFO] [stdout] 481 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:528:21 [INFO] [stdout] | [INFO] [stdout] 528 | let v = self.core.call_stack.last() .ok_or_else(|| EvaluateErrorDetails::InvalidReturnStatement)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 528 - let v = self.core.call_stack.last() .ok_or_else(|| EvaluateErrorDetails::InvalidReturnStatement)?; [INFO] [stdout] 528 + let v = self.core.call_stack.last() .ok_or(EvaluateErrorDetails::InvalidReturnStatement)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:534:53 [INFO] [stdout] | [INFO] [stdout] 534 | std::mem::take(&mut self.core.stack[index as usize]) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:540:17 [INFO] [stdout] | [INFO] [stdout] 540 | let v = self.core.call_stack.pop().ok_or_else(|| EvaluateErrorDetails::InvalidReturnStatement)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 540 - let v = self.core.call_stack.pop().ok_or_else(|| EvaluateErrorDetails::InvalidReturnStatement)?; [INFO] [stdout] 540 + let v = self.core.call_stack.pop().ok_or(EvaluateErrorDetails::InvalidReturnStatement)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:549:41 [INFO] [stdout] | [INFO] [stdout] 549 | self.core.stack_states.truncate(v.stack_state_index as usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `v.stack_state_index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:578:90 [INFO] [stdout] | [INFO] [stdout] 578 | let cell = self.heap.alloc(HeapObject::Cell(RefCell::new(self.core.stack[index as usize]))); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:579:33 [INFO] [stdout] | [INFO] [stdout] 579 | self.core.stack[index as usize] = Value::Cell(cell); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Value` which implements the `Copy` trait [INFO] [stdout] --> src/compiler/vm.rs:580:31 [INFO] [stdout] | [INFO] [stdout] 580 | upvalues.push(self.core.stack[index as usize].clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.core.stack[index as usize]` [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: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:580:47 [INFO] [stdout] | [INFO] [stdout] 580 | upvalues.push(self.core.stack[index as usize].clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `{ index }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:610:27 [INFO] [stdout] | [INFO] [stdout] 610 | let upvalues_gc = self.core.call_stack.last() [INFO] [stdout] | ___________________________^ [INFO] [stdout] 611 | | .ok_or_else(|| EvaluateErrorDetails::InvalidUpvalueAccess)? [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 611 - .ok_or_else(|| EvaluateErrorDetails::InvalidUpvalueAccess)? [INFO] [stdout] 611 + .ok_or(EvaluateErrorDetails::InvalidUpvalueAccess)? [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:635:27 [INFO] [stdout] | [INFO] [stdout] 635 | let upvalues_gc = self.core.call_stack.last() [INFO] [stdout] | ___________________________^ [INFO] [stdout] 636 | | .ok_or_else(|| EvaluateErrorDetails::InvalidUpvalueAccess)? [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 636 - .ok_or_else(|| EvaluateErrorDetails::InvalidUpvalueAccess)? [INFO] [stdout] 636 + .ok_or(EvaluateErrorDetails::InvalidUpvalueAccess)? [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:679:50 [INFO] [stdout] | [INFO] [stdout] 679 | self.core.registers[register as usize] = self [INFO] [stdout] | __________________________________________________^ [INFO] [stdout] 680 | | .heap [INFO] [stdout] 681 | | .instance_get(instance_gc, &field_name) [INFO] [stdout] 682 | | .ok_or_else(|| EvaluateErrorDetails::UndefinedVariable(field_name))?; [INFO] [stdout] | |_______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 682 - .ok_or_else(|| EvaluateErrorDetails::UndefinedVariable(field_name))?; [INFO] [stdout] 682 + .ok_or(EvaluateErrorDetails::UndefinedVariable(field_name))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/compiler/vm.rs:756:17 [INFO] [stdout] | [INFO] [stdout] 756 | / match func_kind { [INFO] [stdout] 757 | | FunctionKind::Function => return Ok(()), [INFO] [stdout] 758 | | _ => {} [INFO] [stdout] 759 | | } [INFO] [stdout] | |_________________^ help: try: `if let FunctionKind::Function = func_kind { return Ok(()) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:774:40 [INFO] [stdout] | [INFO] [stdout] 774 | let instance = c.instance.ok_or_else(|| EvaluateErrorDetails::UnbindedMethod)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 774 - let instance = c.instance.ok_or_else(|| EvaluateErrorDetails::UnbindedMethod)?; [INFO] [stdout] 774 + let instance = c.instance.ok_or(EvaluateErrorDetails::UnbindedMethod)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:777:41 [INFO] [stdout] | [INFO] [stdout] 777 | ... let class = class_val.ok_or_else(|| EvaluateErrorDetails::UnbindedMethod)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 777 - let class = class_val.ok_or_else(|| EvaluateErrorDetails::UnbindedMethod)?; [INFO] [stdout] 777 + let class = class_val.ok_or(EvaluateErrorDetails::UnbindedMethod)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:811:53 [INFO] [stdout] | [INFO] [stdout] 811 | ... HeapObject::Class(c) => c.base_class.ok_or_else(|| EvaluateErrorDetails::UnbindedMethod)?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 811 - HeapObject::Class(c) => c.base_class.ok_or_else(|| EvaluateErrorDetails::UnbindedMethod)?, [INFO] [stdout] 811 + HeapObject::Class(c) => c.base_class.ok_or(EvaluateErrorDetails::UnbindedMethod)?, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:867:43 [INFO] [stdout] | [INFO] [stdout] 867 | HeapObject::Class(c) => match c.base_class.ok_or_else(|| EvaluateErrorDetails::InvalidUpvalueAccess)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 867 - HeapObject::Class(c) => match c.base_class.ok_or_else(|| EvaluateErrorDetails::InvalidUpvalueAccess)? { [INFO] [stdout] 867 + HeapObject::Class(c) => match c.base_class.ok_or(EvaluateErrorDetails::InvalidUpvalueAccess)? { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/compiler/vm.rs:874:26 [INFO] [stdout] | [INFO] [stdout] 874 | let method_val = self [INFO] [stdout] | __________________________^ [INFO] [stdout] 875 | | .heap [INFO] [stdout] 876 | | .class_get_method(base_class_gc, &identifier) [INFO] [stdout] 877 | | .ok_or_else(|| EvaluateErrorDetails::UndefinedVariable(identifier))?; [INFO] [stdout] | |_______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 877 - .ok_or_else(|| EvaluateErrorDetails::UndefinedVariable(identifier))?; [INFO] [stdout] 877 + .ok_or(EvaluateErrorDetails::UndefinedVariable(identifier))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/vm.rs:976:5 [INFO] [stdout] | [INFO] [stdout] 976 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 976 - return Ok(()); [INFO] [stdout] 976 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Result.or_else(|x| Err(y))`, which is more succinctly expressed as `map_err(|x| y)` [INFO] [stdout] --> src/compiler/vm.rs:970:9 [INFO] [stdout] | [INFO] [stdout] 970 | / execute_instruction(vm, instruction).or_else(|err| Err(EvaluateError { [INFO] [stdout] 971 | | error: err, [INFO] [stdout] 972 | | line: vm.core.current_chunk.get_line(previous_ip as usize) as line_type, [INFO] [stdout] 973 | | }))?; [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 970 ~ execute_instruction(vm, instruction).map_err(|err| EvaluateError { [INFO] [stdout] 971 + error: err, [INFO] [stdout] 972 + line: vm.core.current_chunk.get_line(previous_ip as usize) as line_type, [INFO] [stdout] 973 ~ })?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/compiler/vm.rs:972:50 [INFO] [stdout] | [INFO] [stdout] 972 | line: vm.core.current_chunk.get_line(previous_ip as usize) as line_type, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `previous_ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/compiler.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | pub mod compiler; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` 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/compiler/compiler.rs:118:61 [INFO] [stdout] | [INFO] [stdout] 118 | None => self.globals.as_ref().unwrap().contains(&name), [INFO] [stdout] | ^^^^^ help: change this to: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/compiler.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | return self.chunk.get_constant(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] 140 - return self.chunk.get_constant(value) [INFO] [stdout] 140 + self.chunk.get_constant(value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/compiler.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | return self.chunk.add_constant(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] 144 - return self.chunk.add_constant(value) [INFO] [stdout] 144 + self.chunk.add_constant(value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/compiler.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | return self.write(byte as u8, line); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for 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 self.write(byte as u8, line); [INFO] [stdout] 179 + self.write(byte as u8, line) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u8` is unnecessary [INFO] [stdout] --> src/compiler/compiler.rs:212:24 [INFO] [stdout] | [INFO] [stdout] 212 | self.write(0xFF as u8, line); [INFO] [stdout] | ^^^^^^^^^^ help: try: `0xFF_u8` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting integer literal to `u8` is unnecessary [INFO] [stdout] --> src/compiler/compiler.rs:229:24 [INFO] [stdout] | [INFO] [stdout] 229 | self.write(0xFF as u8, line); [INFO] [stdout] | ^^^^^^^^^^ help: try: `0xFF_u8` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/compiler/compiler.rs:247:9 [INFO] [stdout] | [INFO] [stdout] 247 | / for i in 0..values.len() { [INFO] [stdout] 248 | | self.chunk.code[index + i] = values[i]; [INFO] [stdout] 249 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `self.chunk.code[index..(values.len() + index)].copy_from_slice(&values[..]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] = note: `#[warn(clippy::manual_memcpy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this returns a `Result<_, ()>` [INFO] [stdout] --> src/compiler/compiler.rs:258:5 [INFO] [stdout] | [INFO] [stdout] 258 | pub fn declare_variable(&mut self, name: &'a str) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use a custom `Error` type instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err [INFO] [stdout] = note: `#[warn(clippy::result_unit_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/compiler/compiler.rs:259:37 [INFO] [stdout] | [INFO] [stdout] 259 | if self.scope_depth == 0 && !self.enclosing.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.enclosing.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/compiler/compiler.rs:262:53 [INFO] [stdout] | [INFO] [stdout] 262 | if self.locals.iter().any(|f| f.name == name.to_string() && f.depth == self.scope_depth) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/compiler/compiler.rs:272:37 [INFO] [stdout] | [INFO] [stdout] 272 | if self.scope_depth == 0 && !self.enclosing.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.enclosing.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/compiler/compiler.rs:275:53 [INFO] [stdout] | [INFO] [stdout] 275 | if self.locals.iter().any(|f| f.name == name.to_string()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/compiler/compiler.rs:421:9 [INFO] [stdout] | [INFO] [stdout] 421 | / match self.locals.iter_mut().find(|l| l.name == name) { [INFO] [stdout] 422 | | Some(v) => v.is_predeclared = false, [INFO] [stdout] 423 | | None => {}, [INFO] [stdout] 424 | | } [INFO] [stdout] | |_________^ help: try: `if let Some(v) = self.locals.iter_mut().find(|l| l.name == name) { v.is_predeclared = false }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/compiler.rs:446:9 [INFO] [stdout] | [INFO] [stdout] 446 | return Ok(ResolvedVar::Global(self.global_index(&name.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] 446 - return Ok(ResolvedVar::Global(self.global_index(&name.to_string()))) [INFO] [stdout] 446 + Ok(ResolvedVar::Global(self.global_index(&name.to_string()))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/int_types.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | return v; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 32 - return v; [INFO] [stdout] 32 + v [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/int_types.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | return v; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return v; [INFO] [stdout] 40 + v [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler/int_types.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | return v; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 - return v; [INFO] [stdout] 48 + v [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Heap` [INFO] [stdout] --> src/compiler/garbage_collector.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | / pub fn new() -> Self { [INFO] [stdout] 91 | | Self { [INFO] [stdout] 92 | | objects: Vec::with_capacity(1024), [INFO] [stdout] 93 | | marked: Vec::with_capacity(1024), [INFO] [stdout] ... | [INFO] [stdout] 97 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 89 + impl Default for Heap { [INFO] [stdout] 90 + fn default() -> Self { [INFO] [stdout] 91 + Self::new() [INFO] [stdout] 92 + } [INFO] [stdout] 93 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/compiler/garbage_collector.rs:429:13 [INFO] [stdout] | [INFO] [stdout] 429 | / match self.get_mut(dst) { [INFO] [stdout] 430 | | HeapObject::Class(c) => c.base_class = Some(Value::Class(src)), [INFO] [stdout] 431 | | _ => {} [INFO] [stdout] 432 | | } [INFO] [stdout] | |_____________^ help: try: `if let HeapObject::Class(c) = self.get_mut(dst) { c.base_class = Some(Value::Class(src)) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/compiler/garbage_collector.rs:442:13 [INFO] [stdout] | [INFO] [stdout] 442 | / match self.get_mut(dst) { [INFO] [stdout] 443 | | HeapObject::Class(c) => c.constructor = Some(ctor), [INFO] [stdout] 444 | | _ => {} [INFO] [stdout] 445 | | } [INFO] [stdout] | |_____________^ help: try: `if let HeapObject::Class(c) = self.get_mut(dst) { c.constructor = Some(ctor) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/assignment_expression.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | / return Self { [INFO] [stdout] 27 | | line_number: lhs.line_number(), [INFO] [stdout] 28 | | lhs, [INFO] [stdout] 29 | | rhs, [INFO] [stdout] 30 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 ~ Self { [INFO] [stdout] 27 + line_number: lhs.line_number(), [INFO] [stdout] 28 + lhs, [INFO] [stdout] 29 + rhs, [INFO] [stdout] 30 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/expressions/binary_expression.rs:16:6 [INFO] [stdout] | [INFO] [stdout] 16 | impl<'a> Display for BinaryOp { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/binary_expression.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | / return Self { [INFO] [stdout] 44 | | line_number: lhs.line_number(), [INFO] [stdout] 45 | | lhs, [INFO] [stdout] 46 | | rhs, [INFO] [stdout] 47 | | op, [INFO] [stdout] 48 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 43 ~ Self { [INFO] [stdout] 44 + line_number: lhs.line_number(), [INFO] [stdout] 45 + lhs, [INFO] [stdout] 46 + rhs, [INFO] [stdout] 47 + op, [INFO] [stdout] 48 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/expressions/equality_expression.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | impl<'a> Display for EqualityOp { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/equality_expression.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | / return Self { [INFO] [stdout] 40 | | line_number: lhs.line_number(), [INFO] [stdout] 41 | | lhs, [INFO] [stdout] 42 | | rhs, [INFO] [stdout] 43 | | op, [INFO] [stdout] 44 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 39 ~ Self { [INFO] [stdout] 40 + line_number: lhs.line_number(), [INFO] [stdout] 41 + lhs, [INFO] [stdout] 42 + rhs, [INFO] [stdout] 43 + op, [INFO] [stdout] 44 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/group.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | return Self { expr }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 21 - return Self { expr }; [INFO] [stdout] 21 + Self { expr } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/identifier.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | / return Self { [INFO] [stdout] 26 | | token: token.lexeme, [INFO] [stdout] 27 | | line: token.line as line_type, [INFO] [stdout] 28 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 25 ~ Self { [INFO] [stdout] 26 + token: token.lexeme, [INFO] [stdout] 27 + line: token.line as line_type, [INFO] [stdout] 28 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/literal.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | return Self { token: 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] 30 - return Self { token: token }; [INFO] [stdout] 30 + Self { token: token } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/expressions/literal.rs:53:21 [INFO] [stdout] | [INFO] [stdout] 51 | / let constant = [INFO] [stdout] 52 | | chunk.get_or_write_constant(Value::Number(v), self.line_number()); [INFO] [stdout] | |__________________________________________________________________________________________- unnecessary `let` binding [INFO] [stdout] 53 | constant [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 51 ~ [INFO] [stdout] 52 ~ chunk.get_or_write_constant(Value::Number(v), self.line_number()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/expressions/literal.rs:64:21 [INFO] [stdout] | [INFO] [stdout] 62 | / let constant = [INFO] [stdout] 63 | | chunk.get_or_write_constant(Value::String(constant_v), self.line_number()); [INFO] [stdout] | |___________________________________________________________________________________________________- unnecessary `let` binding [INFO] [stdout] 64 | constant [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 62 ~ [INFO] [stdout] 63 ~ chunk.get_or_write_constant(Value::String(constant_v), self.line_number()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/expressions/literal.rs:71:17 [INFO] [stdout] | [INFO] [stdout] 69 | / let constant = [INFO] [stdout] 70 | | chunk.get_or_write_constant(Value::Boolean(true), self.line_number()); [INFO] [stdout] | |__________________________________________________________________________________________- unnecessary `let` binding [INFO] [stdout] 71 | constant [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 69 ~ [INFO] [stdout] 70 ~ chunk.get_or_write_constant(Value::Boolean(true), self.line_number()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/expressions/literal.rs:76:17 [INFO] [stdout] | [INFO] [stdout] 74 | / let constant = [INFO] [stdout] 75 | | chunk.get_or_write_constant(Value::Boolean(false), self.line_number()); [INFO] [stdout] | |___________________________________________________________________________________________- unnecessary `let` binding [INFO] [stdout] 76 | constant [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 74 ~ [INFO] [stdout] 75 ~ chunk.get_or_write_constant(Value::Boolean(false), self.line_number()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/expressions/literal.rs:80:17 [INFO] [stdout] | [INFO] [stdout] 79 | let constant = chunk.get_or_write_constant(Value::Null, self.line_number()); [INFO] [stdout] | ---------------------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 80 | constant [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 79 ~ [INFO] [stdout] 80 ~ chunk.get_or_write_constant(Value::Null, self.line_number()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/expressions/literal.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / match dst_register { [INFO] [stdout] 86 | | Some(v) => { [INFO] [stdout] 87 | | chunk.write_load(v, constant, self.line_number()); [INFO] [stdout] ... | [INFO] [stdout] 90 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 85 ~ if let Some(v) = dst_register { [INFO] [stdout] 86 + chunk.write_load(v, constant, self.line_number()); [INFO] [stdout] 87 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/expressions/logical_expression.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | impl<'a> Display for LogicalOp { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/logical_expression.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | / return Self { [INFO] [stdout] 40 | | line_number: lhs.line_number(), [INFO] [stdout] 41 | | lhs, [INFO] [stdout] 42 | | rhs, [INFO] [stdout] 43 | | op, [INFO] [stdout] 44 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 39 ~ Self { [INFO] [stdout] 40 + line_number: lhs.line_number(), [INFO] [stdout] 41 + lhs, [INFO] [stdout] 42 + rhs, [INFO] [stdout] 43 + op, [INFO] [stdout] 44 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/expressions/relation_expression.rs:16:6 [INFO] [stdout] | [INFO] [stdout] 16 | impl<'a> Display for RelationalOp { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/relation_expression.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | / return Self { [INFO] [stdout] 44 | | line_number: lhs.line_number(), [INFO] [stdout] 45 | | lhs, [INFO] [stdout] 46 | | rhs, [INFO] [stdout] 47 | | op, [INFO] [stdout] 48 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 43 ~ Self { [INFO] [stdout] 44 + line_number: lhs.line_number(), [INFO] [stdout] 45 + lhs, [INFO] [stdout] 46 + rhs, [INFO] [stdout] 47 + op, [INFO] [stdout] 48 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/expressions/unary_expression.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | impl<'a> Display for UnaryOp { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/unary_expression.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | return Self { rhs, op }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for 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 Self { rhs, op }; [INFO] [stdout] 37 + Self { rhs, op } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/this_expression.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | / return Self { [INFO] [stdout] 24 | | token: token.lexeme, [INFO] [stdout] 25 | | line: token.line as line_type, [INFO] [stdout] 26 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 ~ Self { [INFO] [stdout] 24 + token: token.lexeme, [INFO] [stdout] 25 + line: token.line as line_type, [INFO] [stdout] 26 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/expressions/super_expression.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | / return Self { [INFO] [stdout] 25 | | token: token.lexeme, [INFO] [stdout] 26 | | line: token.line as line_type, [INFO] [stdout] 27 | | identifier [INFO] [stdout] 28 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 24 ~ Self { [INFO] [stdout] 25 + token: token.lexeme, [INFO] [stdout] 26 + line: token.line as line_type, [INFO] [stdout] 27 + identifier [INFO] [stdout] 28 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EOF` contains a capitalized acronym [INFO] [stdout] --> src/scanner.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | EOF, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Eof` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | return c.is_ascii_alphabetic() || c == '_'; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 86 - return c.is_ascii_alphabetic() || c == '_'; [INFO] [stdout] 86 + c.is_ascii_alphabetic() || c == '_' [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | 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] 144 - return None; [INFO] [stdout] 144 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | 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] 152 - return None; [INFO] [stdout] 152 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | / return Token { [INFO] [stdout] 163 | | token, [INFO] [stdout] 164 | | line: self.line, [INFO] [stdout] 165 | | lexeme: v, [INFO] [stdout] 166 | | value: TokenValue::Null, [INFO] [stdout] 167 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 162 ~ Token { [INFO] [stdout] 163 + token, [INFO] [stdout] 164 + line: self.line, [INFO] [stdout] 165 + lexeme: v, [INFO] [stdout] 166 + value: TokenValue::Null, [INFO] [stdout] 167 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:180:17 [INFO] [stdout] | [INFO] [stdout] 180 | / return Token { [INFO] [stdout] 181 | | token: two_char_token.1, [INFO] [stdout] 182 | | lexeme: two_char_token.0, [INFO] [stdout] 183 | | value: TokenValue::Null, [INFO] [stdout] 184 | | line: self.line, [INFO] [stdout] 185 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 180 ~ Token { [INFO] [stdout] 181 + token: two_char_token.1, [INFO] [stdout] 182 + lexeme: two_char_token.0, [INFO] [stdout] 183 + value: TokenValue::Null, [INFO] [stdout] 184 + line: self.line, [INFO] [stdout] 185 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:187:17 [INFO] [stdout] | [INFO] [stdout] 187 | / return Token { [INFO] [stdout] 188 | | token: single_char_token.1, [INFO] [stdout] 189 | | lexeme: single_char_token.0, [INFO] [stdout] 190 | | value: TokenValue::Null, [INFO] [stdout] 191 | | line: self.line, [INFO] [stdout] 192 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 187 ~ Token { [INFO] [stdout] 188 + token: single_char_token.1, [INFO] [stdout] 189 + lexeme: single_char_token.0, [INFO] [stdout] 190 + value: TokenValue::Null, [INFO] [stdout] 191 + line: self.line, [INFO] [stdout] 192 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:195:13 [INFO] [stdout] | [INFO] [stdout] 195 | / return Token { [INFO] [stdout] 196 | | token: single_char_token.1, [INFO] [stdout] 197 | | lexeme: single_char_token.0, [INFO] [stdout] 198 | | value: TokenValue::Null, [INFO] [stdout] 199 | | line: self.line, [INFO] [stdout] 200 | | }; [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 195 ~ Token { [INFO] [stdout] 196 + token: single_char_token.1, [INFO] [stdout] 197 + lexeme: single_char_token.0, [INFO] [stdout] 198 + value: TokenValue::Null, [INFO] [stdout] 199 + line: self.line, [INFO] [stdout] 200 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | / return Ok(Token { [INFO] [stdout] 221 | | token: TokenKind::Number, [INFO] [stdout] 222 | | lexeme, [INFO] [stdout] 223 | | value, [INFO] [stdout] 224 | | line: self.line, [INFO] [stdout] 225 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for 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 ~ Ok(Token { [INFO] [stdout] 221 + token: TokenKind::Number, [INFO] [stdout] 222 + lexeme, [INFO] [stdout] 223 + value, [INFO] [stdout] 224 + line: self.line, [INFO] [stdout] 225 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:253:9 [INFO] [stdout] | [INFO] [stdout] 253 | / return Ok(Token { [INFO] [stdout] 254 | | token: TokenKind::String, [INFO] [stdout] 255 | | lexeme, [INFO] [stdout] 256 | | value, [INFO] [stdout] 257 | | line: self.line, [INFO] [stdout] 258 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 253 ~ Ok(Token { [INFO] [stdout] 254 + token: TokenKind::String, [INFO] [stdout] 255 + lexeme, [INFO] [stdout] 256 + value, [INFO] [stdout] 257 + line: self.line, [INFO] [stdout] 258 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:282:9 [INFO] [stdout] | [INFO] [stdout] 282 | / return Ok(Token { [INFO] [stdout] 283 | | token: TokenKind::Identifier, [INFO] [stdout] 284 | | lexeme, [INFO] [stdout] 285 | | value: TokenValue::Null, [INFO] [stdout] 286 | | line: self.line, [INFO] [stdout] 287 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 282 ~ Ok(Token { [INFO] [stdout] 283 + token: TokenKind::Identifier, [INFO] [stdout] 284 + lexeme, [INFO] [stdout] 285 + value: TokenValue::Null, [INFO] [stdout] 286 + line: self.line, [INFO] [stdout] 287 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant redefinition of a binding `c` [INFO] [stdout] --> src/scanner.rs:389:21 [INFO] [stdout] | [INFO] [stdout] 389 | let c = c; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `c` is initially defined here [INFO] [stdout] --> src/scanner.rs:388:22 [INFO] [stdout] | [INFO] [stdout] 388 | Some(c) => { [INFO] [stdout] | ^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] = note: `#[warn(clippy::redundant_locals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scanner.rs:410:5 [INFO] [stdout] | [INFO] [stdout] 410 | return lexer.into_iter().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 410 - return lexer.into_iter().collect(); [INFO] [stdout] 410 + lexer.into_iter().collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_none()` [INFO] [stdout] --> src/statements/return_statement.rs:29:16 [INFO] [stdout] | [INFO] [stdout] 29 | if let None = chunk.borrow().enclosing { [INFO] [stdout] | -------^^^^--------------------------- help: try: `if chunk.borrow().enclosing.is_none()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/statements.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | / match self { [INFO] [stdout] 76 | | Self::ReturnStatement(_) => true, [INFO] [stdout] 77 | | _ => false [INFO] [stdout] 78 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 75 - match self { [INFO] [stdout] 76 - Self::ReturnStatement(_) => true, [INFO] [stdout] 77 - _ => false [INFO] [stdout] 78 - } [INFO] [stdout] 75 + matches!(self, Self::ReturnStatement(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/global_functions.rs:33:13 [INFO] [stdout] | [INFO] [stdout] 33 | / let mut v = Vec::new(); [INFO] [stdout] 34 | | $( [INFO] [stdout] 35 | | v.push(global_mod!($mod)); [INFO] [stdout] | |__________________________________________^ help: consider using the `vec![]` macro: `let v = vec![..];` [INFO] [stdout] ... [INFO] [stdout] 62 | let functions = global_mods!(clock); [INFO] [stdout] | ------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] = note: this warning originates in the macro `global_mods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/value.rs:69:1 [INFO] [stdout] | [INFO] [stdout] 69 | / impl Default for Value { [INFO] [stdout] 70 | | fn default() -> Self { [INFO] [stdout] 71 | | Value::Null [INFO] [stdout] 72 | | } [INFO] [stdout] 73 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 33 + #[derive(Default)] [INFO] [stdout] 34 | pub enum Value { [INFO] [stdout] 35 | Number(f64), [INFO] [stdout] 36 | String(Gc), [INFO] [stdout] 37 ~ #[default] [INFO] [stdout] 38 ~ Null, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.64s [INFO] running `Command { std: "docker" "inspect" "586a6188a9186de26ee8c08588853e2ec5ee6088dbead2e9a653b910bec3ba7c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "586a6188a9186de26ee8c08588853e2ec5ee6088dbead2e9a653b910bec3ba7c", kill_on_drop: false }` [INFO] [stdout] 586a6188a9186de26ee8c08588853e2ec5ee6088dbead2e9a653b910bec3ba7c