[INFO] updating cached repository Jengamon/SolomonLang [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Jengamon/SolomonLang [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Jengamon/SolomonLang" "work/ex/clippy-test-run/sources/stable/gh/Jengamon/SolomonLang"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Jengamon/SolomonLang'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Jengamon/SolomonLang" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Jengamon/SolomonLang"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Jengamon/SolomonLang'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 3e677cdbafaea08bca5238c2715dfe40e43da237 [INFO] sha for GitHub repo Jengamon/SolomonLang: 3e677cdbafaea08bca5238c2715dfe40e43da237 [INFO] validating manifest of Jengamon/SolomonLang on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of Jengamon/SolomonLang on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing Jengamon/SolomonLang [INFO] finished frobbing Jengamon/SolomonLang [INFO] frobbed toml for Jengamon/SolomonLang written to work/ex/clippy-test-run/sources/stable/gh/Jengamon/SolomonLang/Cargo.toml [INFO] started frobbing Jengamon/SolomonLang [INFO] finished frobbing Jengamon/SolomonLang [INFO] frobbed toml for Jengamon/SolomonLang written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Jengamon/SolomonLang/Cargo.toml [INFO] crate Jengamon/SolomonLang has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting Jengamon/SolomonLang against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Jengamon/SolomonLang:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dclippy::into_iter_on_array" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 063976a704f40b46418f4b1560a0f6e31ee99d2e2be9fccb92d3e501da4519fa [INFO] running `"docker" "start" "-a" "063976a704f40b46418f4b1560a0f6e31ee99d2e2be9fccb92d3e501da4519fa"` [INFO] [stderr] Checking solomon v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused imports: `Expr`, `Stat` [INFO] [stderr] --> src/parser/pretty_print.rs:1:14 [INFO] [stderr] | [INFO] [stderr] 1 | use parser::{Expr, Stat, ExprVisitor, StatVisitor, Literal}; [INFO] [stderr] | ^^^^ ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Expr`, `Literal` [INFO] [stderr] --> src/interp.rs:1:14 [INFO] [stderr] | [INFO] [stderr] 1 | use parser::{Expr, Stat, ExprMutVisitor, StatMutVisitor, [INFO] [stderr] | ^^^^ [INFO] [stderr] 2 | Assignment, Modification, Expression, Literal, ELiteral, NewObject, Unary, Binary, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `TokenType`, `Token` [INFO] [stderr] --> src/interp.rs:4:13 [INFO] [stderr] | [INFO] [stderr] 4 | use lexer::{Token, TokenType}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:69:60 [INFO] [stderr] | [INFO] [stderr] 69 | fn visit_assignment(&mut self, assignment: Assignment) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:74:66 [INFO] [stderr] | [INFO] [stderr] 74 | fn visit_modification(&mut self, modification: Modification) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:75:60 [INFO] [stderr] | [INFO] [stderr] 75 | fn visit_expression(&mut self, expression: Expression) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:79:57 [INFO] [stderr] | [INFO] [stderr] 79 | fn visit_newobject(&mut self, newobject: NewObject) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:80:52 [INFO] [stderr] | [INFO] [stderr] 80 | fn visit_literal(&mut self, literal: ELiteral) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:81:45 [INFO] [stderr] | [INFO] [stderr] 81 | fn visit_unary(&mut self, unary: Unary) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:82:48 [INFO] [stderr] | [INFO] [stderr] 82 | fn visit_binary(&mut self, binary: Binary) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:83:54 [INFO] [stderr] | [INFO] [stderr] 83 | fn visit_grouping(&mut self, grouping: Grouping) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:84:54 [INFO] [stderr] | [INFO] [stderr] 84 | fn visit_function(&mut self, function: Function) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:85:45 [INFO] [stderr] | [INFO] [stderr] 85 | fn visit_block(&mut self, block: Block) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:86:66 [INFO] [stderr] | [INFO] [stderr] 86 | fn visit_functioncall(&mut self, functioncall: FunctionCall) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/var_store.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Expr`, `Stat` [INFO] [stderr] --> src/parser/pretty_print.rs:1:14 [INFO] [stderr] | [INFO] [stderr] 1 | use parser::{Expr, Stat, ExprVisitor, StatVisitor, Literal}; [INFO] [stderr] | ^^^^ ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Expr`, `Literal` [INFO] [stderr] --> src/interp.rs:1:14 [INFO] [stderr] | [INFO] [stderr] 1 | use parser::{Expr, Stat, ExprMutVisitor, StatMutVisitor, [INFO] [stderr] | ^^^^ [INFO] [stderr] 2 | Assignment, Modification, Expression, Literal, ELiteral, NewObject, Unary, Binary, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `TokenType`, `Token` [INFO] [stderr] --> src/interp.rs:4:13 [INFO] [stderr] | [INFO] [stderr] 4 | use lexer::{Token, TokenType}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:69:60 [INFO] [stderr] | [INFO] [stderr] 69 | fn visit_assignment(&mut self, assignment: Assignment) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:74:66 [INFO] [stderr] | [INFO] [stderr] 74 | fn visit_modification(&mut self, modification: Modification) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:75:60 [INFO] [stderr] | [INFO] [stderr] 75 | fn visit_expression(&mut self, expression: Expression) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:79:57 [INFO] [stderr] | [INFO] [stderr] 79 | fn visit_newobject(&mut self, newobject: NewObject) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:80:52 [INFO] [stderr] | [INFO] [stderr] 80 | fn visit_literal(&mut self, literal: ELiteral) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:81:45 [INFO] [stderr] | [INFO] [stderr] 81 | fn visit_unary(&mut self, unary: Unary) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:82:48 [INFO] [stderr] | [INFO] [stderr] 82 | fn visit_binary(&mut self, binary: Binary) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:83:54 [INFO] [stderr] | [INFO] [stderr] 83 | fn visit_grouping(&mut self, grouping: Grouping) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:84:54 [INFO] [stderr] | [INFO] [stderr] 84 | fn visit_function(&mut self, function: Function) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:85:45 [INFO] [stderr] | [INFO] [stderr] 85 | fn visit_block(&mut self, block: Block) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/interp.rs:86:66 [INFO] [stderr] | [INFO] [stderr] 86 | fn visit_functioncall(&mut self, functioncall: FunctionCall) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/var_store.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: private type `parser::Atom` in public interface (error E0446) [INFO] [stderr] --> src/parser/mod.rs:46:10 [INFO] [stderr] | [INFO] [stderr] 46 | Atom(Atom), [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(private_in_public)] on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: private type `parser::Atom` in public interface (error E0446) [INFO] [stderr] --> src/parser/mod.rs:55:10 [INFO] [stderr] | [INFO] [stderr] 55 | Atom(Atom), // Type only has the value in it of $ [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r` [INFO] [stderr] --> src/lexer/mod.rs:140:22 [INFO] [stderr] | [INFO] [stderr] 140 | Some(r@'_') | Some(r@'@') | Some(r@'!') | Some(r@'?') => { s.push(self.next_char().unwrap()) }, [INFO] [stderr] | ^ help: consider using `_r` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `long` [INFO] [stderr] --> src/parser/mod.rs:151:25 [INFO] [stderr] | [INFO] [stderr] 151 | (Ok(long), Ok(short)) => Ok(expr::Literal::new(Literal::Integer(short), t)), [INFO] [stderr] | ^^^^ help: consider using `_long` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/parser/mod.rs:160:65 [INFO] [stderr] | [INFO] [stderr] 160 | TokenType::LBrace => Some(Box::new(|p: &mut Parser, t: Token| { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/parser/mod.rs:179:65 [INFO] [stderr] | [INFO] [stderr] 179 | TokenType::LParen => Some(Box::new(|p: &mut Parser, t:Token| { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/parser/mod.rs:184:62 [INFO] [stderr] | [INFO] [stderr] 184 | TokenType::Fun => Some(Box::new(|p: &mut Parser, t: Token| { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/parser/mod.rs:208:67 [INFO] [stderr] | [INFO] [stderr] 208 | TokenType::LBracket => Some(Box::new(|p: &mut Parser, t: Token| { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r` [INFO] [stderr] --> src/parser/mod.rs:241:69 [INFO] [stderr] | [INFO] [stderr] 241 | TokenType::ThinArrow => Some((Box::new(|p: &mut Parser, r: Precedence, t: Token, l: Expr| { [INFO] [stderr] | ^ help: consider using `_r` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/parser/mod.rs:241:84 [INFO] [stderr] | [INFO] [stderr] 241 | TokenType::ThinArrow => Some((Box::new(|p: &mut Parser, r: Precedence, t: Token, l: Expr| { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tt` [INFO] [stderr] --> src/parser/mod.rs:301:25 [INFO] [stderr] | [INFO] [stderr] 301 | tt => Ok(stat::Expression::new(left)) [INFO] [stderr] | ^^ help: consider using `_tt` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mod_name` [INFO] [stderr] --> src/interp.rs:60:45 [INFO] [stderr] | [INFO] [stderr] 60 | pub fn submit>(&mut self, mod_name: S, p: Vec) -> Option { [INFO] [stderr] | ^^^^^^^^ help: consider using `_mod_name` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `modification` [INFO] [stderr] --> src/interp.rs:74:38 [INFO] [stderr] | [INFO] [stderr] 74 | fn visit_modification(&mut self, modification: Modification) -> () {} [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_modification` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expression` [INFO] [stderr] --> src/interp.rs:75:36 [INFO] [stderr] | [INFO] [stderr] 75 | fn visit_expression(&mut self, expression: Expression) -> () {} [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_expression` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `newobject` [INFO] [stderr] --> src/interp.rs:79:35 [INFO] [stderr] | [INFO] [stderr] 79 | fn visit_newobject(&mut self, newobject: NewObject) -> () {} [INFO] [stderr] | ^^^^^^^^^ help: consider using `_newobject` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `literal` [INFO] [stderr] --> src/interp.rs:80:33 [INFO] [stderr] | [INFO] [stderr] 80 | fn visit_literal(&mut self, literal: ELiteral) -> () {} [INFO] [stderr] | ^^^^^^^ help: consider using `_literal` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `unary` [INFO] [stderr] --> src/interp.rs:81:31 [INFO] [stderr] | [INFO] [stderr] 81 | fn visit_unary(&mut self, unary: Unary) -> () {} [INFO] [stderr] | ^^^^^ help: consider using `_unary` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `binary` [INFO] [stderr] --> src/interp.rs:82:32 [INFO] [stderr] | [INFO] [stderr] 82 | fn visit_binary(&mut self, binary: Binary) -> () {} [INFO] [stderr] | ^^^^^^ help: consider using `_binary` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `grouping` [INFO] [stderr] --> src/interp.rs:83:34 [INFO] [stderr] | [INFO] [stderr] 83 | fn visit_grouping(&mut self, grouping: Grouping) -> () {} [INFO] [stderr] | ^^^^^^^^ help: consider using `_grouping` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `function` [INFO] [stderr] --> src/interp.rs:84:34 [INFO] [stderr] | [INFO] [stderr] 84 | fn visit_function(&mut self, function: Function) -> () {} [INFO] [stderr] | ^^^^^^^^ help: consider using `_function` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `block` [INFO] [stderr] --> src/interp.rs:85:31 [INFO] [stderr] | [INFO] [stderr] 85 | fn visit_block(&mut self, block: Block) -> () {} [INFO] [stderr] | ^^^^^ help: consider using `_block` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `functioncall` [INFO] [stderr] --> src/interp.rs:86:38 [INFO] [stderr] | [INFO] [stderr] 86 | fn visit_functioncall(&mut self, functioncall: FunctionCall) -> () {} [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_functioncall` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | let mut lexer = lexer::Lexer::new(text.clone()); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | let mut parser = parser::Parser::new(lexer.clone()); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: private type `parser::Atom` in public interface (error E0446) [INFO] [stderr] --> src/parser/mod.rs:46:10 [INFO] [stderr] | [INFO] [stderr] 46 | Atom(Atom), [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(private_in_public)] on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: private type `parser::Atom` in public interface (error E0446) [INFO] [stderr] --> src/parser/mod.rs:55:10 [INFO] [stderr] | [INFO] [stderr] 55 | Atom(Atom), // Type only has the value in it of $ [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r` [INFO] [stderr] --> src/lexer/mod.rs:140:22 [INFO] [stderr] | [INFO] [stderr] 140 | Some(r@'_') | Some(r@'@') | Some(r@'!') | Some(r@'?') => { s.push(self.next_char().unwrap()) }, [INFO] [stderr] | ^ help: consider using `_r` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `long` [INFO] [stderr] --> src/parser/mod.rs:151:25 [INFO] [stderr] | [INFO] [stderr] 151 | (Ok(long), Ok(short)) => Ok(expr::Literal::new(Literal::Integer(short), t)), [INFO] [stderr] | ^^^^ help: consider using `_long` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/parser/mod.rs:160:65 [INFO] [stderr] | [INFO] [stderr] 160 | TokenType::LBrace => Some(Box::new(|p: &mut Parser, t: Token| { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/parser/mod.rs:179:65 [INFO] [stderr] | [INFO] [stderr] 179 | TokenType::LParen => Some(Box::new(|p: &mut Parser, t:Token| { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/parser/mod.rs:184:62 [INFO] [stderr] | [INFO] [stderr] 184 | TokenType::Fun => Some(Box::new(|p: &mut Parser, t: Token| { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/parser/mod.rs:208:67 [INFO] [stderr] | [INFO] [stderr] 208 | TokenType::LBracket => Some(Box::new(|p: &mut Parser, t: Token| { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r` [INFO] [stderr] --> src/parser/mod.rs:241:69 [INFO] [stderr] | [INFO] [stderr] 241 | TokenType::ThinArrow => Some((Box::new(|p: &mut Parser, r: Precedence, t: Token, l: Expr| { [INFO] [stderr] | ^ help: consider using `_r` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/parser/mod.rs:241:84 [INFO] [stderr] | [INFO] [stderr] 241 | TokenType::ThinArrow => Some((Box::new(|p: &mut Parser, r: Precedence, t: Token, l: Expr| { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tt` [INFO] [stderr] --> src/parser/mod.rs:301:25 [INFO] [stderr] | [INFO] [stderr] 301 | tt => Ok(stat::Expression::new(left)) [INFO] [stderr] | ^^ help: consider using `_tt` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mod_name` [INFO] [stderr] --> src/interp.rs:60:45 [INFO] [stderr] | [INFO] [stderr] 60 | pub fn submit>(&mut self, mod_name: S, p: Vec) -> Option { [INFO] [stderr] | ^^^^^^^^ help: consider using `_mod_name` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `modification` [INFO] [stderr] --> src/interp.rs:74:38 [INFO] [stderr] | [INFO] [stderr] 74 | fn visit_modification(&mut self, modification: Modification) -> () {} [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_modification` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expression` [INFO] [stderr] --> src/interp.rs:75:36 [INFO] [stderr] | [INFO] [stderr] 75 | fn visit_expression(&mut self, expression: Expression) -> () {} [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_expression` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `newobject` [INFO] [stderr] --> src/interp.rs:79:35 [INFO] [stderr] | [INFO] [stderr] 79 | fn visit_newobject(&mut self, newobject: NewObject) -> () {} [INFO] [stderr] | ^^^^^^^^^ help: consider using `_newobject` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `literal` [INFO] [stderr] --> src/interp.rs:80:33 [INFO] [stderr] | [INFO] [stderr] 80 | fn visit_literal(&mut self, literal: ELiteral) -> () {} [INFO] [stderr] | ^^^^^^^ help: consider using `_literal` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `unary` [INFO] [stderr] --> src/interp.rs:81:31 [INFO] [stderr] | [INFO] [stderr] 81 | fn visit_unary(&mut self, unary: Unary) -> () {} [INFO] [stderr] | ^^^^^ help: consider using `_unary` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `binary` [INFO] [stderr] --> src/interp.rs:82:32 [INFO] [stderr] | [INFO] [stderr] 82 | fn visit_binary(&mut self, binary: Binary) -> () {} [INFO] [stderr] | ^^^^^^ help: consider using `_binary` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `grouping` [INFO] [stderr] --> src/interp.rs:83:34 [INFO] [stderr] | [INFO] [stderr] 83 | fn visit_grouping(&mut self, grouping: Grouping) -> () {} [INFO] [stderr] | ^^^^^^^^ help: consider using `_grouping` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `function` [INFO] [stderr] --> src/interp.rs:84:34 [INFO] [stderr] | [INFO] [stderr] 84 | fn visit_function(&mut self, function: Function) -> () {} [INFO] [stderr] | ^^^^^^^^ help: consider using `_function` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `block` [INFO] [stderr] --> src/interp.rs:85:31 [INFO] [stderr] | [INFO] [stderr] 85 | fn visit_block(&mut self, block: Block) -> () {} [INFO] [stderr] | ^^^^^ help: consider using `_block` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `functioncall` [INFO] [stderr] --> src/interp.rs:86:38 [INFO] [stderr] | [INFO] [stderr] 86 | fn visit_functioncall(&mut self, functioncall: FunctionCall) -> () {} [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_functioncall` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | let mut lexer = lexer::Lexer::new(text.clone()); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | let mut parser = parser::Parser::new(lexer.clone()); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `String` [INFO] [stderr] --> src/lexer/token.rs:3:33 [INFO] [stderr] | [INFO] [stderr] 3 | Identifier, Integer, Float, String, Atom, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `FloatType` [INFO] [stderr] --> src/lexer/token.rs:14:45 [INFO] [stderr] | [INFO] [stderr] 14 | AnyType, VoidType, IntType, StringType, FloatType, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Bang` [INFO] [stderr] --> src/lexer/token.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | Bang, // ! [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BangEqual` [INFO] [stderr] --> src/lexer/token.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | BangEqual, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LessThan` [INFO] [stderr] --> src/lexer/token.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | LessThan, GreaterThan, LessEqual, GreaterEqual, // < > <= >= [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GreaterThan` [INFO] [stderr] --> src/lexer/token.rs:22:15 [INFO] [stderr] | [INFO] [stderr] 22 | LessThan, GreaterThan, LessEqual, GreaterEqual, // < > <= >= [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LessEqual` [INFO] [stderr] --> src/lexer/token.rs:22:28 [INFO] [stderr] | [INFO] [stderr] 22 | LessThan, GreaterThan, LessEqual, GreaterEqual, // < > <= >= [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GreaterEqual` [INFO] [stderr] --> src/lexer/token.rs:22:39 [INFO] [stderr] | [INFO] [stderr] 22 | LessThan, GreaterThan, LessEqual, GreaterEqual, // < > <= >= [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Unary` [INFO] [stderr] --> src/parser/expr.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | Unary(Unary), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_newobject` [INFO] [stderr] --> src/parser/expr.rs:39:3 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn is_newobject(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_newobject` [INFO] [stderr] --> src/parser/expr.rs:46:3 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn as_newobject(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_literal` [INFO] [stderr] --> src/parser/expr.rs:52:3 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn is_literal(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_literal` [INFO] [stderr] --> src/parser/expr.rs:59:3 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn as_literal(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_unary` [INFO] [stderr] --> src/parser/expr.rs:65:3 [INFO] [stderr] | [INFO] [stderr] 65 | pub fn is_unary(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_unary` [INFO] [stderr] --> src/parser/expr.rs:72:3 [INFO] [stderr] | [INFO] [stderr] 72 | pub fn as_unary(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_binary` [INFO] [stderr] --> src/parser/expr.rs:78:3 [INFO] [stderr] | [INFO] [stderr] 78 | pub fn is_binary(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_binary` [INFO] [stderr] --> src/parser/expr.rs:85:3 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn as_binary(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_grouping` [INFO] [stderr] --> src/parser/expr.rs:91:3 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn is_grouping(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_grouping` [INFO] [stderr] --> src/parser/expr.rs:98:3 [INFO] [stderr] | [INFO] [stderr] 98 | pub fn as_grouping(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_function` [INFO] [stderr] --> src/parser/expr.rs:104:3 [INFO] [stderr] | [INFO] [stderr] 104 | pub fn is_function(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_function` [INFO] [stderr] --> src/parser/expr.rs:111:3 [INFO] [stderr] | [INFO] [stderr] 111 | pub fn as_function(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_block` [INFO] [stderr] --> src/parser/expr.rs:117:3 [INFO] [stderr] | [INFO] [stderr] 117 | pub fn is_block(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_block` [INFO] [stderr] --> src/parser/expr.rs:124:3 [INFO] [stderr] | [INFO] [stderr] 124 | pub fn as_block(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_functioncall` [INFO] [stderr] --> src/parser/expr.rs:130:3 [INFO] [stderr] | [INFO] [stderr] 130 | pub fn is_functioncall(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_functioncall` [INFO] [stderr] --> src/parser/expr.rs:137:3 [INFO] [stderr] | [INFO] [stderr] 137 | pub fn as_functioncall(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:154:3 [INFO] [stderr] | [INFO] [stderr] 154 | pub fn new_naked(map: HashMap,) -> NewObject { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:161:3 [INFO] [stderr] | [INFO] [stderr] 161 | pub fn boxed_new_naked(map: HashMap,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:175:3 [INFO] [stderr] | [INFO] [stderr] 175 | pub fn boxed_new(map: HashMap,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:191:3 [INFO] [stderr] | [INFO] [stderr] 191 | pub fn new_naked(literal: PLiteral,token: Token,) -> Literal { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:200:3 [INFO] [stderr] | [INFO] [stderr] 200 | pub fn boxed_new_naked(literal: PLiteral,token: Token,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:218:3 [INFO] [stderr] | [INFO] [stderr] 218 | pub fn boxed_new(literal: PLiteral,token: Token,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:236:3 [INFO] [stderr] | [INFO] [stderr] 236 | pub fn new_naked(op: Token,value: Box,) -> Unary { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:245:3 [INFO] [stderr] | [INFO] [stderr] 245 | pub fn boxed_new_naked(op: Token,value: Box,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/parser/expr.rs:254:3 [INFO] [stderr] | [INFO] [stderr] 254 | pub fn new(op: Token,value: Box,) -> Expr { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:263:3 [INFO] [stderr] | [INFO] [stderr] 263 | pub fn boxed_new(op: Token,value: Box,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:282:3 [INFO] [stderr] | [INFO] [stderr] 282 | pub fn new_naked(op: Token,lhs: Box,rhs: Box,) -> Binary { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:293:3 [INFO] [stderr] | [INFO] [stderr] 293 | pub fn boxed_new_naked(op: Token,lhs: Box,rhs: Box,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:315:3 [INFO] [stderr] | [INFO] [stderr] 315 | pub fn boxed_new(op: Token,lhs: Box,rhs: Box,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:334:3 [INFO] [stderr] | [INFO] [stderr] 334 | pub fn new_naked(expr: Box,) -> Grouping { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:341:3 [INFO] [stderr] | [INFO] [stderr] 341 | pub fn boxed_new_naked(expr: Box,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:355:3 [INFO] [stderr] | [INFO] [stderr] 355 | pub fn boxed_new(expr: Box,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:373:3 [INFO] [stderr] | [INFO] [stderr] 373 | pub fn new_naked(ret_type: Type,args: HashMap,body: Box,is_method: bool,) -> Function { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:386:3 [INFO] [stderr] | [INFO] [stderr] 386 | pub fn boxed_new_naked(ret_type: Type,args: HashMap,body: Box,is_method: bool,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:412:3 [INFO] [stderr] | [INFO] [stderr] 412 | pub fn boxed_new(ret_type: Type,args: HashMap,body: Box,is_method: bool,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:433:3 [INFO] [stderr] | [INFO] [stderr] 433 | pub fn new_naked(body: Vec,) -> Block { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:440:3 [INFO] [stderr] | [INFO] [stderr] 440 | pub fn boxed_new_naked(body: Vec,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:454:3 [INFO] [stderr] | [INFO] [stderr] 454 | pub fn boxed_new(body: Vec,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:471:3 [INFO] [stderr] | [INFO] [stderr] 471 | pub fn new_naked(target: Box,args: Arguments,as_type: Option,) -> FunctionCall { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:482:3 [INFO] [stderr] | [INFO] [stderr] 482 | pub fn boxed_new_naked(target: Box,args: Arguments,as_type: Option,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:504:3 [INFO] [stderr] | [INFO] [stderr] 504 | pub fn boxed_new(target: Box,args: Arguments,as_type: Option,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_assignment` [INFO] [stderr] --> src/parser/stat.rs:33:3 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn is_assignment(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_assignment` [INFO] [stderr] --> src/parser/stat.rs:40:3 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn as_assignment(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_modification` [INFO] [stderr] --> src/parser/stat.rs:46:3 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn is_modification(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_modification` [INFO] [stderr] --> src/parser/stat.rs:53:3 [INFO] [stderr] | [INFO] [stderr] 53 | pub fn as_modification(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_expression` [INFO] [stderr] --> src/parser/stat.rs:59:3 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn is_expression(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_expression` [INFO] [stderr] --> src/parser/stat.rs:66:3 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn as_expression(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/stat.rs:85:3 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn new_naked(lhs: Expr,rhs: Expr,op: Token,) -> Assignment { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/stat.rs:96:3 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn boxed_new_naked(lhs: Expr,rhs: Expr,op: Token,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/stat.rs:118:3 [INFO] [stderr] | [INFO] [stderr] 118 | pub fn boxed_new(lhs: Expr,rhs: Expr,op: Token,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/stat.rs:139:3 [INFO] [stderr] | [INFO] [stderr] 139 | pub fn new_naked(lhs: Expr,rhs: Expr,op: Token,) -> Modification { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/stat.rs:150:3 [INFO] [stderr] | [INFO] [stderr] 150 | pub fn boxed_new_naked(lhs: Expr,rhs: Expr,op: Token,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/stat.rs:172:3 [INFO] [stderr] | [INFO] [stderr] 172 | pub fn boxed_new(lhs: Expr,rhs: Expr,op: Token,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/stat.rs:191:3 [INFO] [stderr] | [INFO] [stderr] 191 | pub fn new_naked(expr: Expr,) -> Expression { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/stat.rs:198:3 [INFO] [stderr] | [INFO] [stderr] 198 | pub fn boxed_new_naked(expr: Expr,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/stat.rs:212:3 [INFO] [stderr] | [INFO] [stderr] 212 | pub fn boxed_new(expr: Expr,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Float` [INFO] [stderr] --> src/parser/mod.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | Float(i64), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `String` [INFO] [stderr] --> src/parser/mod.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | String(String), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Atom` [INFO] [stderr] --> src/parser/mod.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | Atom(Atom), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Float` [INFO] [stderr] --> src/parser/mod.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | Float, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `String` [INFO] [stderr] --> src/parser/mod.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | String, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Atom` [INFO] [stderr] --> src/parser/mod.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | Atom(Atom), // Type only has the value in it of $ [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Any` [INFO] [stderr] --> src/parser/mod.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | Any, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dispose` [INFO] [stderr] --> src/parser/mod.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | pub fn dispose(&mut self, prec: F) where F: Fn(TokenType) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `strict_mode` [INFO] [stderr] --> src/interp.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | strict_mode: bool [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `opts` [INFO] [stderr] --> src/interp.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | opts: Options, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `SolomonFunc` [INFO] [stderr] --> src/interp.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub type SolomonFunc = Fn(&mut Interpreter, Vec) -> SolomonObject; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Null` [INFO] [stderr] --> src/interp.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | Null, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Integer` [INFO] [stderr] --> src/interp.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | Integer(i64), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Float` [INFO] [stderr] --> src/interp.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | Float(f64), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Atom` [INFO] [stderr] --> src/interp.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | Atom(usize), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `String` [INFO] [stderr] --> src/interp.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | String(String), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Object` [INFO] [stderr] --> src/interp.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | Object(SolomonObj), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Function` [INFO] [stderr] --> src/interp.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | Function(Rc>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `VarMessage` [INFO] [stderr] --> src/var_store.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | enum VarMessage { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `MAX_GENERATIONS` [INFO] [stderr] --> src/var_store.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | const MAX_GENERATIONS: usize = 100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `Generation` [INFO] [stderr] --> src/var_store.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub type Generation = usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `VariableRef` [INFO] [stderr] --> src/var_store.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | pub struct VariableRef(Sender, String, usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `VariableStore` [INFO] [stderr] --> src/var_store.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub struct VariableStore { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/var_store.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn new() -> VariableStore { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_variable` [INFO] [stderr] --> src/var_store.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn new_variable>(&mut self, name: S) -> VariableRef { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `reference` [INFO] [stderr] --> src/var_store.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn reference>(&mut self, name: S) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/lexer/token.rs:48:36 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn data(&self) -> String { self.data.clone().unwrap_or(String::new()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.data.clone().unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lexer/mod.rs:68:54 [INFO] [stderr] | [INFO] [stderr] 68 | Some('*') => match self.peek() { [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 69 | | Some('/') => {self.next_char(); level -= 1}, [INFO] [stderr] 70 | | _ => {} [INFO] [stderr] 71 | | }, [INFO] [stderr] | |_________________________________________^ help: try this: `if let Some('/') = self.peek() {self.next_char(); level -= 1}` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lexer/mod.rs:72:54 [INFO] [stderr] | [INFO] [stderr] 72 | Some('/') => match self.peek() { [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 73 | | Some('*') => {self.next_char(); level += 1}, [INFO] [stderr] 74 | | _ => {} [INFO] [stderr] 75 | | }, [INFO] [stderr] | |_________________________________________^ help: try this: `if let Some('*') = self.peek() {self.next_char(); level += 1}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / match self { [INFO] [stderr] 41 | | &Expr::NewObject(..) => true, [INFO] [stderr] 42 | | _ => false, [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 40 | match *self { [INFO] [stderr] 41 | Expr::NewObject(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | / match self { [INFO] [stderr] 48 | | &Expr::NewObject(ref t) => Some(t.clone()), [INFO] [stderr] 49 | | _ => None, [INFO] [stderr] 50 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 47 | match *self { [INFO] [stderr] 48 | Expr::NewObject(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / match self { [INFO] [stderr] 54 | | &Expr::Literal(..) => true, [INFO] [stderr] 55 | | _ => false, [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 53 | match *self { [INFO] [stderr] 54 | Expr::Literal(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / match self { [INFO] [stderr] 61 | | &Expr::Literal(ref t) => Some(t.clone()), [INFO] [stderr] 62 | | _ => None, [INFO] [stderr] 63 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 60 | match *self { [INFO] [stderr] 61 | Expr::Literal(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | / match self { [INFO] [stderr] 67 | | &Expr::Unary(..) => true, [INFO] [stderr] 68 | | _ => false, [INFO] [stderr] 69 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 66 | match *self { [INFO] [stderr] 67 | Expr::Unary(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | / match self { [INFO] [stderr] 74 | | &Expr::Unary(ref t) => Some(t.clone()), [INFO] [stderr] 75 | | _ => None, [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 73 | match *self { [INFO] [stderr] 74 | Expr::Unary(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | / match self { [INFO] [stderr] 80 | | &Expr::Binary(..) => true, [INFO] [stderr] 81 | | _ => false, [INFO] [stderr] 82 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 79 | match *self { [INFO] [stderr] 80 | Expr::Binary(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | / match self { [INFO] [stderr] 87 | | &Expr::Binary(ref t) => Some(t.clone()), [INFO] [stderr] 88 | | _ => None, [INFO] [stderr] 89 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 86 | match *self { [INFO] [stderr] 87 | Expr::Binary(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / match self { [INFO] [stderr] 93 | | &Expr::Grouping(..) => true, [INFO] [stderr] 94 | | _ => false, [INFO] [stderr] 95 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 92 | match *self { [INFO] [stderr] 93 | Expr::Grouping(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:99:5 [INFO] [stderr] | [INFO] [stderr] 99 | / match self { [INFO] [stderr] 100 | | &Expr::Grouping(ref t) => Some(t.clone()), [INFO] [stderr] 101 | | _ => None, [INFO] [stderr] 102 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 99 | match *self { [INFO] [stderr] 100 | Expr::Grouping(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | / match self { [INFO] [stderr] 106 | | &Expr::Function(..) => true, [INFO] [stderr] 107 | | _ => false, [INFO] [stderr] 108 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 105 | match *self { [INFO] [stderr] 106 | Expr::Function(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:112:5 [INFO] [stderr] | [INFO] [stderr] 112 | / match self { [INFO] [stderr] 113 | | &Expr::Function(ref t) => Some(t.clone()), [INFO] [stderr] 114 | | _ => None, [INFO] [stderr] 115 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 112 | match *self { [INFO] [stderr] 113 | Expr::Function(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | / match self { [INFO] [stderr] 119 | | &Expr::Block(..) => true, [INFO] [stderr] 120 | | _ => false, [INFO] [stderr] 121 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 118 | match *self { [INFO] [stderr] 119 | Expr::Block(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | / match self { [INFO] [stderr] 126 | | &Expr::Block(ref t) => Some(t.clone()), [INFO] [stderr] 127 | | _ => None, [INFO] [stderr] 128 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 125 | match *self { [INFO] [stderr] 126 | Expr::Block(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | / match self { [INFO] [stderr] 132 | | &Expr::FunctionCall(..) => true, [INFO] [stderr] 133 | | _ => false, [INFO] [stderr] 134 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 131 | match *self { [INFO] [stderr] 132 | Expr::FunctionCall(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:138:5 [INFO] [stderr] | [INFO] [stderr] 138 | / match self { [INFO] [stderr] 139 | | &Expr::FunctionCall(ref t) => Some(t.clone()), [INFO] [stderr] 140 | | _ => None, [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 138 | match *self { [INFO] [stderr] 139 | Expr::FunctionCall(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:168:3 [INFO] [stderr] | [INFO] [stderr] 168 | / pub fn new(map: HashMap,) -> Expr { [INFO] [stderr] 169 | | Expr::NewObject(NewObject{ [INFO] [stderr] 170 | | map, [INFO] [stderr] 171 | | [INFO] [stderr] 172 | | }) [INFO] [stderr] 173 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:209:3 [INFO] [stderr] | [INFO] [stderr] 209 | / pub fn new(literal: PLiteral,token: Token,) -> Expr { [INFO] [stderr] 210 | | Expr::Literal(Literal{ [INFO] [stderr] 211 | | literal, [INFO] [stderr] 212 | | [INFO] [stderr] ... | [INFO] [stderr] 215 | | }) [INFO] [stderr] 216 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:254:3 [INFO] [stderr] | [INFO] [stderr] 254 | / pub fn new(op: Token,value: Box,) -> Expr { [INFO] [stderr] 255 | | Expr::Unary(Unary{ [INFO] [stderr] 256 | | op, [INFO] [stderr] 257 | | [INFO] [stderr] ... | [INFO] [stderr] 260 | | }) [INFO] [stderr] 261 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:304:3 [INFO] [stderr] | [INFO] [stderr] 304 | / pub fn new(op: Token,lhs: Box,rhs: Box,) -> Expr { [INFO] [stderr] 305 | | Expr::Binary(Binary{ [INFO] [stderr] 306 | | op, [INFO] [stderr] 307 | | [INFO] [stderr] ... | [INFO] [stderr] 312 | | }) [INFO] [stderr] 313 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:348:3 [INFO] [stderr] | [INFO] [stderr] 348 | / pub fn new(expr: Box,) -> Expr { [INFO] [stderr] 349 | | Expr::Grouping(Grouping{ [INFO] [stderr] 350 | | expr, [INFO] [stderr] 351 | | [INFO] [stderr] 352 | | }) [INFO] [stderr] 353 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:399:3 [INFO] [stderr] | [INFO] [stderr] 399 | / pub fn new(ret_type: Type,args: HashMap,body: Box,is_method: bool,) -> Expr { [INFO] [stderr] 400 | | Expr::Function(Function{ [INFO] [stderr] 401 | | ret_type, [INFO] [stderr] 402 | | [INFO] [stderr] ... | [INFO] [stderr] 409 | | }) [INFO] [stderr] 410 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:447:3 [INFO] [stderr] | [INFO] [stderr] 447 | / pub fn new(body: Vec,) -> Expr { [INFO] [stderr] 448 | | Expr::Block(Block{ [INFO] [stderr] 449 | | body, [INFO] [stderr] 450 | | [INFO] [stderr] 451 | | }) [INFO] [stderr] 452 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:493:3 [INFO] [stderr] | [INFO] [stderr] 493 | / pub fn new(target: Box,args: Arguments,as_type: Option,) -> Expr { [INFO] [stderr] 494 | | Expr::FunctionCall(FunctionCall{ [INFO] [stderr] 495 | | target, [INFO] [stderr] 496 | | [INFO] [stderr] ... | [INFO] [stderr] 501 | | }) [INFO] [stderr] 502 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/parser/expr.rs:542:28 [INFO] [stderr] | [INFO] [stderr] 542 | fn visit_expr_box(&self, d: Box) -> N { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::boxed_local)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parser/expr.rs:543:5 [INFO] [stderr] | [INFO] [stderr] 543 | / match &*d { [INFO] [stderr] 544 | | &Expr::NewObject(ref d) => self.visit_newobject(d.clone()), [INFO] [stderr] 545 | | &Expr::Literal(ref d) => self.visit_literal(d.clone()), [INFO] [stderr] 546 | | &Expr::Unary(ref d) => self.visit_unary(d.clone()), [INFO] [stderr] ... | [INFO] [stderr] 552 | | [INFO] [stderr] 553 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 543 | match *d { [INFO] [stderr] 544 | Expr::NewObject(ref d) => self.visit_newobject(d.clone()), [INFO] [stderr] 545 | Expr::Literal(ref d) => self.visit_literal(d.clone()), [INFO] [stderr] 546 | Expr::Unary(ref d) => self.visit_unary(d.clone()), [INFO] [stderr] 547 | Expr::Binary(ref d) => self.visit_binary(d.clone()), [INFO] [stderr] 548 | Expr::Grouping(ref d) => self.visit_grouping(d.clone()), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/parser/expr.rs:582:32 [INFO] [stderr] | [INFO] [stderr] 582 | fn visit_expr_box(&mut self, d: Box) -> N { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parser/expr.rs:583:5 [INFO] [stderr] | [INFO] [stderr] 583 | / match &*d { [INFO] [stderr] 584 | | &Expr::NewObject(ref d) => self.visit_newobject(d.clone()), [INFO] [stderr] 585 | | &Expr::Literal(ref d) => self.visit_literal(d.clone()), [INFO] [stderr] 586 | | &Expr::Unary(ref d) => self.visit_unary(d.clone()), [INFO] [stderr] ... | [INFO] [stderr] 592 | | [INFO] [stderr] 593 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 583 | match *d { [INFO] [stderr] 584 | Expr::NewObject(ref d) => self.visit_newobject(d.clone()), [INFO] [stderr] 585 | Expr::Literal(ref d) => self.visit_literal(d.clone()), [INFO] [stderr] 586 | Expr::Unary(ref d) => self.visit_unary(d.clone()), [INFO] [stderr] 587 | Expr::Binary(ref d) => self.visit_binary(d.clone()), [INFO] [stderr] 588 | Expr::Grouping(ref d) => self.visit_grouping(d.clone()), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/stat.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | / match self { [INFO] [stderr] 35 | | &Stat::Assignment(..) => true, [INFO] [stderr] 36 | | _ => false, [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 34 | match *self { [INFO] [stderr] 35 | Stat::Assignment(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/stat.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / match self { [INFO] [stderr] 42 | | &Stat::Assignment(ref t) => Some(t.clone()), [INFO] [stderr] 43 | | _ => None, [INFO] [stderr] 44 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 41 | match *self { [INFO] [stderr] 42 | Stat::Assignment(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/stat.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | / match self { [INFO] [stderr] 48 | | &Stat::Modification(..) => true, [INFO] [stderr] 49 | | _ => false, [INFO] [stderr] 50 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 47 | match *self { [INFO] [stderr] 48 | Stat::Modification(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/stat.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | / match self { [INFO] [stderr] 55 | | &Stat::Modification(ref t) => Some(t.clone()), [INFO] [stderr] 56 | | _ => None, [INFO] [stderr] 57 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 54 | match *self { [INFO] [stderr] 55 | Stat::Modification(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/stat.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / match self { [INFO] [stderr] 61 | | &Stat::Expression(..) => true, [INFO] [stderr] 62 | | _ => false, [INFO] [stderr] 63 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 60 | match *self { [INFO] [stderr] 61 | Stat::Expression(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/stat.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | / match self { [INFO] [stderr] 68 | | &Stat::Expression(ref t) => Some(t.clone()), [INFO] [stderr] 69 | | _ => None, [INFO] [stderr] 70 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] warning: variant is never constructed: `String` [INFO] [stderr] --> src/lexer/token.rs:3:33 [INFO] [stderr] | [INFO] [stderr] 3 | Identifier, Integer, Float, String, Atom, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `FloatType` [INFO] [stderr] --> src/lexer/token.rs:14:45 [INFO] [stderr] | [INFO] [stderr] 14 | AnyType, VoidType, IntType, StringType, FloatType, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Bang` [INFO] [stderr] --> src/lexer/token.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | Bang, // ! [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BangEqual` [INFO] [stderr] --> src/lexer/token.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | BangEqual, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 67 | match *self { [INFO] [stderr] 68 | Stat::Expression(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LessThan` [INFO] [stderr] --> src/lexer/token.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | LessThan, GreaterThan, LessEqual, GreaterEqual, // < > <= >= [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GreaterThan` [INFO] [stderr] --> src/lexer/token.rs:22:15 [INFO] [stderr] | [INFO] [stderr] 22 | LessThan, GreaterThan, LessEqual, GreaterEqual, // < > <= >= [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LessEqual` [INFO] [stderr] --> src/lexer/token.rs:22:28 [INFO] [stderr] | [INFO] [stderr] 22 | LessThan, GreaterThan, LessEqual, GreaterEqual, // < > <= >= [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GreaterEqual` [INFO] [stderr] --> src/lexer/token.rs:22:39 [INFO] [stderr] | [INFO] [stderr] 22 | LessThan, GreaterThan, LessEqual, GreaterEqual, // < > <= >= [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Unary` [INFO] [stderr] --> src/parser/expr.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | Unary(Unary), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_newobject` [INFO] [stderr] --> src/parser/expr.rs:39:3 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn is_newobject(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_newobject` [INFO] [stderr] --> src/parser/expr.rs:46:3 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn as_newobject(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_literal` [INFO] [stderr] --> src/parser/expr.rs:52:3 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn is_literal(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_literal` [INFO] [stderr] --> src/parser/expr.rs:59:3 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn as_literal(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_unary` [INFO] [stderr] --> src/parser/expr.rs:65:3 [INFO] [stderr] | [INFO] [stderr] 65 | pub fn is_unary(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_unary` [INFO] [stderr] --> src/parser/expr.rs:72:3 [INFO] [stderr] | [INFO] [stderr] 72 | pub fn as_unary(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_binary` [INFO] [stderr] --> src/parser/expr.rs:78:3 [INFO] [stderr] | [INFO] [stderr] 78 | pub fn is_binary(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_binary` [INFO] [stderr] --> src/parser/expr.rs:85:3 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn as_binary(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_grouping` [INFO] [stderr] --> src/parser/expr.rs:91:3 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn is_grouping(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_grouping` [INFO] [stderr] --> src/parser/expr.rs:98:3 [INFO] [stderr] | [INFO] [stderr] 98 | pub fn as_grouping(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_function` [INFO] [stderr] --> src/parser/expr.rs:104:3 [INFO] [stderr] | [INFO] [stderr] 104 | pub fn is_function(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_function` [INFO] [stderr] --> src/parser/expr.rs:111:3 [INFO] [stderr] | [INFO] [stderr] 111 | pub fn as_function(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_block` [INFO] [stderr] --> src/parser/expr.rs:117:3 [INFO] [stderr] | [INFO] [stderr] 117 | pub fn is_block(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_block` [INFO] [stderr] --> src/parser/expr.rs:124:3 [INFO] [stderr] | [INFO] [stderr] 124 | pub fn as_block(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_functioncall` [INFO] [stderr] --> src/parser/expr.rs:130:3 [INFO] [stderr] | [INFO] [stderr] 130 | pub fn is_functioncall(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_functioncall` [INFO] [stderr] --> src/parser/expr.rs:137:3 [INFO] [stderr] | [INFO] [stderr] 137 | pub fn as_functioncall(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:154:3 [INFO] [stderr] | [INFO] [stderr] 154 | pub fn new_naked(map: HashMap,) -> NewObject { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:161:3 [INFO] [stderr] | [INFO] [stderr] 161 | pub fn boxed_new_naked(map: HashMap,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:175:3 [INFO] [stderr] | [INFO] [stderr] 175 | pub fn boxed_new(map: HashMap,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/stat.rs:107:3 [INFO] [stderr] | [INFO] [stderr] 107 | / pub fn new(lhs: Expr,rhs: Expr,op: Token,) -> Stat { [INFO] [stderr] 108 | | Stat::Assignment(Assignment{ [INFO] [stderr] 109 | | lhs, [INFO] [stderr] 110 | | [INFO] [stderr] ... | [INFO] [stderr] 115 | | }) [INFO] [stderr] 116 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:191:3 [INFO] [stderr] | [INFO] [stderr] 191 | pub fn new_naked(literal: PLiteral,token: Token,) -> Literal { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:200:3 [INFO] [stderr] | [INFO] [stderr] 200 | pub fn boxed_new_naked(literal: PLiteral,token: Token,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:218:3 [INFO] [stderr] | [INFO] [stderr] 218 | pub fn boxed_new(literal: PLiteral,token: Token,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:236:3 [INFO] [stderr] | [INFO] [stderr] 236 | pub fn new_naked(op: Token,value: Box,) -> Unary { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:245:3 [INFO] [stderr] | [INFO] [stderr] 245 | pub fn boxed_new_naked(op: Token,value: Box,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/parser/expr.rs:254:3 [INFO] [stderr] | [INFO] [stderr] 254 | pub fn new(op: Token,value: Box,) -> Expr { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:263:3 [INFO] [stderr] | [INFO] [stderr] 263 | pub fn boxed_new(op: Token,value: Box,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:282:3 [INFO] [stderr] | [INFO] [stderr] 282 | pub fn new_naked(op: Token,lhs: Box,rhs: Box,) -> Binary { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:293:3 [INFO] [stderr] | [INFO] [stderr] 293 | pub fn boxed_new_naked(op: Token,lhs: Box,rhs: Box,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:315:3 [INFO] [stderr] | [INFO] [stderr] 315 | pub fn boxed_new(op: Token,lhs: Box,rhs: Box,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:334:3 [INFO] [stderr] | [INFO] [stderr] 334 | pub fn new_naked(expr: Box,) -> Grouping { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:341:3 [INFO] [stderr] | [INFO] [stderr] 341 | pub fn boxed_new_naked(expr: Box,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:355:3 [INFO] [stderr] | [INFO] [stderr] 355 | pub fn boxed_new(expr: Box,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:373:3 [INFO] [stderr] | [INFO] [stderr] 373 | pub fn new_naked(ret_type: Type,args: HashMap,body: Box,is_method: bool,) -> Function { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:386:3 [INFO] [stderr] | [INFO] [stderr] 386 | pub fn boxed_new_naked(ret_type: Type,args: HashMap,body: Box,is_method: bool,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:412:3 [INFO] [stderr] | [INFO] [stderr] 412 | pub fn boxed_new(ret_type: Type,args: HashMap,body: Box,is_method: bool,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:433:3 [INFO] [stderr] | [INFO] [stderr] 433 | pub fn new_naked(body: Vec,) -> Block { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:440:3 [INFO] [stderr] | [INFO] [stderr] 440 | pub fn boxed_new_naked(body: Vec,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:454:3 [INFO] [stderr] | [INFO] [stderr] 454 | pub fn boxed_new(body: Vec,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/expr.rs:471:3 [INFO] [stderr] | [INFO] [stderr] 471 | pub fn new_naked(target: Box,args: Arguments,as_type: Option,) -> FunctionCall { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/expr.rs:482:3 [INFO] [stderr] | [INFO] [stderr] 482 | pub fn boxed_new_naked(target: Box,args: Arguments,as_type: Option,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/expr.rs:504:3 [INFO] [stderr] | [INFO] [stderr] 504 | pub fn boxed_new(target: Box,args: Arguments,as_type: Option,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_assignment` [INFO] [stderr] --> src/parser/stat.rs:33:3 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn is_assignment(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_assignment` [INFO] [stderr] --> src/parser/stat.rs:40:3 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn as_assignment(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_modification` [INFO] [stderr] --> src/parser/stat.rs:46:3 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn is_modification(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_modification` [INFO] [stderr] --> src/parser/stat.rs:53:3 [INFO] [stderr] | [INFO] [stderr] 53 | pub fn as_modification(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_expression` [INFO] [stderr] --> src/parser/stat.rs:59:3 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn is_expression(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_expression` [INFO] [stderr] --> src/parser/stat.rs:66:3 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn as_expression(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/stat.rs:85:3 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn new_naked(lhs: Expr,rhs: Expr,op: Token,) -> Assignment { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/stat.rs:96:3 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn boxed_new_naked(lhs: Expr,rhs: Expr,op: Token,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/stat.rs:161:3 [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] | [INFO] [stderr] --> src/parser/stat.rs:118:3 [INFO] [stderr] 161 | / pub fn new(lhs: Expr,rhs: Expr,op: Token,) -> Stat { [INFO] [stderr] | [INFO] [stderr] 162 | | Stat::Modification(Modification{ [INFO] [stderr] 163 | | lhs, [INFO] [stderr] 118 | pub fn boxed_new(lhs: Expr,rhs: Expr,op: Token,) -> Box { [INFO] [stderr] 164 | | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... | [INFO] [stderr] 169 | | }) [INFO] [stderr] 170 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/stat.rs:139:3 [INFO] [stderr] | [INFO] [stderr] 139 | pub fn new_naked(lhs: Expr,rhs: Expr,op: Token,) -> Modification { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/stat.rs:150:3 [INFO] [stderr] | [INFO] [stderr] 150 | pub fn boxed_new_naked(lhs: Expr,rhs: Expr,op: Token,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/stat.rs:172:3 [INFO] [stderr] | [INFO] [stderr] 172 | pub fn boxed_new(lhs: Expr,rhs: Expr,op: Token,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_naked` [INFO] [stderr] --> src/parser/stat.rs:191:3 [INFO] [stderr] | [INFO] [stderr] 191 | pub fn new_naked(expr: Expr,) -> Expression { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new_naked` [INFO] [stderr] --> src/parser/stat.rs:198:3 [INFO] [stderr] | [INFO] [stderr] 198 | pub fn boxed_new_naked(expr: Expr,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `boxed_new` [INFO] [stderr] --> src/parser/stat.rs:212:3 [INFO] [stderr] | [INFO] [stderr] 212 | pub fn boxed_new(expr: Expr,) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Float` [INFO] [stderr] --> src/parser/mod.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | Float(i64), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `String` [INFO] [stderr] --> src/parser/mod.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | String(String), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Atom` [INFO] [stderr] --> src/parser/mod.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | Atom(Atom), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Float` [INFO] [stderr] --> src/parser/mod.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | Float, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `String` [INFO] [stderr] --> src/parser/mod.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | String, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Atom` [INFO] [stderr] --> src/parser/mod.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | Atom(Atom), // Type only has the value in it of $ [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Any` [INFO] [stderr] --> src/parser/mod.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | Any, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dispose` [INFO] [stderr] --> src/parser/mod.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | pub fn dispose(&mut self, prec: F) where F: Fn(TokenType) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `strict_mode` [INFO] [stderr] --> src/interp.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | strict_mode: bool [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `opts` [INFO] [stderr] --> src/interp.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | opts: Options, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `SolomonFunc` [INFO] [stderr] --> src/interp.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub type SolomonFunc = Fn(&mut Interpreter, Vec) -> SolomonObject; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Null` [INFO] [stderr] --> src/interp.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | Null, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Integer` [INFO] [stderr] --> src/interp.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | Integer(i64), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Float` [INFO] [stderr] --> src/interp.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | Float(f64), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Atom` [INFO] [stderr] --> src/interp.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | Atom(usize), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `String` [INFO] [stderr] --> src/interp.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | String(String), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Object` [INFO] [stderr] --> src/interp.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | Object(SolomonObj), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Function` [INFO] [stderr] --> src/interp.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | Function(Rc>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `VarMessage` [INFO] [stderr] --> src/var_store.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | enum VarMessage { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `MAX_GENERATIONS` [INFO] [stderr] --> src/var_store.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | const MAX_GENERATIONS: usize = 100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `Generation` [INFO] [stderr] --> src/var_store.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub type Generation = usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `VariableRef` [INFO] [stderr] --> src/var_store.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | pub struct VariableRef(Sender, String, usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `VariableStore` [INFO] [stderr] --> src/var_store.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub struct VariableStore { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/var_store.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn new() -> VariableStore { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_variable` [INFO] [stderr] --> src/var_store.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn new_variable>(&mut self, name: S) -> VariableRef { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `reference` [INFO] [stderr] --> src/var_store.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn reference>(&mut self, name: S) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/stat.rs:205:3 [INFO] [stderr] | [INFO] [stderr] 205 | / pub fn new(expr: Expr,) -> Stat { [INFO] [stderr] 206 | | Stat::Expression(Expression{ [INFO] [stderr] 207 | | expr, [INFO] [stderr] 208 | | [INFO] [stderr] 209 | | }) [INFO] [stderr] 210 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parser/stat.rs:237:5 [INFO] [stderr] | [INFO] [stderr] 237 | / match &*d { [INFO] [stderr] 238 | | &Stat::Assignment(ref d) => self.visit_assignment(d.clone()), [INFO] [stderr] 239 | | &Stat::Modification(ref d) => self.visit_modification(d.clone()), [INFO] [stderr] 240 | | &Stat::Expression(ref d) => self.visit_expression(d.clone()), [INFO] [stderr] 241 | | [INFO] [stderr] 242 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 237 | match *d { [INFO] [stderr] 238 | Stat::Assignment(ref d) => self.visit_assignment(d.clone()), [INFO] [stderr] 239 | Stat::Modification(ref d) => self.visit_modification(d.clone()), [INFO] [stderr] 240 | Stat::Expression(ref d) => self.visit_expression(d.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parser/stat.rs:262:5 [INFO] [stderr] | [INFO] [stderr] 262 | / match &*d { [INFO] [stderr] 263 | | &Stat::Assignment(ref d) => self.visit_assignment(d.clone()), [INFO] [stderr] 264 | | &Stat::Modification(ref d) => self.visit_modification(d.clone()), [INFO] [stderr] 265 | | &Stat::Expression(ref d) => self.visit_expression(d.clone()), [INFO] [stderr] 266 | | [INFO] [stderr] 267 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 262 | match *d { [INFO] [stderr] 263 | Stat::Assignment(ref d) => self.visit_assignment(d.clone()), [INFO] [stderr] 264 | Stat::Modification(ref d) => self.visit_modification(d.clone()), [INFO] [stderr] 265 | Stat::Expression(ref d) => self.visit_expression(d.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/lexer/token.rs:48:36 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn data(&self) -> String { self.data.clone().unwrap_or(String::new()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.data.clone().unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lexer/mod.rs:68:54 [INFO] [stderr] | [INFO] [stderr] 68 | Some('*') => match self.peek() { [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 69 | | Some('/') => {self.next_char(); level -= 1}, [INFO] [stderr] 70 | | _ => {} [INFO] [stderr] 71 | | }, [INFO] [stderr] | |_________________________________________^ help: try this: `if let Some('/') = self.peek() {self.next_char(); level -= 1}` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lexer/mod.rs:72:54 [INFO] [stderr] | [INFO] [stderr] 72 | Some('/') => match self.peek() { [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 73 | | Some('*') => {self.next_char(); level += 1}, [INFO] [stderr] 74 | | _ => {} [INFO] [stderr] 75 | | }, [INFO] [stderr] | |_________________________________________^ help: try this: `if let Some('*') = self.peek() {self.next_char(); level += 1}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / match self { [INFO] [stderr] 41 | | &Expr::NewObject(..) => true, [INFO] [stderr] 42 | | _ => false, [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 40 | match *self { [INFO] [stderr] 41 | Expr::NewObject(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | / match self { [INFO] [stderr] 48 | | &Expr::NewObject(ref t) => Some(t.clone()), [INFO] [stderr] 49 | | _ => None, [INFO] [stderr] 50 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 47 | match *self { [INFO] [stderr] 48 | Expr::NewObject(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / match self { [INFO] [stderr] 54 | | &Expr::Literal(..) => true, [INFO] [stderr] 55 | | _ => false, [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 53 | match *self { [INFO] [stderr] 54 | Expr::Literal(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / match self { [INFO] [stderr] 61 | | &Expr::Literal(ref t) => Some(t.clone()), [INFO] [stderr] 62 | | _ => None, [INFO] [stderr] 63 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 60 | match *self { [INFO] [stderr] 61 | Expr::Literal(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | / match self { [INFO] [stderr] 67 | | &Expr::Unary(..) => true, [INFO] [stderr] 68 | | _ => false, [INFO] [stderr] 69 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 66 | match *self { [INFO] [stderr] 67 | Expr::Unary(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | / match self { [INFO] [stderr] 74 | | &Expr::Unary(ref t) => Some(t.clone()), [INFO] [stderr] 75 | | _ => None, [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 73 | match *self { [INFO] [stderr] 74 | Expr::Unary(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | / match self { [INFO] [stderr] 80 | | &Expr::Binary(..) => true, [INFO] [stderr] 81 | | _ => false, [INFO] [stderr] 82 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 79 | match *self { [INFO] [stderr] 80 | Expr::Binary(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | / match self { [INFO] [stderr] 87 | | &Expr::Binary(ref t) => Some(t.clone()), [INFO] [stderr] 88 | | _ => None, [INFO] [stderr] 89 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 86 | match *self { [INFO] [stderr] 87 | Expr::Binary(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / match self { [INFO] [stderr] 93 | | &Expr::Grouping(..) => true, [INFO] [stderr] 94 | | _ => false, [INFO] [stderr] 95 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 92 | match *self { [INFO] [stderr] 93 | Expr::Grouping(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:99:5 [INFO] [stderr] | [INFO] [stderr] 99 | / match self { [INFO] [stderr] 100 | | &Expr::Grouping(ref t) => Some(t.clone()), [INFO] [stderr] 101 | | _ => None, [INFO] [stderr] 102 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 99 | match *self { [INFO] [stderr] 100 | Expr::Grouping(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | / match self { [INFO] [stderr] 106 | | &Expr::Function(..) => true, [INFO] [stderr] 107 | | _ => false, [INFO] [stderr] 108 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 105 | match *self { [INFO] [stderr] 106 | Expr::Function(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:112:5 [INFO] [stderr] | [INFO] [stderr] 112 | / match self { [INFO] [stderr] 113 | | &Expr::Function(ref t) => Some(t.clone()), [INFO] [stderr] 114 | | _ => None, [INFO] [stderr] 115 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 112 | match *self { [INFO] [stderr] 113 | Expr::Function(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | / match self { [INFO] [stderr] 119 | | &Expr::Block(..) => true, [INFO] [stderr] 120 | | _ => false, [INFO] [stderr] 121 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 118 | match *self { [INFO] [stderr] 119 | Expr::Block(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | / match self { [INFO] [stderr] 126 | | &Expr::Block(ref t) => Some(t.clone()), [INFO] [stderr] 127 | | _ => None, [INFO] [stderr] 128 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 125 | match *self { [INFO] [stderr] 126 | Expr::Block(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | / match self { [INFO] [stderr] 132 | | &Expr::FunctionCall(..) => true, [INFO] [stderr] 133 | | _ => false, [INFO] [stderr] 134 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 131 | match *self { [INFO] [stderr] 132 | Expr::FunctionCall(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/expr.rs:138:5 [INFO] [stderr] | [INFO] [stderr] 138 | / match self { [INFO] [stderr] 139 | | &Expr::FunctionCall(ref t) => Some(t.clone()), [INFO] [stderr] 140 | | _ => None, [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 138 | match *self { [INFO] [stderr] 139 | Expr::FunctionCall(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:168:3 [INFO] [stderr] | [INFO] [stderr] 168 | / pub fn new(map: HashMap,) -> Expr { [INFO] [stderr] 169 | | Expr::NewObject(NewObject{ [INFO] [stderr] 170 | | map, [INFO] [stderr] 171 | | [INFO] [stderr] 172 | | }) [INFO] [stderr] 173 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:209:3 [INFO] [stderr] | [INFO] [stderr] 209 | / pub fn new(literal: PLiteral,token: Token,) -> Expr { [INFO] [stderr] 210 | | Expr::Literal(Literal{ [INFO] [stderr] 211 | | literal, [INFO] [stderr] 212 | | [INFO] [stderr] ... | [INFO] [stderr] 215 | | }) [INFO] [stderr] 216 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:254:3 [INFO] [stderr] | [INFO] [stderr] 254 | / pub fn new(op: Token,value: Box,) -> Expr { [INFO] [stderr] 255 | | Expr::Unary(Unary{ [INFO] [stderr] 256 | | op, [INFO] [stderr] 257 | | [INFO] [stderr] ... | [INFO] [stderr] 260 | | }) [INFO] [stderr] 261 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:304:3 [INFO] [stderr] | [INFO] [stderr] 304 | / pub fn new(op: Token,lhs: Box,rhs: Box,) -> Expr { [INFO] [stderr] 305 | | Expr::Binary(Binary{ [INFO] [stderr] 306 | | op, [INFO] [stderr] 307 | | [INFO] [stderr] ... | [INFO] [stderr] 312 | | }) [INFO] [stderr] 313 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:348:3 [INFO] [stderr] | [INFO] [stderr] 348 | / pub fn new(expr: Box,) -> Expr { [INFO] [stderr] 349 | | Expr::Grouping(Grouping{ [INFO] [stderr] 350 | | expr, [INFO] [stderr] 351 | | [INFO] [stderr] 352 | | }) [INFO] [stderr] 353 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:399:3 [INFO] [stderr] | [INFO] [stderr] 399 | / pub fn new(ret_type: Type,args: HashMap,body: Box,is_method: bool,) -> Expr { [INFO] [stderr] 400 | | Expr::Function(Function{ [INFO] [stderr] 401 | | ret_type, [INFO] [stderr] 402 | | [INFO] [stderr] ... | [INFO] [stderr] 409 | | }) [INFO] [stderr] 410 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser/mod.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | Err(format!("No more tokens @ aprse_type")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"No more tokens @ aprse_type".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:447:3 [INFO] [stderr] | [INFO] [stderr] 447 | / pub fn new(body: Vec,) -> Expr { [INFO] [stderr] 448 | | Expr::Block(Block{ [INFO] [stderr] 449 | | body, [INFO] [stderr] 450 | | [INFO] [stderr] 451 | | }) [INFO] [stderr] 452 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/expr.rs:493:3 [INFO] [stderr] | [INFO] [stderr] 493 | / pub fn new(target: Box,args: Arguments,as_type: Option,) -> Expr { [INFO] [stderr] 494 | | Expr::FunctionCall(FunctionCall{ [INFO] [stderr] 495 | | target, [INFO] [stderr] 496 | | [INFO] [stderr] ... | [INFO] [stderr] 501 | | }) [INFO] [stderr] 502 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/parser/expr.rs:542:28 [INFO] [stderr] | [INFO] [stderr] 542 | fn visit_expr_box(&self, d: Box) -> N { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::boxed_local)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parser/expr.rs:543:5 [INFO] [stderr] | [INFO] [stderr] 543 | / match &*d { [INFO] [stderr] 544 | | &Expr::NewObject(ref d) => self.visit_newobject(d.clone()), [INFO] [stderr] 545 | | &Expr::Literal(ref d) => self.visit_literal(d.clone()), [INFO] [stderr] 546 | | &Expr::Unary(ref d) => self.visit_unary(d.clone()), [INFO] [stderr] ... | [INFO] [stderr] 552 | | [INFO] [stderr] 553 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 543 | match *d { [INFO] [stderr] 544 | Expr::NewObject(ref d) => self.visit_newobject(d.clone()), [INFO] [stderr] 545 | Expr::Literal(ref d) => self.visit_literal(d.clone()), [INFO] [stderr] 546 | Expr::Unary(ref d) => self.visit_unary(d.clone()), [INFO] [stderr] 547 | Expr::Binary(ref d) => self.visit_binary(d.clone()), [INFO] [stderr] 548 | Expr::Grouping(ref d) => self.visit_grouping(d.clone()), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: local variable doesn't need to be boxed here [INFO] [stderr] --> src/parser/expr.rs:582:32 [INFO] [stderr] | [INFO] [stderr] 582 | fn visit_expr_box(&mut self, d: Box) -> N { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parser/expr.rs:583:5 [INFO] [stderr] | [INFO] [stderr] 583 | / match &*d { [INFO] [stderr] 584 | | &Expr::NewObject(ref d) => self.visit_newobject(d.clone()), [INFO] [stderr] 585 | | &Expr::Literal(ref d) => self.visit_literal(d.clone()), [INFO] [stderr] 586 | | &Expr::Unary(ref d) => self.visit_unary(d.clone()), [INFO] [stderr] ... | [INFO] [stderr] 592 | | [INFO] [stderr] 593 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 583 | match *d { [INFO] [stderr] 584 | Expr::NewObject(ref d) => self.visit_newobject(d.clone()), [INFO] [stderr] 585 | Expr::Literal(ref d) => self.visit_literal(d.clone()), [INFO] [stderr] 586 | Expr::Unary(ref d) => self.visit_unary(d.clone()), [INFO] [stderr] 587 | Expr::Binary(ref d) => self.visit_binary(d.clone()), [INFO] [stderr] 588 | Expr::Grouping(ref d) => self.visit_grouping(d.clone()), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/stat.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | / match self { [INFO] [stderr] 35 | | &Stat::Assignment(..) => true, [INFO] [stderr] 36 | | _ => false, [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 34 | match *self { [INFO] [stderr] 35 | Stat::Assignment(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/stat.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / match self { [INFO] [stderr] 42 | | &Stat::Assignment(ref t) => Some(t.clone()), [INFO] [stderr] 43 | | _ => None, [INFO] [stderr] 44 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 41 | match *self { [INFO] [stderr] 42 | Stat::Assignment(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/stat.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | / match self { [INFO] [stderr] 48 | | &Stat::Modification(..) => true, [INFO] [stderr] 49 | | _ => false, [INFO] [stderr] 50 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 47 | match *self { [INFO] [stderr] 48 | Stat::Modification(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/stat.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | / match self { [INFO] [stderr] 55 | | &Stat::Modification(ref t) => Some(t.clone()), [INFO] [stderr] 56 | | _ => None, [INFO] [stderr] 57 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 54 | match *self { [INFO] [stderr] 55 | Stat::Modification(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/stat.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / match self { [INFO] [stderr] 61 | | &Stat::Expression(..) => true, [INFO] [stderr] 62 | | _ => false, [INFO] [stderr] 63 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 60 | match *self { [INFO] [stderr] 61 | Stat::Expression(..) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser/stat.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | / match self { [INFO] [stderr] 68 | | &Stat::Expression(ref t) => Some(t.clone()), [INFO] [stderr] 69 | | _ => None, [INFO] [stderr] 70 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 67 | match *self { [INFO] [stderr] 68 | Stat::Expression(ref t) => Some(t.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/stat.rs:107:3 [INFO] [stderr] | [INFO] [stderr] 107 | / pub fn new(lhs: Expr,rhs: Expr,op: Token,) -> Stat { [INFO] [stderr] 108 | | Stat::Assignment(Assignment{ [INFO] [stderr] 109 | | lhs, [INFO] [stderr] 110 | | [INFO] [stderr] ... | [INFO] [stderr] 115 | | }) [INFO] [stderr] 116 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/stat.rs:161:3 [INFO] [stderr] | [INFO] [stderr] 161 | / pub fn new(lhs: Expr,rhs: Expr,op: Token,) -> Stat { [INFO] [stderr] 162 | | Stat::Modification(Modification{ [INFO] [stderr] 163 | | lhs, [INFO] [stderr] 164 | | [INFO] [stderr] ... | [INFO] [stderr] 169 | | }) [INFO] [stderr] 170 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/parser/stat.rs:205:3 [INFO] [stderr] | [INFO] [stderr] 205 | / pub fn new(expr: Expr,) -> Stat { [INFO] [stderr] 206 | | Stat::Expression(Expression{ [INFO] [stderr] 207 | | expr, [INFO] [stderr] 208 | | [INFO] [stderr] 209 | | }) [INFO] [stderr] 210 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parser/stat.rs:237:5 [INFO] [stderr] | [INFO] [stderr] 237 | / match &*d { [INFO] [stderr] 238 | | &Stat::Assignment(ref d) => self.visit_assignment(d.clone()), [INFO] [stderr] 239 | | &Stat::Modification(ref d) => self.visit_modification(d.clone()), [INFO] [stderr] 240 | | &Stat::Expression(ref d) => self.visit_expression(d.clone()), [INFO] [stderr] 241 | | [INFO] [stderr] 242 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 237 | match *d { [INFO] [stderr] 238 | Stat::Assignment(ref d) => self.visit_assignment(d.clone()), [INFO] [stderr] 239 | Stat::Modification(ref d) => self.visit_modification(d.clone()), [INFO] [stderr] 240 | Stat::Expression(ref d) => self.visit_expression(d.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parser/stat.rs:262:5 [INFO] [stderr] | [INFO] [stderr] 262 | / match &*d { [INFO] [stderr] 263 | | &Stat::Assignment(ref d) => self.visit_assignment(d.clone()), [INFO] [stderr] 264 | | &Stat::Modification(ref d) => self.visit_modification(d.clone()), [INFO] [stderr] 265 | | &Stat::Expression(ref d) => self.visit_expression(d.clone()), [INFO] [stderr] 266 | | [INFO] [stderr] 267 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 262 | match *d { [INFO] [stderr] 263 | Stat::Assignment(ref d) => self.visit_assignment(d.clone()), [INFO] [stderr] 264 | Stat::Modification(ref d) => self.visit_modification(d.clone()), [INFO] [stderr] 265 | Stat::Expression(ref d) => self.visit_expression(d.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser/mod.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | Err(format!("No more tokens @ aprse_type")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"No more tokens @ aprse_type".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser/mod.rs:282:17 [INFO] [stderr] | [INFO] [stderr] 282 | Err(format!("No more tokens to parse")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"No more tokens to parse".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parser/mod.rs:282:17 [INFO] [stderr] | [INFO] [stderr] 282 | Err(format!("No more tokens to parse")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"No more tokens to parse".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let rs =` [INFO] [stderr] --> src/interp.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | let rs = self.visit_expr(assignment.rhs.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/var_store.rs:51:15 [INFO] [stderr] | [INFO] [stderr] 51 | match (0..(self.generation + 1)).rev().map(|x| self._reference(name.as_ref(), x)).find(|x| x.is_some()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=self.generation)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/var_store.rs:61:25 [INFO] [stderr] | [INFO] [stderr] 61 | let ref s = self.cells[idx]; [INFO] [stderr] | ----^^^^^------------------- help: try: `let s = &self.cells[idx];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let rs =` [INFO] [stderr] --> src/interp.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | let rs = self.visit_expr(assignment.rhs.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/var_store.rs:51:15 [INFO] [stderr] | [INFO] [stderr] 51 | match (0..(self.generation + 1)).rev().map(|x| self._reference(name.as_ref(), x)).find(|x| x.is_some()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=self.generation)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/var_store.rs:61:25 [INFO] [stderr] | [INFO] [stderr] 61 | let ref s = self.cells[idx]; [INFO] [stderr] | ----^^^^^------------------- help: try: `let s = &self.cells[idx];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.23s [INFO] running `"docker" "inspect" "063976a704f40b46418f4b1560a0f6e31ee99d2e2be9fccb92d3e501da4519fa"` [INFO] running `"docker" "rm" "-f" "063976a704f40b46418f4b1560a0f6e31ee99d2e2be9fccb92d3e501da4519fa"` [INFO] [stdout] 063976a704f40b46418f4b1560a0f6e31ee99d2e2be9fccb92d3e501da4519fa