[INFO] crate kravl-parser 0.3.3 is already in cache [INFO] extracting crate kravl-parser 0.3.3 into work/ex/clippy-test-run/sources/stable/reg/kravl-parser/0.3.3 [INFO] extracting crate kravl-parser 0.3.3 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/kravl-parser/0.3.3 [INFO] validating manifest of kravl-parser-0.3.3 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 kravl-parser-0.3.3 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 kravl-parser-0.3.3 [INFO] finished frobbing kravl-parser-0.3.3 [INFO] frobbed toml for kravl-parser-0.3.3 written to work/ex/clippy-test-run/sources/stable/reg/kravl-parser/0.3.3/Cargo.toml [INFO] started frobbing kravl-parser-0.3.3 [INFO] finished frobbing kravl-parser-0.3.3 [INFO] frobbed toml for kravl-parser-0.3.3 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/kravl-parser/0.3.3/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 kravl-parser-0.3.3 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/kravl-parser/0.3.3:/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] cf2205b75a008cbc2c96c71f0ee52f15a91c2c6e560789a74466cb15bd173952 [INFO] running `"docker" "start" "-a" "cf2205b75a008cbc2c96c71f0ee52f15a91c2c6e560789a74466cb15bd173952"` [INFO] [stderr] Checking kravl-parser v0.3.3 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/syntax/tokens.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | token_type: token_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `token_type` [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/syntax/tokens.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | content: content, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `content` [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/syntax/tokens.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | token_type: token_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `token_type` [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/syntax/tokens.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | content: content, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `content` [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/syntax/tokens.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | row: row, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `row` [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/syntax/tokens.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | col: col, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `col` [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/syntax/lexer.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | 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/syntax/ast.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | lexer: lexer, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `lexer` [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] | [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/syntax/tokens.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | row: row, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `row` [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/syntax/tokens.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | col: col, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `col` [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/syntax/lexer.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | 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/syntax/ast.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | lexer: lexer, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `lexer` [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: you should consider deriving a `Default` implementation for `syntax::lexer::Lexer` [INFO] [stderr] --> src/syntax/lexer.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / pub fn new() -> Lexer { [INFO] [stderr] 21 | | Lexer { [INFO] [stderr] 22 | | tokens: Vec::new(), [INFO] [stderr] 23 | | lines: 0, [INFO] [stderr] ... | [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 11 | #[derive(Default)] [INFO] [stderr] | [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/syntax/lexer.rs:109:18 [INFO] [stderr] | [INFO] [stderr] 109 | fn is_bin_op(&mut self, line: &str) -> 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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/syntax/lexer.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | / match Lexer::bin_op(&line[self.start .. self.pos + offset]) { [INFO] [stderr] 119 | | Some(_) => is_bin_op = true, [INFO] [stderr] 120 | | None => () [INFO] [stderr] 121 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(_) = Lexer::bin_op(&line[self.start .. self.pos + offset]) { is_bin_op = true }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/syntax/lexer.rs:161:9 [INFO] [stderr] | [INFO] [stderr] 161 | / match self.current_token().token_type == t { [INFO] [stderr] 162 | | true => Ok(self.current_token()), [INFO] [stderr] 163 | | false => Err(format!( [INFO] [stderr] 164 | | "expected {:?} but found {:?}", t, self.current_token() [INFO] [stderr] 165 | | )) [INFO] [stderr] 166 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 161 | if self.current_token().token_type == t { Ok(self.current_token()) } else { Err(format!( [INFO] [stderr] 162 | "expected {:?} but found {:?}", t, self.current_token() [INFO] [stderr] 163 | )) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/syntax/ast.rs:14:11 [INFO] [stderr] | [INFO] [stderr] 14 | Block(Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::box_vec)] on by default [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/syntax/ast.rs:25:27 [INFO] [stderr] | [INFO] [stderr] 25 | Call(Box, Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/syntax/ast.rs:29:11 [INFO] [stderr] | [INFO] [stderr] 29 | Array(Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/syntax/ast.rs:32:32 [INFO] [stderr] | [INFO] [stderr] 32 | Definition(Option, Box>, Box>, Option), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/syntax/ast.rs:32:50 [INFO] [stderr] | [INFO] [stderr] 32 | Definition(Option, Box>, Box>, Option), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/syntax/ast.rs:33:12 [INFO] [stderr] | [INFO] [stderr] 33 | Lambda(Box>, Box, Option), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `syntax::ast::Parser` [INFO] [stderr] --> src/syntax/ast.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | / pub fn new() -> Parser { [INFO] [stderr] 43 | | Parser { [INFO] [stderr] 44 | | lexer: Lexer::new(), [INFO] [stderr] 45 | | } [INFO] [stderr] 46 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 41 | impl Default for syntax::ast::Parser { [INFO] [stderr] 42 | fn default() -> Self { [INFO] [stderr] 43 | Self::new() [INFO] [stderr] 44 | } [INFO] [stderr] 45 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stack` [INFO] [stderr] --> src/syntax/mod.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | let stack = parser.parse_full(); [INFO] [stderr] | ^^^^^ help: consider using `_stack` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `syntax::lexer::Lexer` [INFO] [stderr] --> src/syntax/lexer.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / pub fn new() -> Lexer { [INFO] [stderr] 21 | | Lexer { [INFO] [stderr] 22 | | tokens: Vec::new(), [INFO] [stderr] 23 | | lines: 0, [INFO] [stderr] ... | [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 11 | #[derive(Default)] [INFO] [stderr] | [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/syntax/lexer.rs:109:18 [INFO] [stderr] | [INFO] [stderr] 109 | fn is_bin_op(&mut self, line: &str) -> 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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/syntax/lexer.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | / match Lexer::bin_op(&line[self.start .. self.pos + offset]) { [INFO] [stderr] 119 | | Some(_) => is_bin_op = true, [INFO] [stderr] 120 | | None => () [INFO] [stderr] 121 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(_) = Lexer::bin_op(&line[self.start .. self.pos + offset]) { is_bin_op = true }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/syntax/lexer.rs:161:9 [INFO] [stderr] | [INFO] [stderr] 161 | / match self.current_token().token_type == t { [INFO] [stderr] 162 | | true => Ok(self.current_token()), [INFO] [stderr] 163 | | false => Err(format!( [INFO] [stderr] 164 | | "expected {:?} but found {:?}", t, self.current_token() [INFO] [stderr] 165 | | )) [INFO] [stderr] 166 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 161 | if self.current_token().token_type == t { Ok(self.current_token()) } else { Err(format!( [INFO] [stderr] 162 | "expected {:?} but found {:?}", t, self.current_token() [INFO] [stderr] 163 | )) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/syntax/ast.rs:14:11 [INFO] [stderr] | [INFO] [stderr] 14 | Block(Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::box_vec)] on by default [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/syntax/ast.rs:25:27 [INFO] [stderr] | [INFO] [stderr] 25 | Call(Box, Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/syntax/ast.rs:29:11 [INFO] [stderr] | [INFO] [stderr] 29 | Array(Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/syntax/ast.rs:32:32 [INFO] [stderr] | [INFO] [stderr] 32 | Definition(Option, Box>, Box>, Option), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/syntax/ast.rs:32:50 [INFO] [stderr] | [INFO] [stderr] 32 | Definition(Option, Box>, Box>, Option), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `Box>`. Consider using just `Vec` [INFO] [stderr] --> src/syntax/ast.rs:33:12 [INFO] [stderr] | [INFO] [stderr] 33 | Lambda(Box>, Box, Option), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: `Vec` is already on the heap, `Box>` makes an extra allocation. [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_vec [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `syntax::ast::Parser` [INFO] [stderr] --> src/syntax/ast.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | / pub fn new() -> Parser { [INFO] [stderr] 43 | | Parser { [INFO] [stderr] 44 | | lexer: Lexer::new(), [INFO] [stderr] 45 | | } [INFO] [stderr] 46 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 41 | impl Default for syntax::ast::Parser { [INFO] [stderr] 42 | fn default() -> Self { [INFO] [stderr] 43 | Self::new() [INFO] [stderr] 44 | } [INFO] [stderr] 45 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/syntax/mod.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | / lexer.tokenize(String::from(" [INFO] [stderr] 14 | | define fib_sum(a -> int, b -> int) -> int [INFO] [stderr] 15 | | if a + b <= 2 [INFO] [stderr] 16 | | return c [INFO] [stderr] ... | [INFO] [stderr] 20 | | end [INFO] [stderr] 21 | | ")); [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/syntax/mod.rs:23:17 [INFO] [stderr] | [INFO] [stderr] 23 | assert!(lexer.get_tokens().len() != 0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!lexer.get_tokens().is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/syntax/mod.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / lexer.tokenize(String::from(" [INFO] [stderr] 34 | | foo = \"hey aywa\" [INFO] [stderr] 35 | | foo = 22.2 [INFO] [stderr] 36 | | [INFO] [stderr] ... | [INFO] [stderr] 41 | | sum = 1337 - 2 - 10.2 * 100 [INFO] [stderr] 42 | | ")); [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.98s [INFO] running `"docker" "inspect" "cf2205b75a008cbc2c96c71f0ee52f15a91c2c6e560789a74466cb15bd173952"` [INFO] running `"docker" "rm" "-f" "cf2205b75a008cbc2c96c71f0ee52f15a91c2c6e560789a74466cb15bd173952"` [INFO] [stdout] cf2205b75a008cbc2c96c71f0ee52f15a91c2c6e560789a74466cb15bd173952