[INFO] updating cached repository fplust/rlox [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/fplust/rlox [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/fplust/rlox" "work/ex/clippy-test-run/sources/stable/gh/fplust/rlox"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/fplust/rlox'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/fplust/rlox" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/fplust/rlox"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/fplust/rlox'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 3def1200c94c36796349f06e8671aaa7f44fe3fe [INFO] sha for GitHub repo fplust/rlox: 3def1200c94c36796349f06e8671aaa7f44fe3fe [INFO] validating manifest of fplust/rlox 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 fplust/rlox 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 fplust/rlox [INFO] finished frobbing fplust/rlox [INFO] frobbed toml for fplust/rlox written to work/ex/clippy-test-run/sources/stable/gh/fplust/rlox/Cargo.toml [INFO] started frobbing fplust/rlox [INFO] finished frobbing fplust/rlox [INFO] frobbed toml for fplust/rlox written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/fplust/rlox/Cargo.toml [INFO] crate fplust/rlox 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 fplust/rlox against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/fplust/rlox:/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" "-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] 1d30cd128923247c61763ecb06c8892672be9b0e068a6bc60cf584f01fd633e7 [INFO] running `"docker" "start" "-a" "1d30cd128923247c61763ecb06c8892672be9b0e068a6bc60cf584f01fd633e7"` [INFO] [stderr] Checking lox v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/expr.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | operator: operator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `operator` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/expr.rs:50:33 [INFO] [stderr] | [INFO] [stderr] 50 | Expr::Literal(Literal { value: value }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/expr.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | operator: operator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `operator` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/scanner.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | source: source, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | tokens: tokens, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `tokens` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 35 | operator: operator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `operator` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/expr.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | operator: operator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `operator` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/expr.rs:50:33 [INFO] [stderr] | [INFO] [stderr] 50 | Expr::Literal(Literal { value: value }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/expr.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | operator: operator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `operator` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/scanner.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | source: source, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | tokens: tokens, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `tokens` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 35 | operator: operator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `operator` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/scanner.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | return &self.tokens; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.tokens` [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/scanner.rs:140:9 [INFO] [stderr] | [INFO] [stderr] 140 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/scanner.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | return self.get_char(self.current); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_char(self.current)` [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/scanner.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | return self.get_char(self.current + 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_char(self.current + 1)` [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:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | return self.expression(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.expression()` [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:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | return self.equality(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.equality()` [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:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | return expr; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `expr` [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:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | return expr; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `expr` [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:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | return expr; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `expr` [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:86:9 [INFO] [stderr] | [INFO] [stderr] 86 | return expr; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `expr` [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:98:9 [INFO] [stderr] | [INFO] [stderr] 98 | return self.primary(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.primary()` [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:141:9 [INFO] [stderr] | [INFO] [stderr] 141 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | return mem::discriminant(&token_type) == mem::discriminant(&token.token_type); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `mem::discriminant(&token_type) == mem::discriminant(&token.token_type)` [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:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | return self.previous(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.previous()` [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:161:31 [INFO] [stderr] | [INFO] [stderr] 161 | TokenType::EOF => return true, [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `true` [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:162:18 [INFO] [stderr] | [INFO] [stderr] 162 | _ => return false, [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `false` [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:167:9 [INFO] [stderr] | [INFO] [stderr] 167 | return &self.tokens[self.current]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.tokens[self.current]` [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:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | return &self.tokens[self.current - 1]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.tokens[self.current - 1]` [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/scanner.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | return &self.tokens; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.tokens` [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/scanner.rs:140:9 [INFO] [stderr] | [INFO] [stderr] 140 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/scanner.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | return self.get_char(self.current); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_char(self.current)` [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/scanner.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | return self.get_char(self.current + 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_char(self.current + 1)` [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:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | return self.expression(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.expression()` [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:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | return self.equality(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.equality()` [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:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | return expr; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `expr` [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:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | return expr; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `expr` [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:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | return expr; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `expr` [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:86:9 [INFO] [stderr] | [INFO] [stderr] 86 | return expr; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `expr` [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:98:9 [INFO] [stderr] | [INFO] [stderr] 98 | return self.primary(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.primary()` [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:141:9 [INFO] [stderr] | [INFO] [stderr] 141 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | return mem::discriminant(&token_type) == mem::discriminant(&token.token_type); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `mem::discriminant(&token_type) == mem::discriminant(&token.token_type)` [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:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | return self.previous(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.previous()` [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:161:31 [INFO] [stderr] | [INFO] [stderr] 161 | TokenType::EOF => return true, [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `true` [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:162:18 [INFO] [stderr] | [INFO] [stderr] 162 | _ => return false, [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `false` [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:167:9 [INFO] [stderr] | [INFO] [stderr] 167 | return &self.tokens[self.current]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.tokens[self.current]` [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:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | return &self.tokens[self.current - 1]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.tokens[self.current - 1]` [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: method is never used: `new` [INFO] [stderr] --> src/expr.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn new(left: Expr<'a>, operator: &'a Token, right: Expr<'a>) -> Expr<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/expr.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn new(expression: Expr<'a>) -> Expr<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/expr.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn new(value: Literals) -> Expr<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/expr.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn new(operator: &'a Token, right: Expr<'a>) -> Expr<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/expr.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | / pub fn new(left: Expr<'a>, operator: &'a Token, right: Expr<'a>) -> Expr<'a> { [INFO] [stderr] 32 | | Expr::Binary(Binary { [INFO] [stderr] 33 | | left: Box::new(left), [INFO] [stderr] 34 | | operator: operator, [INFO] [stderr] 35 | | right: Box::new(right), [INFO] [stderr] 36 | | }) [INFO] [stderr] 37 | | } [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/expr.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / pub fn new(expression: Expr<'a>) -> Expr<'a> { [INFO] [stderr] 42 | | Expr::Grouping(Grouping { [INFO] [stderr] 43 | | expression: Box::new(expression), [INFO] [stderr] 44 | | }) [INFO] [stderr] 45 | | } [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/expr.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | / pub fn new(value: Literals) -> Expr<'a> { [INFO] [stderr] 50 | | Expr::Literal(Literal { value: value }) [INFO] [stderr] 51 | | } [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/expr.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | / pub fn new(operator: &'a Token, right: Expr<'a>) -> Expr<'a> { [INFO] [stderr] 56 | | Expr::Unary(Unary { [INFO] [stderr] 57 | | operator: operator, [INFO] [stderr] 58 | | right: Box::new(right), [INFO] [stderr] 59 | | }) [INFO] [stderr] 60 | | } [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/expr.rs:101:40 [INFO] [stderr] | [INFO] [stderr] 101 | Literals::STRING(ref s) => format!("{}", s), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `s.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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/scanner.rs:38:24 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn new(source: &String) -> Scanner { [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: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/scanner.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | fn is_match(&mut self, expected: char) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [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/parser.rs:13:24 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn new(tokens: &Vec) -> Parser { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Token]` [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:30:19 [INFO] [stderr] | [INFO] [stderr] 30 | fn run_file(path: &String) { [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:55:16 [INFO] [stderr] | [INFO] [stderr] 55 | fn run(source: &String) { [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/expr.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | / pub fn new(left: Expr<'a>, operator: &'a Token, right: Expr<'a>) -> Expr<'a> { [INFO] [stderr] 32 | | Expr::Binary(Binary { [INFO] [stderr] 33 | | left: Box::new(left), [INFO] [stderr] 34 | | operator: operator, [INFO] [stderr] 35 | | right: Box::new(right), [INFO] [stderr] 36 | | }) [INFO] [stderr] 37 | | } [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/expr.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / pub fn new(expression: Expr<'a>) -> Expr<'a> { [INFO] [stderr] 42 | | Expr::Grouping(Grouping { [INFO] [stderr] 43 | | expression: Box::new(expression), [INFO] [stderr] 44 | | }) [INFO] [stderr] 45 | | } [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/expr.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | / pub fn new(value: Literals) -> Expr<'a> { [INFO] [stderr] 50 | | Expr::Literal(Literal { value: value }) [INFO] [stderr] 51 | | } [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/expr.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | / pub fn new(operator: &'a Token, right: Expr<'a>) -> Expr<'a> { [INFO] [stderr] 56 | | Expr::Unary(Unary { [INFO] [stderr] 57 | | operator: operator, [INFO] [stderr] 58 | | right: Box::new(right), [INFO] [stderr] 59 | | }) [INFO] [stderr] 60 | | } [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/expr.rs:101:40 [INFO] [stderr] | [INFO] [stderr] 101 | Literals::STRING(ref s) => format!("{}", s), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `s.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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/scanner.rs:38:24 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn new(source: &String) -> Scanner { [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: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/scanner.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | fn is_match(&mut self, expected: char) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [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/parser.rs:13:24 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn new(tokens: &Vec) -> Parser { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Token]` [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:30:19 [INFO] [stderr] | [INFO] [stderr] 30 | fn run_file(path: &String) { [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:55:16 [INFO] [stderr] | [INFO] [stderr] 55 | fn run(source: &String) { [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] Finished dev [unoptimized + debuginfo] target(s) in 1.30s [INFO] running `"docker" "inspect" "1d30cd128923247c61763ecb06c8892672be9b0e068a6bc60cf584f01fd633e7"` [INFO] running `"docker" "rm" "-f" "1d30cd128923247c61763ecb06c8892672be9b0e068a6bc60cf584f01fd633e7"` [INFO] [stdout] 1d30cd128923247c61763ecb06c8892672be9b0e068a6bc60cf584f01fd633e7