[INFO] updating cached repository sejr/core-interpreter [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/sejr/core-interpreter [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/sejr/core-interpreter" "work/ex/clippy-test-run/sources/stable/gh/sejr/core-interpreter"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/sejr/core-interpreter'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/sejr/core-interpreter" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/sejr/core-interpreter"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/sejr/core-interpreter'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 64c00c6dba34face0a27e389ac2cd2e2b4bc4976 [INFO] sha for GitHub repo sejr/core-interpreter: 64c00c6dba34face0a27e389ac2cd2e2b4bc4976 [INFO] validating manifest of sejr/core-interpreter 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 sejr/core-interpreter 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 sejr/core-interpreter [INFO] finished frobbing sejr/core-interpreter [INFO] frobbed toml for sejr/core-interpreter written to work/ex/clippy-test-run/sources/stable/gh/sejr/core-interpreter/Cargo.toml [INFO] started frobbing sejr/core-interpreter [INFO] finished frobbing sejr/core-interpreter [INFO] frobbed toml for sejr/core-interpreter written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/sejr/core-interpreter/Cargo.toml [INFO] crate sejr/core-interpreter 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 sejr/core-interpreter 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-1/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/sejr/core-interpreter:/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] 0159f3c81fc11032ace18a33a083d24a7e4f34b69f8ff3fe51c9438b76d334f9 [INFO] running `"docker" "start" "-a" "0159f3c81fc11032ace18a33a083d24a7e4f34b69f8ff3fe51c9438b76d334f9"` [INFO] [stderr] Checking core v0.4.0 (/opt/crater/workdir) [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/parser.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/parser.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:347:9 [INFO] [stderr] | [INFO] [stderr] 347 | return Token::LineComment; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::LineComment` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:365:9 [INFO] [stderr] | [INFO] [stderr] 365 | return Token::BlockComment; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::BlockComment` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:367:9 [INFO] [stderr] | [INFO] [stderr] 367 | return Token::Divison; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Divison` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:439:22 [INFO] [stderr] | [INFO] [stderr] 439 | "program" => return Token::Program, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Program` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:440:20 [INFO] [stderr] | [INFO] [stderr] 440 | "begin" => return Token::Begin, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Begin` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:441:18 [INFO] [stderr] | [INFO] [stderr] 441 | "end" => return Token::End, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::End` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:442:18 [INFO] [stderr] | [INFO] [stderr] 442 | "int" => return Token::Int, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Int` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:443:17 [INFO] [stderr] | [INFO] [stderr] 443 | "if" => return Token::If, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::If` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:444:19 [INFO] [stderr] | [INFO] [stderr] 444 | "then" => return Token::Then, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Then` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:445:19 [INFO] [stderr] | [INFO] [stderr] 445 | "else" => return Token::Else, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Else` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:446:20 [INFO] [stderr] | [INFO] [stderr] 446 | "while" => return Token::While, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::While` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:447:19 [INFO] [stderr] | [INFO] [stderr] 447 | "loop" => return Token::Loop, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Loop` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:448:19 [INFO] [stderr] | [INFO] [stderr] 448 | "read" => return Token::Read, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Read` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:449:20 [INFO] [stderr] | [INFO] [stderr] 449 | "write" => return Token::Write, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Write` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:450:14 [INFO] [stderr] | [INFO] [stderr] 450 | _ => return Token::Error, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Error` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | return &self.tokens.index(self.state as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.tokens.index(self.state as usize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:32:42 [INFO] [stderr] | [INFO] [stderr] 32 | Token::Identifier(ref id) => return id.to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `id.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:45:42 [INFO] [stderr] | [INFO] [stderr] 45 | Token::Integer(ref value) => return value, [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:73:29 [INFO] [stderr] | [INFO] [stderr] 73 | Some(&value) => return value, [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:347:9 [INFO] [stderr] | [INFO] [stderr] 347 | return Token::LineComment; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::LineComment` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:365:9 [INFO] [stderr] | [INFO] [stderr] 365 | return Token::BlockComment; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::BlockComment` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:367:9 [INFO] [stderr] | [INFO] [stderr] 367 | return Token::Divison; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Divison` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:439:22 [INFO] [stderr] | [INFO] [stderr] 439 | "program" => return Token::Program, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Program` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:440:20 [INFO] [stderr] | [INFO] [stderr] 440 | "begin" => return Token::Begin, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Begin` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:441:18 [INFO] [stderr] | [INFO] [stderr] 441 | "end" => return Token::End, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::End` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:442:18 [INFO] [stderr] | [INFO] [stderr] 442 | "int" => return Token::Int, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Int` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:443:17 [INFO] [stderr] | [INFO] [stderr] 443 | "if" => return Token::If, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::If` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:444:19 [INFO] [stderr] | [INFO] [stderr] 444 | "then" => return Token::Then, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Then` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:445:19 [INFO] [stderr] | [INFO] [stderr] 445 | "else" => return Token::Else, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Else` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:446:20 [INFO] [stderr] | [INFO] [stderr] 446 | "while" => return Token::While, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::While` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:447:19 [INFO] [stderr] | [INFO] [stderr] 447 | "loop" => return Token::Loop, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Loop` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:448:19 [INFO] [stderr] | [INFO] [stderr] 448 | "read" => return Token::Read, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Read` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:449:20 [INFO] [stderr] | [INFO] [stderr] 449 | "write" => return Token::Write, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Write` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tokenizer.rs:450:14 [INFO] [stderr] | [INFO] [stderr] 450 | _ => return Token::Error, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Token::Error` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | return &self.tokens.index(self.state as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.tokens.index(self.state as usize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:32:42 [INFO] [stderr] | [INFO] [stderr] 32 | Token::Identifier(ref id) => return id.to_string(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `id.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:45:42 [INFO] [stderr] | [INFO] [stderr] 45 | Token::Integer(ref value) => return value, [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:73:29 [INFO] [stderr] | [INFO] [stderr] 73 | Some(&value) => return value, [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/tokenizer.rs:119:26 [INFO] [stderr] | [INFO] [stderr] 119 | pub fn init_driver(file: &String) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/tokenizer.rs:133:24 [INFO] [stderr] | [INFO] [stderr] 133 | fn tokenize_file(file: &String) -> Vec { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:220:24 [INFO] [stderr] | [INFO] [stderr] 220 | fn tokenize_equal(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:233:29 [INFO] [stderr] | [INFO] [stderr] 233 | fn tokenize_logical_or(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:245:30 [INFO] [stderr] | [INFO] [stderr] 245 | fn tokenize_logical_and(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:255:26 [INFO] [stderr] | [INFO] [stderr] 255 | fn tokenize_inequal(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:265:25 [INFO] [stderr] | [INFO] [stderr] 265 | fn tokenize_lt_lte(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:275:25 [INFO] [stderr] | [INFO] [stderr] 275 | fn tokenize_gt_gte(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:292:30 [INFO] [stderr] | [INFO] [stderr] 292 | fn tokenize_subtraction(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/tokenizer.rs:315:23 [INFO] [stderr] | [INFO] [stderr] 315 | } else if (buf[i] as char >= 'a' && buf[i] as char <= 'z') || [INFO] [stderr] | _______________________^ [INFO] [stderr] 316 | | (buf[i] as char >= 'A' && buf[i] as char <= 'z') { [INFO] [stderr] | |______________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 315 | } else if !(buf[i] as char < 'a' && buf[i] as char < 'A' || buf[i] as char > 'z') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 315 | } else if (buf[i] as char >= 'a' || buf[i] as char >= 'A') && buf[i] as char <= 'z' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused arithmetic operation that must be used [INFO] [stderr] --> src/tokenizer.rs:309:9 [INFO] [stderr] | [INFO] [stderr] 309 | i + 1; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/tokenizer.rs:309:9 [INFO] [stderr] | [INFO] [stderr] 309 | i + 1; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::no_effect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:336:27 [INFO] [stderr] | [INFO] [stderr] 336 | fn tokenize_division(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer.rs:341:13 [INFO] [stderr] | [INFO] [stderr] 341 | i = i + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer.rs:352:13 [INFO] [stderr] | [INFO] [stderr] 352 | i = i+1; [INFO] [stderr] | ^^^^^^^ help: replace it with: `i += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer.rs:356:21 [INFO] [stderr] | [INFO] [stderr] 356 | i = i + 2; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:371:26 [INFO] [stderr] | [INFO] [stderr] 371 | fn tokenize_integer(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/tokenizer.rs:388:19 [INFO] [stderr] | [INFO] [stderr] 388 | } else if (buf[i] as char >= 'a' && buf[i] as char <= 'z') || [INFO] [stderr] | ___________________^ [INFO] [stderr] 389 | | (buf[i] as char >= 'A' && buf[i] as char <= 'z') { [INFO] [stderr] | |__________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 388 | } else if !(buf[i] as char < 'a' && buf[i] as char < 'A' || buf[i] as char > 'z') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 388 | } else if (buf[i] as char >= 'a' || buf[i] as char >= 'A') && buf[i] as char <= 'z' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:406:26 [INFO] [stderr] | [INFO] [stderr] 406 | fn tokenize_keyword(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:454:29 [INFO] [stderr] | [INFO] [stderr] 454 | fn tokenize_identifier(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/tokenizer.rs:485:19 [INFO] [stderr] | [INFO] [stderr] 485 | } else if (buf[i] as char >= 'a' && buf[i] as char <= 'z') || [INFO] [stderr] | ___________________^ [INFO] [stderr] 486 | | (buf[i] as char >= 'A' && buf[i] as char <= 'z') { [INFO] [stderr] | |__________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 485 | } else if !(buf[i] as char < 'a' && buf[i] as char < 'A' || buf[i] as char > 'z') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 485 | } else if (buf[i] as char >= 'a' || buf[i] as char >= 'A') && buf[i] as char <= 'z' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/executor.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | / match tree.get_token() { [INFO] [stderr] 104 | | &Token::Identifier(ref i) => { [INFO] [stderr] 105 | | id_flag = true; [INFO] [stderr] 106 | | match_flag = true; [INFO] [stderr] 107 | | }, [INFO] [stderr] 108 | | _ => print!("") [INFO] [stderr] 109 | | } [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] 103 | match *tree.get_token() { [INFO] [stderr] 104 | Token::Identifier(ref i) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/executor.rs:161:50 [INFO] [stderr] | [INFO] [stderr] 161 | tree.insert_variable(current_id.clone(), result.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `result` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/executor.rs:248:31 [INFO] [stderr] | [INFO] [stderr] 248 | let mut start_state:u32 = tree.state.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `tree.state` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/executor.rs:486:9 [INFO] [stderr] | [INFO] [stderr] 486 | / match tree.get_token() { [INFO] [stderr] 487 | | &Token::Identifier(ref id) => id_flag = true, [INFO] [stderr] 488 | | &Token::Integer(ref i) => int_flag = true, [INFO] [stderr] 489 | | _ => panic!("execute_op: token is not identifier") [INFO] [stderr] 490 | | } [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] 486 | match *tree.get_token() { [INFO] [stderr] 487 | Token::Identifier(ref id) => id_flag = true, [INFO] [stderr] 488 | Token::Integer(ref i) => int_flag = true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/executor.rs:515:5 [INFO] [stderr] | [INFO] [stderr] 515 | / match tree.get_token() { [INFO] [stderr] 516 | | &Token::LogicalEquality => { [INFO] [stderr] 517 | | result = 0; [INFO] [stderr] 518 | | }, [INFO] [stderr] ... | [INFO] [stderr] 534 | | _ => panic!("execute_comp_op: unexpected comp op") [INFO] [stderr] 535 | | } [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] 515 | match *tree.get_token() { [INFO] [stderr] 516 | Token::LogicalEquality => { [INFO] [stderr] 517 | result = 0; [INFO] [stderr] 518 | }, [INFO] [stderr] 519 | Token::LogicalInequality => { [INFO] [stderr] 520 | result = 1; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:196:5 [INFO] [stderr] | [INFO] [stderr] 196 | / match tree.get_token() { [INFO] [stderr] 197 | | &Token::Identifier(ref i) => { [INFO] [stderr] 198 | | id_flag = true; [INFO] [stderr] 199 | | match_flag = true; [INFO] [stderr] 200 | | }, [INFO] [stderr] 201 | | _ => print!("") [INFO] [stderr] 202 | | } [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] 196 | match *tree.get_token() { [INFO] [stderr] 197 | Token::Identifier(ref i) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/parser.rs:256:50 [INFO] [stderr] | [INFO] [stderr] 256 | tree.insert_variable(current_id.clone(), result.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:552:9 [INFO] [stderr] | [INFO] [stderr] 552 | / match tree.get_token() { [INFO] [stderr] 553 | | &Token::Identifier(ref id) => id_flag = true, [INFO] [stderr] 554 | | &Token::Integer(ref i) => int_flag = true, [INFO] [stderr] 555 | | _ => panic!("parse_op: token is not identifier") [INFO] [stderr] 556 | | } [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] 552 | match *tree.get_token() { [INFO] [stderr] 553 | Token::Identifier(ref id) => id_flag = true, [INFO] [stderr] 554 | Token::Integer(ref i) => int_flag = true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:581:5 [INFO] [stderr] | [INFO] [stderr] 581 | / match tree.get_token() { [INFO] [stderr] 582 | | &Token::LogicalEquality => { [INFO] [stderr] 583 | | tree.current_statement.push_str(" == "); [INFO] [stderr] 584 | | result = 0; [INFO] [stderr] ... | [INFO] [stderr] 606 | | _ => panic!("parse_comp_op: unexpected comp op") [INFO] [stderr] 607 | | } [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] 581 | match *tree.get_token() { [INFO] [stderr] 582 | Token::LogicalEquality => { [INFO] [stderr] 583 | tree.current_statement.push_str(" == "); [INFO] [stderr] 584 | result = 0; [INFO] [stderr] 585 | }, [INFO] [stderr] 586 | Token::LogicalInequality => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | let ref file: String = args[1]; [INFO] [stderr] | ----^^^^^^^^------------------- help: try: `let file: &String = &args[1];` [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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/tokenizer.rs:119:26 [INFO] [stderr] | [INFO] [stderr] 119 | pub fn init_driver(file: &String) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/tokenizer.rs:133:24 [INFO] [stderr] | [INFO] [stderr] 133 | fn tokenize_file(file: &String) -> Vec { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:220:24 [INFO] [stderr] | [INFO] [stderr] 220 | fn tokenize_equal(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:233:29 [INFO] [stderr] | [INFO] [stderr] 233 | fn tokenize_logical_or(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:245:30 [INFO] [stderr] | [INFO] [stderr] 245 | fn tokenize_logical_and(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:255:26 [INFO] [stderr] | [INFO] [stderr] 255 | fn tokenize_inequal(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:265:25 [INFO] [stderr] | [INFO] [stderr] 265 | fn tokenize_lt_lte(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:275:25 [INFO] [stderr] | [INFO] [stderr] 275 | fn tokenize_gt_gte(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:292:30 [INFO] [stderr] | [INFO] [stderr] 292 | fn tokenize_subtraction(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/tokenizer.rs:315:23 [INFO] [stderr] | [INFO] [stderr] 315 | } else if (buf[i] as char >= 'a' && buf[i] as char <= 'z') || [INFO] [stderr] | _______________________^ [INFO] [stderr] 316 | | (buf[i] as char >= 'A' && buf[i] as char <= 'z') { [INFO] [stderr] | |______________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 315 | } else if !(buf[i] as char < 'a' && buf[i] as char < 'A' || buf[i] as char > 'z') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 315 | } else if (buf[i] as char >= 'a' || buf[i] as char >= 'A') && buf[i] as char <= 'z' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused arithmetic operation that must be used [INFO] [stderr] --> src/tokenizer.rs:309:9 [INFO] [stderr] | [INFO] [stderr] 309 | i + 1; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/tokenizer.rs:309:9 [INFO] [stderr] | [INFO] [stderr] 309 | i + 1; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::no_effect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:336:27 [INFO] [stderr] | [INFO] [stderr] 336 | fn tokenize_division(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer.rs:341:13 [INFO] [stderr] | [INFO] [stderr] 341 | i = i + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer.rs:352:13 [INFO] [stderr] | [INFO] [stderr] 352 | i = i+1; [INFO] [stderr] | ^^^^^^^ help: replace it with: `i += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tokenizer.rs:356:21 [INFO] [stderr] | [INFO] [stderr] 356 | i = i + 2; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:371:26 [INFO] [stderr] | [INFO] [stderr] 371 | fn tokenize_integer(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/tokenizer.rs:388:19 [INFO] [stderr] | [INFO] [stderr] 388 | } else if (buf[i] as char >= 'a' && buf[i] as char <= 'z') || [INFO] [stderr] | ___________________^ [INFO] [stderr] 389 | | (buf[i] as char >= 'A' && buf[i] as char <= 'z') { [INFO] [stderr] | |__________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 388 | } else if !(buf[i] as char < 'a' && buf[i] as char < 'A' || buf[i] as char > 'z') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 388 | } else if (buf[i] as char >= 'a' || buf[i] as char >= 'A') && buf[i] as char <= 'z' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:406:26 [INFO] [stderr] | [INFO] [stderr] 406 | fn tokenize_keyword(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/tokenizer.rs:454:29 [INFO] [stderr] | [INFO] [stderr] 454 | fn tokenize_identifier(buf: &Vec, state: &mut usize) -> Token { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/tokenizer.rs:485:19 [INFO] [stderr] | [INFO] [stderr] 485 | } else if (buf[i] as char >= 'a' && buf[i] as char <= 'z') || [INFO] [stderr] | ___________________^ [INFO] [stderr] 486 | | (buf[i] as char >= 'A' && buf[i] as char <= 'z') { [INFO] [stderr] | |__________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 485 | } else if !(buf[i] as char < 'a' && buf[i] as char < 'A' || buf[i] as char > 'z') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 485 | } else if (buf[i] as char >= 'a' || buf[i] as char >= 'A') && buf[i] as char <= 'z' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/executor.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | / match tree.get_token() { [INFO] [stderr] 104 | | &Token::Identifier(ref i) => { [INFO] [stderr] 105 | | id_flag = true; [INFO] [stderr] 106 | | match_flag = true; [INFO] [stderr] 107 | | }, [INFO] [stderr] 108 | | _ => print!("") [INFO] [stderr] 109 | | } [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] 103 | match *tree.get_token() { [INFO] [stderr] 104 | Token::Identifier(ref i) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/executor.rs:161:50 [INFO] [stderr] | [INFO] [stderr] 161 | tree.insert_variable(current_id.clone(), result.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `result` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/executor.rs:248:31 [INFO] [stderr] | [INFO] [stderr] 248 | let mut start_state:u32 = tree.state.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `tree.state` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/executor.rs:486:9 [INFO] [stderr] | [INFO] [stderr] 486 | / match tree.get_token() { [INFO] [stderr] 487 | | &Token::Identifier(ref id) => id_flag = true, [INFO] [stderr] 488 | | &Token::Integer(ref i) => int_flag = true, [INFO] [stderr] 489 | | _ => panic!("execute_op: token is not identifier") [INFO] [stderr] 490 | | } [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] 486 | match *tree.get_token() { [INFO] [stderr] 487 | Token::Identifier(ref id) => id_flag = true, [INFO] [stderr] 488 | Token::Integer(ref i) => int_flag = true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/executor.rs:515:5 [INFO] [stderr] | [INFO] [stderr] 515 | / match tree.get_token() { [INFO] [stderr] 516 | | &Token::LogicalEquality => { [INFO] [stderr] 517 | | result = 0; [INFO] [stderr] 518 | | }, [INFO] [stderr] ... | [INFO] [stderr] 534 | | _ => panic!("execute_comp_op: unexpected comp op") [INFO] [stderr] 535 | | } [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] 515 | match *tree.get_token() { [INFO] [stderr] 516 | Token::LogicalEquality => { [INFO] [stderr] 517 | result = 0; [INFO] [stderr] 518 | }, [INFO] [stderr] 519 | Token::LogicalInequality => { [INFO] [stderr] 520 | result = 1; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:196:5 [INFO] [stderr] | [INFO] [stderr] 196 | / match tree.get_token() { [INFO] [stderr] 197 | | &Token::Identifier(ref i) => { [INFO] [stderr] 198 | | id_flag = true; [INFO] [stderr] 199 | | match_flag = true; [INFO] [stderr] 200 | | }, [INFO] [stderr] 201 | | _ => print!("") [INFO] [stderr] 202 | | } [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] 196 | match *tree.get_token() { [INFO] [stderr] 197 | Token::Identifier(ref i) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/parser.rs:256:50 [INFO] [stderr] | [INFO] [stderr] 256 | tree.insert_variable(current_id.clone(), result.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:552:9 [INFO] [stderr] | [INFO] [stderr] 552 | / match tree.get_token() { [INFO] [stderr] 553 | | &Token::Identifier(ref id) => id_flag = true, [INFO] [stderr] 554 | | &Token::Integer(ref i) => int_flag = true, [INFO] [stderr] 555 | | _ => panic!("parse_op: token is not identifier") [INFO] [stderr] 556 | | } [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] 552 | match *tree.get_token() { [INFO] [stderr] 553 | Token::Identifier(ref id) => id_flag = true, [INFO] [stderr] 554 | Token::Integer(ref i) => int_flag = true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:581:5 [INFO] [stderr] | [INFO] [stderr] 581 | / match tree.get_token() { [INFO] [stderr] 582 | | &Token::LogicalEquality => { [INFO] [stderr] 583 | | tree.current_statement.push_str(" == "); [INFO] [stderr] 584 | | result = 0; [INFO] [stderr] ... | [INFO] [stderr] 606 | | _ => panic!("parse_comp_op: unexpected comp op") [INFO] [stderr] 607 | | } [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] 581 | match *tree.get_token() { [INFO] [stderr] 582 | Token::LogicalEquality => { [INFO] [stderr] 583 | tree.current_statement.push_str(" == "); [INFO] [stderr] 584 | result = 0; [INFO] [stderr] 585 | }, [INFO] [stderr] 586 | Token::LogicalInequality => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | let ref file: String = args[1]; [INFO] [stderr] | ----^^^^^^^^------------------- help: try: `let file: &String = &args[1];` [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" "0159f3c81fc11032ace18a33a083d24a7e4f34b69f8ff3fe51c9438b76d334f9"` [INFO] running `"docker" "rm" "-f" "0159f3c81fc11032ace18a33a083d24a7e4f34b69f8ff3fe51c9438b76d334f9"` [INFO] [stdout] 0159f3c81fc11032ace18a33a083d24a7e4f34b69f8ff3fe51c9438b76d334f9