[INFO] cloning repository https://github.com/wiseodd/rustlox [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wiseodd/rustlox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwiseodd%2Frustlox", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwiseodd%2Frustlox'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fe2ca9c49296168295b68d03dbabb8ffec6d1a2c [INFO] linting wiseodd/rustlox against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwiseodd%2Frustlox" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/wiseodd/rustlox [INFO] finished tweaking git repo https://github.com/wiseodd/rustlox [INFO] tweaked toml for git repo https://github.com/wiseodd/rustlox written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/wiseodd/rustlox 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/wiseodd/rustlox 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 rustversion v1.0.15 [INFO] [stderr] Downloaded rustyline v14.0.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8cb4b788ea90ec2ad23007f79c0da4c55838b8d04b9e83888bc13afcd75b12b2 [INFO] running `Command { std: "docker" "start" "-a" "8cb4b788ea90ec2ad23007f79c0da4c55838b8d04b9e83888bc13afcd75b12b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8cb4b788ea90ec2ad23007f79c0da4c55838b8d04b9e83888bc13afcd75b12b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8cb4b788ea90ec2ad23007f79c0da4c55838b8d04b9e83888bc13afcd75b12b2", kill_on_drop: false }` [INFO] [stdout] 8cb4b788ea90ec2ad23007f79c0da4c55838b8d04b9e83888bc13afcd75b12b2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 895054b03e14aa5ca483a6eaad205276783078feb53e2e97c06c88f00ffe2e03 [INFO] running `Command { std: "docker" "start" "-a" "895054b03e14aa5ca483a6eaad205276783078feb53e2e97c06c88f00ffe2e03", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.81 [INFO] [stderr] Checking bitflags v2.5.0 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Checking linux-raw-sys v0.4.13 [INFO] [stderr] Compiling rustversion v1.0.15 [INFO] [stderr] Compiling anyhow v1.0.82 [INFO] [stderr] Checking endian-type v0.1.2 [INFO] [stderr] Checking memchr v2.7.2 [INFO] [stderr] Compiling nix v0.28.0 [INFO] [stderr] Checking nibble_vec v0.1.0 [INFO] [stderr] Checking radix_trie v0.2.1 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling syn v2.0.60 [INFO] [stderr] Checking fd-lock v4.0.2 [INFO] [stderr] Checking rustyline v14.0.0 [INFO] [stderr] Compiling thiserror-impl v1.0.60 [INFO] [stderr] Compiling strum_macros v0.26.2 [INFO] [stderr] Checking thiserror v1.0.60 [INFO] [stderr] Checking rustlox v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/class.rs:28:20 [INFO] [stdout] | [INFO] [stdout] 28 | return self.methods.get(name).map(|x| x.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `self.methods.get(name).cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are needlessly cloning iterator elements [INFO] [stdout] --> src/class.rs:33:55 [INFO] [stdout] | [INFO] [stdout] 33 | _superclass.borrow().find_method(name).map(|x| x.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: remove the `map` call [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/class.rs:62:72 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn get(&self, name: Token, instance_ref: Rc>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/environment.rs:27:44 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn get(&self, var_name: &Token) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/environment.rs:43:66 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn assign(&mut self, var_name: &Token, value: Object) -> Result<(), LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/environment.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | let _ = env.borrow_mut().assign(var_name, value)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 51 - let _ = env.borrow_mut().assign(var_name, value)?; [INFO] [stdout] 51 + env.borrow_mut().assign(var_name, value)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/environment.rs:68:6 [INFO] [stdout] | [INFO] [stdout] 68 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/environment.rs:85:6 [INFO] [stdout] | [INFO] [stdout] 85 | ) -> Result<(), LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/interpreter.rs:60:47 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn execute(&mut self, stmt: &Stmt) -> Result<(), LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:64:52 [INFO] [stdout] | [INFO] [stdout] 64 | Err(LoxError::Return { value }) => return Err(LoxError::Return { 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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 64 - Err(LoxError::Return { value }) => return Err(LoxError::Return { value }), [INFO] [stdout] 64 + Err(LoxError::Return { value }) => Err(LoxError::Return { value }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:125:52 [INFO] [stdout] | [INFO] [stdout] 125 | Err(LoxError::Return { value }) => return Err(LoxError::Return { 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] 125 - Err(LoxError::Return { value }) => return Err(LoxError::Return { value }), [INFO] [stdout] 125 + Err(LoxError::Return { value }) => Err(LoxError::Return { value }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/interpreter.rs:132:25 [INFO] [stdout] | [INFO] [stdout] 131 | let res = self.evaluate(&expr)?; [INFO] [stdout] | -------------------------------- unnecessary `let` binding [INFO] [stdout] 132 | res [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] 131 ~ [INFO] [stdout] 132 ~ self.evaluate(&expr)? [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/interpreter.rs:131:49 [INFO] [stdout] | [INFO] [stdout] 131 | let res = self.evaluate(&expr)?; [INFO] [stdout] | ^^^^^ help: change this to: `expr` [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: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/interpreter.rs:221:10 [INFO] [stdout] | [INFO] [stdout] 221 | ) -> Result<(), LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/interpreter.rs:246:44 [INFO] [stdout] | [INFO] [stdout] 246 | fn evaluate(&mut self, expr: &Expr) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:390:17 [INFO] [stdout] | [INFO] [stdout] 390 | return self.look_up_variable(keyword, 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] 390 - return self.look_up_variable(keyword, expr); [INFO] [stdout] 390 + self.look_up_variable(keyword, expr) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/interpreter.rs:250:59 [INFO] [stdout] | [INFO] [stdout] 250 | Literal::Number(val) => Ok(Object::Number(val.clone())), [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*val` [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 `bool` which implements the `Copy` trait [INFO] [stdout] --> src/interpreter.rs:251:61 [INFO] [stdout] | [INFO] [stdout] 251 | Literal::Boolean(val) => Ok(Object::Boolean(val.clone())), [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*val` [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: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/class.rs:28:20 [INFO] [stdout] | [INFO] [stdout] 28 | return self.methods.get(name).map(|x| x.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `self.methods.get(name).cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are needlessly cloning iterator elements [INFO] [stdout] --> src/class.rs:33:55 [INFO] [stdout] | [INFO] [stdout] 33 | _superclass.borrow().find_method(name).map(|x| x.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: remove the `map` call [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/class.rs:62:72 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn get(&self, name: Token, instance_ref: Rc>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` 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/interpreter.rs:369:56 [INFO] [stdout] | [INFO] [stdout] 369 | let distance: usize = *self.locals.get(&expr).unwrap(); [INFO] [stdout] | ^^^^^ help: change this to: `expr` [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: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/environment.rs:27:44 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn get(&self, var_name: &Token) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/environment.rs:43:66 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn assign(&mut self, var_name: &Token, value: Object) -> Result<(), LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/interpreter.rs:406:69 [INFO] [stdout] | [INFO] [stdout] 406 | Object::Number(value) => Ok(Object::Number(-value.clone())), [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `value` [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: this let-binding has unit value [INFO] [stdout] --> src/environment.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | let _ = env.borrow_mut().assign(var_name, value)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 51 - let _ = env.borrow_mut().assign(var_name, value)?; [INFO] [stdout] 51 + env.borrow_mut().assign(var_name, value)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/environment.rs:68:6 [INFO] [stdout] | [INFO] [stdout] 68 | ) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/environment.rs:85:6 [INFO] [stdout] | [INFO] [stdout] 85 | ) -> Result<(), LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/interpreter.rs:517:62 [INFO] [stdout] | [INFO] [stdout] 517 | fn look_up_variable(&self, name: &Token, expr: &Expr) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/interpreter.rs:560:32 [INFO] [stdout] | [INFO] [stdout] 560 | Object::String(val) => format!("{val}"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `val.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/lox.rs:87:26 [INFO] [stdout] | [INFO] [stdout] 87 | .map(|x| match x { [INFO] [stdout] | __________________________^ [INFO] [stdout] 88 | | Some(stmt) => Some(Box::new(stmt.clone())), [INFO] [stdout] 89 | | None => None, [INFO] [stdout] 90 | | }) [INFO] [stdout] | |_________________^ help: try: `x.as_ref().map(|stmt| Box::new(stmt.clone()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:72:40 [INFO] [stdout] | [INFO] [stdout] 72 | fn class_declaration(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/parser.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | let superclass: Option; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `superclass` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 75 ~ [INFO] [stdout] 76 ~ let superclass: Option = if self.is_match_advance(&[TokenType::Less]) { [INFO] [stdout] 77 | let _ = self.consume(TokenType::Identifier, "Expect superclass name."); [INFO] [stdout] 78 ~ Some(Expr::Variable { [INFO] [stdout] 79 | name: self.previous().clone(), [INFO] [stdout] 80 ~ }) [INFO] [stdout] 81 | } else { [INFO] [stdout] 82 ~ None [INFO] [stdout] 83 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/interpreter.rs:60:47 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn execute(&mut self, stmt: &Stmt) -> Result<(), LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:64:52 [INFO] [stdout] | [INFO] [stdout] 64 | Err(LoxError::Return { value }) => return Err(LoxError::Return { 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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 64 - Err(LoxError::Return { value }) => return Err(LoxError::Return { value }), [INFO] [stdout] 64 + Err(LoxError::Return { value }) => Err(LoxError::Return { value }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:125:52 [INFO] [stdout] | [INFO] [stdout] 125 | Err(LoxError::Return { value }) => return Err(LoxError::Return { 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] 125 - Err(LoxError::Return { value }) => return Err(LoxError::Return { value }), [INFO] [stdout] 125 + Err(LoxError::Return { value }) => Err(LoxError::Return { value }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:102:45 [INFO] [stdout] | [INFO] [stdout] 102 | fn function(&mut self, kind: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/parser.rs:134:30 [INFO] [stdout] | [INFO] [stdout] 134 | .map(|x| match x { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 135 | | Some(val) => Some(Box::new(val.clone())), [INFO] [stdout] 136 | | None => None, [INFO] [stdout] 137 | | }) [INFO] [stdout] | |_____________________^ help: try: `x.as_ref().map(|val| Box::new(val.clone()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:147:38 [INFO] [stdout] | [INFO] [stdout] 147 | fn var_declaration(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:165:32 [INFO] [stdout] | [INFO] [stdout] 165 | fn statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/parser.rs:192:38 [INFO] [stdout] | [INFO] [stdout] 192 | ... .map(|x| match x { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 193 | | ... Some(stmt) => Some(Box::new(stmt.clone())), [INFO] [stdout] 194 | | ... None => None, [INFO] [stdout] 195 | | ... }) [INFO] [stdout] | |_______________________^ help: try: `x.as_ref().map(|stmt| Box::new(stmt.clone()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:207:43 [INFO] [stdout] | [INFO] [stdout] 207 | fn expression_statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:216:36 [INFO] [stdout] | [INFO] [stdout] 216 | fn for_statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:245:12 [INFO] [stdout] | [INFO] [stdout] 245 | if !increment.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `increment.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 268 | if !initializer.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `initializer.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `increment` after checking its variant with `is_none` [INFO] [stdout] --> src/parser.rs:250:37 [INFO] [stdout] | [INFO] [stdout] 245 | if !increment.is_none() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 250 | expression: increment.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `initializer` after checking its variant with `is_none` [INFO] [stdout] --> src/parser.rs:271:35 [INFO] [stdout] | [INFO] [stdout] 268 | if !initializer.is_none() { [INFO] [stdout] | --------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 271 | Some(Box::new(initializer.unwrap())), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/parser.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | let increment: Option; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `increment` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 236 ~ [INFO] [stdout] 237 ~ let increment: Option = if !self.check(&TokenType::RightParen) { [INFO] [stdout] 238 ~ Some(self.expression()?) [INFO] [stdout] 239 | } else { [INFO] [stdout] 240 ~ None [INFO] [stdout] 241 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:282:35 [INFO] [stdout] | [INFO] [stdout] 282 | fn if_statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/interpreter.rs:132:25 [INFO] [stdout] | [INFO] [stdout] 131 | let res = self.evaluate(&expr)?; [INFO] [stdout] | -------------------------------- unnecessary `let` binding [INFO] [stdout] 132 | res [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] 131 ~ [INFO] [stdout] 132 ~ self.evaluate(&expr)? [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/interpreter.rs:131:49 [INFO] [stdout] | [INFO] [stdout] 131 | let res = self.evaluate(&expr)?; [INFO] [stdout] | ^^^^^ help: change this to: `expr` [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: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:301:38 [INFO] [stdout] | [INFO] [stdout] 301 | fn print_statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:308:39 [INFO] [stdout] | [INFO] [stdout] 308 | fn return_statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/parser.rs:311:9 [INFO] [stdout] | [INFO] [stdout] 311 | let value: Option; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `value` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 311 ~ [INFO] [stdout] 312 ~ let value: Option = if !self.check(&TokenType::Semicolon) { [INFO] [stdout] 313 ~ Some(self.expression()?) [INFO] [stdout] 314 | } else { [INFO] [stdout] 315 ~ None [INFO] [stdout] 316 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:324:38 [INFO] [stdout] | [INFO] [stdout] 324 | fn while_statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:334:28 [INFO] [stdout] | [INFO] [stdout] 334 | fn block(&mut self) -> Result>, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/interpreter.rs:221:10 [INFO] [stdout] | [INFO] [stdout] 221 | ) -> Result<(), LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:346:33 [INFO] [stdout] | [INFO] [stdout] 346 | fn expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:351:33 [INFO] [stdout] | [INFO] [stdout] 351 | fn assignment(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:375:25 [INFO] [stdout] | [INFO] [stdout] 375 | fn or(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:393:26 [INFO] [stdout] | [INFO] [stdout] 393 | fn and(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/interpreter.rs:246:44 [INFO] [stdout] | [INFO] [stdout] 246 | fn evaluate(&mut self, expr: &Expr) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:410:31 [INFO] [stdout] | [INFO] [stdout] 410 | fn equality(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:428:33 [INFO] [stdout] | [INFO] [stdout] 428 | fn comparison(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:451:27 [INFO] [stdout] | [INFO] [stdout] 451 | fn term(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/interpreter.rs:390:17 [INFO] [stdout] | [INFO] [stdout] 390 | return self.look_up_variable(keyword, 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] 390 - return self.look_up_variable(keyword, expr); [INFO] [stdout] 390 + self.look_up_variable(keyword, expr) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:469:29 [INFO] [stdout] | [INFO] [stdout] 469 | fn factor(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:487:28 [INFO] [stdout] | [INFO] [stdout] 487 | fn unary(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/interpreter.rs:250:59 [INFO] [stdout] | [INFO] [stdout] 250 | Literal::Number(val) => Ok(Object::Number(val.clone())), [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*val` [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 `bool` which implements the `Copy` trait [INFO] [stdout] --> src/interpreter.rs:251:61 [INFO] [stdout] | [INFO] [stdout] 251 | Literal::Boolean(val) => Ok(Object::Boolean(val.clone())), [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*val` [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: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:502:27 [INFO] [stdout] | [INFO] [stdout] 502 | fn call(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:524:48 [INFO] [stdout] | [INFO] [stdout] 524 | fn finish_call(&mut self, callee: Expr) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:553:30 [INFO] [stdout] | [INFO] [stdout] 553 | fn primary(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:650:68 [INFO] [stdout] | [INFO] [stdout] 650 | fn consume(&mut self, token_type: TokenType, message: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/interpreter.rs:369:56 [INFO] [stdout] | [INFO] [stdout] 369 | let distance: usize = *self.locals.get(&expr).unwrap(); [INFO] [stdout] | ^^^^^ help: change this to: `expr` [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 `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/resolver.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | for stmt in statements.into_iter().flatten() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/resolver.rs:96:29 [INFO] [stdout] | [INFO] [stdout] 96 | ... let declaration: FunctionType; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `declaration` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 96 ~ [INFO] [stdout] 97 ~ let declaration: FunctionType = if name.lexeme.eq("init") { [INFO] [stdout] 98 ~ FunctionType::Initializer [INFO] [stdout] 99 | } else { [INFO] [stdout] 100 ~ FunctionType::Method [INFO] [stdout] 101 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/interpreter.rs:406:69 [INFO] [stdout] | [INFO] [stdout] 406 | Object::Number(value) => Ok(Object::Number(-value.clone())), [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `value` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/resolver.rs:120:39 [INFO] [stdout] | [INFO] [stdout] 120 | self.resolve_expr(&init); [INFO] [stdout] | ^^^^^ help: change this to: `init` [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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/resolver.rs:144:17 [INFO] [stdout] | [INFO] [stdout] 144 | / match self.current_function { [INFO] [stdout] 145 | | FunctionType::None => { [INFO] [stdout] 146 | | Lox::parse_error(keyword, "Can't return from top-level code.") [INFO] [stdout] ... | [INFO] [stdout] 149 | | }; [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] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 144 ~ if let FunctionType::None = self.current_function { [INFO] [stdout] 145 + Lox::parse_error(keyword, "Can't return from top-level code.") [INFO] [stdout] 146 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/resolver.rs:213:36 [INFO] [stdout] | [INFO] [stdout] 213 | self.resolve_local(&expr, keyword.clone()) [INFO] [stdout] | ^^^^^ help: change this to: `expr` [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: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/interpreter.rs:517:62 [INFO] [stdout] | [INFO] [stdout] 517 | fn look_up_variable(&self, name: &Token, expr: &Expr) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/interpreter.rs:560:32 [INFO] [stdout] | [INFO] [stdout] 560 | Object::String(val) => format!("{val}"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `val.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/lox.rs:87:26 [INFO] [stdout] | [INFO] [stdout] 87 | .map(|x| match x { [INFO] [stdout] | __________________________^ [INFO] [stdout] 88 | | Some(stmt) => Some(Box::new(stmt.clone())), [INFO] [stdout] 89 | | None => None, [INFO] [stdout] 90 | | }) [INFO] [stdout] | |_________________^ help: try: `x.as_ref().map(|stmt| Box::new(stmt.clone()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:72:40 [INFO] [stdout] | [INFO] [stdout] 72 | fn class_declaration(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/parser.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | let superclass: Option; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `superclass` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 75 ~ [INFO] [stdout] 76 ~ let superclass: Option = if self.is_match_advance(&[TokenType::Less]) { [INFO] [stdout] 77 | let _ = self.consume(TokenType::Identifier, "Expect superclass name."); [INFO] [stdout] 78 ~ Some(Expr::Variable { [INFO] [stdout] 79 | name: self.previous().clone(), [INFO] [stdout] 80 ~ }) [INFO] [stdout] 81 | } else { [INFO] [stdout] 82 ~ None [INFO] [stdout] 83 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:102:45 [INFO] [stdout] | [INFO] [stdout] 102 | fn function(&mut self, kind: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/parser.rs:134:30 [INFO] [stdout] | [INFO] [stdout] 134 | .map(|x| match x { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 135 | | Some(val) => Some(Box::new(val.clone())), [INFO] [stdout] 136 | | None => None, [INFO] [stdout] 137 | | }) [INFO] [stdout] | |_____________________^ help: try: `x.as_ref().map(|val| Box::new(val.clone()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:147:38 [INFO] [stdout] | [INFO] [stdout] 147 | fn var_declaration(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:165:32 [INFO] [stdout] | [INFO] [stdout] 165 | fn statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/parser.rs:192:38 [INFO] [stdout] | [INFO] [stdout] 192 | ... .map(|x| match x { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 193 | | ... Some(stmt) => Some(Box::new(stmt.clone())), [INFO] [stdout] 194 | | ... None => None, [INFO] [stdout] 195 | | ... }) [INFO] [stdout] | |_______________________^ help: try: `x.as_ref().map(|stmt| Box::new(stmt.clone()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:207:43 [INFO] [stdout] | [INFO] [stdout] 207 | fn expression_statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:216:36 [INFO] [stdout] | [INFO] [stdout] 216 | fn for_statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:245:12 [INFO] [stdout] | [INFO] [stdout] 245 | if !increment.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `increment.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 268 | if !initializer.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `initializer.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `increment` after checking its variant with `is_none` [INFO] [stdout] --> src/parser.rs:250:37 [INFO] [stdout] | [INFO] [stdout] 245 | if !increment.is_none() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 250 | expression: increment.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `initializer` after checking its variant with `is_none` [INFO] [stdout] --> src/parser.rs:271:35 [INFO] [stdout] | [INFO] [stdout] 268 | if !initializer.is_none() { [INFO] [stdout] | --------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 271 | Some(Box::new(initializer.unwrap())), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/parser.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | let increment: Option; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `increment` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 236 ~ [INFO] [stdout] 237 ~ let increment: Option = if !self.check(&TokenType::RightParen) { [INFO] [stdout] 238 ~ Some(self.expression()?) [INFO] [stdout] 239 | } else { [INFO] [stdout] 240 ~ None [INFO] [stdout] 241 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:282:35 [INFO] [stdout] | [INFO] [stdout] 282 | fn if_statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:301:38 [INFO] [stdout] | [INFO] [stdout] 301 | fn print_statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:308:39 [INFO] [stdout] | [INFO] [stdout] 308 | fn return_statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/parser.rs:311:9 [INFO] [stdout] | [INFO] [stdout] 311 | let value: Option; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `value` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 311 ~ [INFO] [stdout] 312 ~ let value: Option = if !self.check(&TokenType::Semicolon) { [INFO] [stdout] 313 ~ Some(self.expression()?) [INFO] [stdout] 314 | } else { [INFO] [stdout] 315 ~ None [INFO] [stdout] 316 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:324:38 [INFO] [stdout] | [INFO] [stdout] 324 | fn while_statement(&mut self) -> Result, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:334:28 [INFO] [stdout] | [INFO] [stdout] 334 | fn block(&mut self) -> Result>, LoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:346:33 [INFO] [stdout] | [INFO] [stdout] 346 | fn expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:351:33 [INFO] [stdout] | [INFO] [stdout] 351 | fn assignment(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:375:25 [INFO] [stdout] | [INFO] [stdout] 375 | fn or(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:393:26 [INFO] [stdout] | [INFO] [stdout] 393 | fn and(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:410:31 [INFO] [stdout] | [INFO] [stdout] 410 | fn equality(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:428:33 [INFO] [stdout] | [INFO] [stdout] 428 | fn comparison(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:451:27 [INFO] [stdout] | [INFO] [stdout] 451 | fn term(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:469:29 [INFO] [stdout] | [INFO] [stdout] 469 | fn factor(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:487:28 [INFO] [stdout] | [INFO] [stdout] 487 | fn unary(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:502:27 [INFO] [stdout] | [INFO] [stdout] 502 | fn call(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:524:48 [INFO] [stdout] | [INFO] [stdout] 524 | fn finish_call(&mut self, callee: Expr) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:553:30 [INFO] [stdout] | [INFO] [stdout] 553 | fn primary(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/parser.rs:650:68 [INFO] [stdout] | [INFO] [stdout] 650 | fn consume(&mut self, token_type: TokenType, message: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/error.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Return { [INFO] [stdout] 11 | | value: Object, [INFO] [stdout] 12 | | }, [INFO] [stdout] | |_____- the largest variant contains at least 128 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `error::LoxError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/resolver.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | for stmt in statements.into_iter().flatten() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/resolver.rs:96:29 [INFO] [stdout] | [INFO] [stdout] 96 | ... let declaration: FunctionType; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `declaration` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 96 ~ [INFO] [stdout] 97 ~ let declaration: FunctionType = if name.lexeme.eq("init") { [INFO] [stdout] 98 ~ FunctionType::Initializer [INFO] [stdout] 99 | } else { [INFO] [stdout] 100 ~ FunctionType::Method [INFO] [stdout] 101 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/resolver.rs:120:39 [INFO] [stdout] | [INFO] [stdout] 120 | self.resolve_expr(&init); [INFO] [stdout] | ^^^^^ help: change this to: `init` [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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/resolver.rs:144:17 [INFO] [stdout] | [INFO] [stdout] 144 | / match self.current_function { [INFO] [stdout] 145 | | FunctionType::None => { [INFO] [stdout] 146 | | Lox::parse_error(keyword, "Can't return from top-level code.") [INFO] [stdout] ... | [INFO] [stdout] 149 | | }; [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] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 144 ~ if let FunctionType::None = self.current_function { [INFO] [stdout] 145 + Lox::parse_error(keyword, "Can't return from top-level code.") [INFO] [stdout] 146 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/resolver.rs:213:36 [INFO] [stdout] | [INFO] [stdout] 213 | self.resolve_local(&expr, keyword.clone()) [INFO] [stdout] | ^^^^^ help: change this to: `expr` [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.68s [INFO] running `Command { std: "docker" "inspect" "895054b03e14aa5ca483a6eaad205276783078feb53e2e97c06c88f00ffe2e03", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "895054b03e14aa5ca483a6eaad205276783078feb53e2e97c06c88f00ffe2e03", kill_on_drop: false }` [INFO] [stdout] 895054b03e14aa5ca483a6eaad205276783078feb53e2e97c06c88f00ffe2e03