[INFO] updating cached repository LouisJackman/sylan [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/LouisJackman/sylan [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/LouisJackman/sylan" "work/ex/clippy-test-run/sources/stable/gh/LouisJackman/sylan"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/LouisJackman/sylan'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/LouisJackman/sylan" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/LouisJackman/sylan"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/LouisJackman/sylan'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 5500995f72a9a3d2e98a6a9d51b62f99064f71b9 [INFO] sha for GitHub repo LouisJackman/sylan: 5500995f72a9a3d2e98a6a9d51b62f99064f71b9 [INFO] validating manifest of LouisJackman/sylan 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 LouisJackman/sylan 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 LouisJackman/sylan [INFO] finished frobbing LouisJackman/sylan [INFO] frobbed toml for LouisJackman/sylan written to work/ex/clippy-test-run/sources/stable/gh/LouisJackman/sylan/Cargo.toml [INFO] started frobbing LouisJackman/sylan [INFO] finished frobbing LouisJackman/sylan [INFO] frobbed toml for LouisJackman/sylan written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/LouisJackman/sylan/Cargo.toml [INFO] crate LouisJackman/sylan 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 LouisJackman/sylan 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/LouisJackman/sylan:/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] 059ca8ceaf8ab13ced64263d3017dce175f9b3d4de007c2aafe767bae1f573d0 [INFO] running `"docker" "start" "-a" "059ca8ceaf8ab13ced64263d3017dce175f9b3d4de007c2aafe767bae1f573d0"` [INFO] [stderr] Checking sylan v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/lexing/lexer.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Identifier`, `InterpolatedString`, `Shebang`, `SyDoc` [INFO] [stderr] --> src/lexing/lexer.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | use multiphase::{self, Identifier, InterpolatedString, Shebang, SyDoc, SylanString}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `multiphase::Identifier` [INFO] [stderr] --> src/lexing/mod.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use multiphase::Identifier; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/lexing/lexer.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lexing/lexer.rs:668:47 [INFO] [stderr] | [INFO] [stderr] 668 | assert_next(&mut lexer, Token::Number(123123123, 32)); [INFO] [stderr] | ^^^^^^^^^ help: consider: `123_123_123` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/lexing/mod.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expression` [INFO] [stderr] --> src/parsing/mod.rs:387:53 [INFO] [stderr] | [INFO] [stderr] 387 | fn reinterpret_expression_as_pattern(&mut self, expression: Expression) -> Result { [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_expression` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `unexpected` [INFO] [stderr] --> src/parsing/mod.rs:766:25 [INFO] [stderr] | [INFO] [stderr] 766 | unexpected => { [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_unexpected` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `class` [INFO] [stderr] --> src/parsing/mod.rs:792:33 [INFO] [stderr] | [INFO] [stderr] 792 | let class = self.parse_class(); [INFO] [stderr] | ^^^^^ help: consider using `_class` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expression` [INFO] [stderr] --> src/parsing/mod.rs:387:53 [INFO] [stderr] | [INFO] [stderr] 387 | fn reinterpret_expression_as_pattern(&mut self, expression: Expression) -> Result { [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_expression` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `unexpected` [INFO] [stderr] --> src/parsing/mod.rs:766:25 [INFO] [stderr] | [INFO] [stderr] 766 | unexpected => { [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_unexpected` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `class` [INFO] [stderr] --> src/parsing/mod.rs:792:33 [INFO] [stderr] | [INFO] [stderr] 792 | let class = self.parse_class(); [INFO] [stderr] | ^^^^^ help: consider using `_class` instead [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Unexpected` [INFO] [stderr] --> src/lexing/lexer.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | Unexpected(char), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `unexpected` [INFO] [stderr] --> src/lexing/lexer.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | fn unexpected(&self, unexpected: char) -> TokenResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `Item` [INFO] [stderr] --> src/parsing/nodes.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | pub enum Item { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BinaryOperator` [INFO] [stderr] --> src/parsing/nodes.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | BinaryOperator(BinaryOperator, Box, Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `DoContext` [INFO] [stderr] --> src/parsing/nodes.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | DoContext(Box, Scope), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Continue` [INFO] [stderr] --> src/parsing/nodes.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | Continue(Continue), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Call` [INFO] [stderr] --> src/parsing/nodes.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | Call(Call), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `PackageLookup` [INFO] [stderr] --> src/parsing/nodes.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | PackageLookup(PackageLookup), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `Node` [INFO] [stderr] --> src/parsing/nodes.rs:48:1 [INFO] [stderr] | [INFO] [stderr] 48 | pub enum Node { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Imported` [INFO] [stderr] --> src/parsing/nodes.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | Imported(Package), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Binding` [INFO] [stderr] --> src/parsing/nodes.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | Binding(Binding), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Type` [INFO] [stderr] --> src/parsing/nodes.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | Type(Type), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Package` [INFO] [stderr] --> src/parsing/nodes.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | Package(Package), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Class` [INFO] [stderr] --> src/parsing/nodes.rs:120:5 [INFO] [stderr] | [INFO] [stderr] 120 | Class(Class), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Interface` [INFO] [stderr] --> src/parsing/nodes.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | Interface(Interface), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `New` [INFO] [stderr] --> src/parsing/nodes.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | New(NewType), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Assignment` [INFO] [stderr] --> src/parsing/nodes.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | Assignment(TypeAssignment), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Concrete` [INFO] [stderr] --> src/parsing/nodes.rs:169:5 [INFO] [stderr] | [INFO] [stderr] 169 | Concrete(ConcreteMethod), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Abstract` [INFO] [stderr] --> src/parsing/nodes.rs:170:5 [INFO] [stderr] | [INFO] [stderr] 170 | Abstract(AbstractMethod), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Concrete` [INFO] [stderr] --> src/parsing/nodes.rs:188:5 [INFO] [stderr] | [INFO] [stderr] 188 | Concrete(ConcreteGetter), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Abstract` [INFO] [stderr] --> src/parsing/nodes.rs:189:5 [INFO] [stderr] | [INFO] [stderr] 189 | Abstract, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `ValueArgument` [INFO] [stderr] --> src/parsing/nodes.rs:232:1 [INFO] [stderr] | [INFO] [stderr] 232 | type ValueArgument = Argument; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `TypeArguments` [INFO] [stderr] --> src/parsing/nodes.rs:233:1 [INFO] [stderr] | [INFO] [stderr] 233 | type TypeArguments = Argument; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_root` [INFO] [stderr] --> src/parsing/nodes.rs:337:5 [INFO] [stderr] | [INFO] [stderr] 337 | pub fn new_root() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Add` [INFO] [stderr] --> src/parsing/nodes.rs:412:5 [INFO] [stderr] | [INFO] [stderr] 412 | Add, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `And` [INFO] [stderr] --> src/parsing/nodes.rs:413:5 [INFO] [stderr] | [INFO] [stderr] 413 | And, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BitwiseAnd` [INFO] [stderr] --> src/parsing/nodes.rs:414:5 [INFO] [stderr] | [INFO] [stderr] 414 | BitwiseAnd, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BitwiseOr` [INFO] [stderr] --> src/parsing/nodes.rs:415:5 [INFO] [stderr] | [INFO] [stderr] 415 | BitwiseOr, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Compose` [INFO] [stderr] --> src/parsing/nodes.rs:416:5 [INFO] [stderr] | [INFO] [stderr] 416 | Compose, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Divide` [INFO] [stderr] --> src/parsing/nodes.rs:417:5 [INFO] [stderr] | [INFO] [stderr] 417 | Divide, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Dot` [INFO] [stderr] --> src/parsing/nodes.rs:418:5 [INFO] [stderr] | [INFO] [stderr] 418 | Dot, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Equals` [INFO] [stderr] --> src/parsing/nodes.rs:419:5 [INFO] [stderr] | [INFO] [stderr] 419 | Equals, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GreaterThan` [INFO] [stderr] --> src/parsing/nodes.rs:420:5 [INFO] [stderr] | [INFO] [stderr] 420 | GreaterThan, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GreaterThanOrEquals` [INFO] [stderr] --> src/parsing/nodes.rs:421:5 [INFO] [stderr] | [INFO] [stderr] 421 | GreaterThanOrEquals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LessThan` [INFO] [stderr] --> src/parsing/nodes.rs:422:5 [INFO] [stderr] | [INFO] [stderr] 422 | LessThan, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LessThenOrEquals` [INFO] [stderr] --> src/parsing/nodes.rs:423:5 [INFO] [stderr] | [INFO] [stderr] 423 | LessThenOrEquals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Modulo` [INFO] [stderr] --> src/parsing/nodes.rs:424:5 [INFO] [stderr] | [INFO] [stderr] 424 | Modulo, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Multiply` [INFO] [stderr] --> src/parsing/nodes.rs:425:5 [INFO] [stderr] | [INFO] [stderr] 425 | Multiply, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `NotEquals` [INFO] [stderr] --> src/parsing/nodes.rs:426:5 [INFO] [stderr] | [INFO] [stderr] 426 | NotEquals, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Or` [INFO] [stderr] --> src/parsing/nodes.rs:427:5 [INFO] [stderr] | [INFO] [stderr] 427 | Or, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Pipe` [INFO] [stderr] --> src/parsing/nodes.rs:428:5 [INFO] [stderr] | [INFO] [stderr] 428 | Pipe, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ShiftLeft` [INFO] [stderr] --> src/parsing/nodes.rs:429:5 [INFO] [stderr] | [INFO] [stderr] 429 | ShiftLeft, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ShiftRight` [INFO] [stderr] --> src/parsing/nodes.rs:430:5 [INFO] [stderr] | [INFO] [stderr] 430 | ShiftRight, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Subtract` [INFO] [stderr] --> src/parsing/nodes.rs:431:5 [INFO] [stderr] | [INFO] [stderr] 431 | Subtract, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Lexer` [INFO] [stderr] --> src/parsing/mod.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | Lexer(lexer::Error), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `expect_and_read` [INFO] [stderr] --> src/parsing/mod.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | fn expect_and_read(&mut self, expected: Token) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parse_class_body` [INFO] [stderr] --> src/parsing/mod.rs:684:5 [INFO] [stderr] | [INFO] [stderr] 684 | fn parse_class_body(&mut self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parse_interface_body` [INFO] [stderr] --> src/parsing/mod.rs:688:5 [INFO] [stderr] | [INFO] [stderr] 688 | fn parse_interface_body(&mut self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parse_expression_grouping` [INFO] [stderr] --> src/parsing/mod.rs:722:5 [INFO] [stderr] | [INFO] [stderr] 722 | fn parse_expression_grouping(&mut self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lexing/lexer.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | / loop { [INFO] [stderr] 154 | | if let Some(c) = self.source.read() { [INFO] [stderr] 155 | | if c == '\n' { [INFO] [stderr] 156 | | break; [INFO] [stderr] ... | [INFO] [stderr] 165 | | } [INFO] [stderr] 166 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(c) = self.source.read() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:171:21 [INFO] [stderr] | [INFO] [stderr] 171 | let c = self.source.peek().map(|x| *x); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:187:33 [INFO] [stderr] | [INFO] [stderr] 187 | let next_char = self.source.peek().map(|x| *x); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/lexing/lexer.rs:224:14 [INFO] [stderr] | [INFO] [stderr] 224 | .unwrap_or(self.fail("invalid version number")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.fail("invalid version number"))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/lexing/lexer.rs:231:14 [INFO] [stderr] | [INFO] [stderr] 231 | .unwrap_or(self.fail("invalid number")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.fail("invalid number"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:308:33 [INFO] [stderr] | [INFO] [stderr] 308 | let next_char = self.source.peek().map(|x| *x); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:337:29 [INFO] [stderr] | [INFO] [stderr] 337 | let next_char = self.source.peek().map(|x| *x); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:380:27 [INFO] [stderr] | [INFO] [stderr] 380 | match self.source.peek().map(|x| *x) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:467:15 [INFO] [stderr] | [INFO] [stderr] 467 | match self.source.peek().map(|x| *x) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:503:15 [INFO] [stderr] | [INFO] [stderr] 503 | match self.source.peek().map(|x| *x) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:517:15 [INFO] [stderr] | [INFO] [stderr] 517 | match self.source.peek().map(|x| *x) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/parsing/nodes.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | Binding(Binding), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 24 | Binding(Box), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/parsing/nodes.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | Binding(Binding), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 91 | Binding(Box), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/parsing/nodes.rs:249:1 [INFO] [stderr] | [INFO] [stderr] 249 | / impl Hash for Binding { [INFO] [stderr] 250 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 251 | | self.pattern.hash(state) [INFO] [stderr] 252 | | } [INFO] [stderr] 253 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/parsing/nodes.rs:243:28 [INFO] [stderr] | [INFO] [stderr] 243 | #[derive(Clone, Debug, Eq, PartialEq)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/parsing/nodes.rs:261:1 [INFO] [stderr] | [INFO] [stderr] 261 | / impl Hash for ContextualBinding { [INFO] [stderr] 262 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 263 | | self.name.hash(state) [INFO] [stderr] 264 | | } [INFO] [stderr] 265 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/parsing/nodes.rs:255:28 [INFO] [stderr] | [INFO] [stderr] 255 | #[derive(Clone, Debug, Eq, PartialEq)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Unexpected` [INFO] [stderr] --> src/lexing/lexer.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | Unexpected(char), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `unexpected` [INFO] [stderr] --> src/lexing/lexer.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | fn unexpected(&self, unexpected: char) -> TokenResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `Item` [INFO] [stderr] --> src/parsing/nodes.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | pub enum Item { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BinaryOperator` [INFO] [stderr] --> src/parsing/nodes.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | BinaryOperator(BinaryOperator, Box, Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `DoContext` [INFO] [stderr] --> src/parsing/nodes.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | DoContext(Box, Scope), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Continue` [INFO] [stderr] --> src/parsing/nodes.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | Continue(Continue), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Call` [INFO] [stderr] --> src/parsing/nodes.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | Call(Call), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `PackageLookup` [INFO] [stderr] --> src/parsing/nodes.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | PackageLookup(PackageLookup), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `Node` [INFO] [stderr] --> src/parsing/nodes.rs:48:1 [INFO] [stderr] | [INFO] [stderr] 48 | pub enum Node { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Imported` [INFO] [stderr] --> src/parsing/nodes.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | Imported(Package), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Binding` [INFO] [stderr] --> src/parsing/nodes.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | Binding(Binding), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Type` [INFO] [stderr] --> src/parsing/nodes.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | Type(Type), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Package` [INFO] [stderr] --> src/parsing/nodes.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | Package(Package), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Class` [INFO] [stderr] --> src/parsing/nodes.rs:120:5 [INFO] [stderr] | [INFO] [stderr] 120 | Class(Class), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Interface` [INFO] [stderr] --> src/parsing/nodes.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | Interface(Interface), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `New` [INFO] [stderr] --> src/parsing/nodes.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | New(NewType), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Assignment` [INFO] [stderr] --> src/parsing/nodes.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | Assignment(TypeAssignment), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Concrete` [INFO] [stderr] --> src/parsing/nodes.rs:169:5 [INFO] [stderr] | [INFO] [stderr] 169 | Concrete(ConcreteMethod), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Abstract` [INFO] [stderr] --> src/parsing/nodes.rs:170:5 [INFO] [stderr] | [INFO] [stderr] 170 | Abstract(AbstractMethod), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Concrete` [INFO] [stderr] --> src/parsing/nodes.rs:188:5 [INFO] [stderr] | [INFO] [stderr] 188 | Concrete(ConcreteGetter), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Abstract` [INFO] [stderr] --> src/parsing/nodes.rs:189:5 [INFO] [stderr] | [INFO] [stderr] 189 | Abstract, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `ValueArgument` [INFO] [stderr] --> src/parsing/nodes.rs:232:1 [INFO] [stderr] | [INFO] [stderr] 232 | type ValueArgument = Argument; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `TypeArguments` [INFO] [stderr] --> src/parsing/nodes.rs:233:1 [INFO] [stderr] | [INFO] [stderr] 233 | type TypeArguments = Argument; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_root` [INFO] [stderr] --> src/parsing/nodes.rs:337:5 [INFO] [stderr] | [INFO] [stderr] 337 | pub fn new_root() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Add` [INFO] [stderr] --> src/parsing/nodes.rs:412:5 [INFO] [stderr] | [INFO] [stderr] 412 | Add, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `And` [INFO] [stderr] --> src/parsing/nodes.rs:413:5 [INFO] [stderr] | [INFO] [stderr] 413 | And, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BitwiseAnd` [INFO] [stderr] --> src/parsing/nodes.rs:414:5 [INFO] [stderr] | [INFO] [stderr] 414 | BitwiseAnd, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BitwiseOr` [INFO] [stderr] --> src/parsing/nodes.rs:415:5 [INFO] [stderr] | [INFO] [stderr] 415 | BitwiseOr, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Compose` [INFO] [stderr] --> src/parsing/nodes.rs:416:5 [INFO] [stderr] | [INFO] [stderr] 416 | Compose, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Divide` [INFO] [stderr] --> src/parsing/nodes.rs:417:5 [INFO] [stderr] | [INFO] [stderr] 417 | Divide, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Dot` [INFO] [stderr] --> src/parsing/nodes.rs:418:5 [INFO] [stderr] | [INFO] [stderr] 418 | Dot, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Equals` [INFO] [stderr] --> src/parsing/nodes.rs:419:5 [INFO] [stderr] | [INFO] [stderr] 419 | Equals, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GreaterThan` [INFO] [stderr] --> src/parsing/nodes.rs:420:5 [INFO] [stderr] | [INFO] [stderr] 420 | GreaterThan, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GreaterThanOrEquals` [INFO] [stderr] --> src/parsing/nodes.rs:421:5 [INFO] [stderr] | [INFO] [stderr] 421 | GreaterThanOrEquals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LessThan` [INFO] [stderr] --> src/parsing/nodes.rs:422:5 [INFO] [stderr] | [INFO] [stderr] 422 | LessThan, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LessThenOrEquals` [INFO] [stderr] --> src/parsing/nodes.rs:423:5 [INFO] [stderr] | [INFO] [stderr] 423 | LessThenOrEquals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Modulo` [INFO] [stderr] --> src/parsing/nodes.rs:424:5 [INFO] [stderr] | [INFO] [stderr] 424 | Modulo, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Multiply` [INFO] [stderr] --> src/parsing/nodes.rs:425:5 [INFO] [stderr] | [INFO] [stderr] 425 | Multiply, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `NotEquals` [INFO] [stderr] --> src/parsing/nodes.rs:426:5 [INFO] [stderr] | [INFO] [stderr] 426 | NotEquals, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Or` [INFO] [stderr] --> src/parsing/nodes.rs:427:5 [INFO] [stderr] | [INFO] [stderr] 427 | Or, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Pipe` [INFO] [stderr] --> src/parsing/nodes.rs:428:5 [INFO] [stderr] | [INFO] [stderr] 428 | Pipe, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ShiftLeft` [INFO] [stderr] --> src/parsing/nodes.rs:429:5 [INFO] [stderr] | [INFO] [stderr] 429 | ShiftLeft, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `ShiftRight` [INFO] [stderr] --> src/parsing/nodes.rs:430:5 [INFO] [stderr] | [INFO] [stderr] 430 | ShiftRight, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Subtract` [INFO] [stderr] --> src/parsing/nodes.rs:431:5 [INFO] [stderr] | [INFO] [stderr] 431 | Subtract, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Lexer` [INFO] [stderr] --> src/parsing/mod.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | Lexer(lexer::Error), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `expect_and_read` [INFO] [stderr] --> src/parsing/mod.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | fn expect_and_read(&mut self, expected: Token) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parse_class_body` [INFO] [stderr] --> src/parsing/mod.rs:684:5 [INFO] [stderr] | [INFO] [stderr] 684 | fn parse_class_body(&mut self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parse_interface_body` [INFO] [stderr] --> src/parsing/mod.rs:688:5 [INFO] [stderr] | [INFO] [stderr] 688 | fn parse_interface_body(&mut self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parse_expression_grouping` [INFO] [stderr] --> src/parsing/mod.rs:722:5 [INFO] [stderr] | [INFO] [stderr] 722 | fn parse_expression_grouping(&mut self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lexing/lexer.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | / loop { [INFO] [stderr] 154 | | if let Some(c) = self.source.read() { [INFO] [stderr] 155 | | if c == '\n' { [INFO] [stderr] 156 | | break; [INFO] [stderr] ... | [INFO] [stderr] 165 | | } [INFO] [stderr] 166 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(c) = self.source.read() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:171:21 [INFO] [stderr] | [INFO] [stderr] 171 | let c = self.source.peek().map(|x| *x); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:187:33 [INFO] [stderr] | [INFO] [stderr] 187 | let next_char = self.source.peek().map(|x| *x); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/lexing/lexer.rs:224:14 [INFO] [stderr] | [INFO] [stderr] 224 | .unwrap_or(self.fail("invalid version number")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.fail("invalid version number"))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/lexing/lexer.rs:231:14 [INFO] [stderr] | [INFO] [stderr] 231 | .unwrap_or(self.fail("invalid number")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.fail("invalid number"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:308:33 [INFO] [stderr] | [INFO] [stderr] 308 | let next_char = self.source.peek().map(|x| *x); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:337:29 [INFO] [stderr] | [INFO] [stderr] 337 | let next_char = self.source.peek().map(|x| *x); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:380:27 [INFO] [stderr] | [INFO] [stderr] 380 | match self.source.peek().map(|x| *x) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:467:15 [INFO] [stderr] | [INFO] [stderr] 467 | match self.source.peek().map(|x| *x) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:503:15 [INFO] [stderr] | [INFO] [stderr] 503 | match self.source.peek().map(|x| *x) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lexing/lexer.rs:517:15 [INFO] [stderr] | [INFO] [stderr] 517 | match self.source.peek().map(|x| *x) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.source.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/parsing/nodes.rs:518:1 [INFO] [stderr] | [INFO] [stderr] 518 | / impl Hash for Pattern { [INFO] [stderr] 519 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 520 | | self.bound_match.hash(state) [INFO] [stderr] 521 | | } [INFO] [stderr] 522 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/parsing/nodes.rs:512:28 [INFO] [stderr] | [INFO] [stderr] 512 | #[derive(Clone, Debug, Eq, PartialEq)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/parsing/nodes.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | Binding(Binding), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 24 | Binding(Box), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/parsing/mod.rs:588:26 [INFO] [stderr] | [INFO] [stderr] 588 | let failed = parameter_patterns [INFO] [stderr] | __________________________^ [INFO] [stderr] 589 | | .iter() [INFO] [stderr] 590 | | .find(|result| !result.is_ok()) [INFO] [stderr] 591 | | .is_some(); [INFO] [stderr] | |__________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|result| !result.is_ok()).is_some()` with `any(|result| !result.is_ok())` [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] --> src/parsing/nodes.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | Binding(Binding), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 91 | Binding(Box), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/parsing/mod.rs:596:26 [INFO] [stderr] | [INFO] [stderr] 596 | .map(|pattern| result::Result::unwrap_err(pattern)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `result::Result::unwrap_err` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/parsing/mod.rs:603:26 [INFO] [stderr] | [INFO] [stderr] 603 | .map(|pattern| result::Result::unwrap(pattern)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `result::Result::unwrap` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/parsing/mod.rs:645:21 [INFO] [stderr] | [INFO] [stderr] 645 | let token = self.tokens.peek().map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.tokens.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:742:29 [INFO] [stderr] | [INFO] [stderr] 742 | self.parse_class(); [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:746:29 [INFO] [stderr] | [INFO] [stderr] 746 | self.parse_extends(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:750:29 [INFO] [stderr] | [INFO] [stderr] 750 | self.parse_import(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:754:29 [INFO] [stderr] | [INFO] [stderr] 754 | self.parse_interface(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:758:29 [INFO] [stderr] | [INFO] [stderr] 758 | self.parse_package_definition(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:762:29 [INFO] [stderr] | [INFO] [stderr] 762 | self.parse_binding(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:796:29 [INFO] [stderr] | [INFO] [stderr] 796 | self.parse_extends(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:800:29 [INFO] [stderr] | [INFO] [stderr] 800 | self.parse_import(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:804:29 [INFO] [stderr] | [INFO] [stderr] 804 | self.parse_interface(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:808:29 [INFO] [stderr] | [INFO] [stderr] 808 | self.parse_package_definition(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:812:29 [INFO] [stderr] | [INFO] [stderr] 812 | self.parse_binding(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:819:29 [INFO] [stderr] | [INFO] [stderr] 819 | self.parse_expression(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/parsing/nodes.rs:249:1 [INFO] [stderr] | [INFO] [stderr] 249 | / impl Hash for Binding { [INFO] [stderr] 250 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 251 | | self.pattern.hash(state) [INFO] [stderr] 252 | | } [INFO] [stderr] 253 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/parsing/nodes.rs:243:28 [INFO] [stderr] | [INFO] [stderr] 243 | #[derive(Clone, Debug, Eq, PartialEq)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/parsing/nodes.rs:261:1 [INFO] [stderr] | [INFO] [stderr] 261 | / impl Hash for ContextualBinding { [INFO] [stderr] 262 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 263 | | self.name.hash(state) [INFO] [stderr] 264 | | } [INFO] [stderr] 265 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/parsing/nodes.rs:255:28 [INFO] [stderr] | [INFO] [stderr] 255 | #[derive(Clone, Debug, Eq, PartialEq)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:902:9 [INFO] [stderr] | [INFO] [stderr] 902 | self.tokens.join_lexer_thread(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `sylan`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/parsing/nodes.rs:518:1 [INFO] [stderr] | [INFO] [stderr] 518 | / impl Hash for Pattern { [INFO] [stderr] 519 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 520 | | self.bound_match.hash(state) [INFO] [stderr] 521 | | } [INFO] [stderr] 522 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/parsing/nodes.rs:512:28 [INFO] [stderr] | [INFO] [stderr] 512 | #[derive(Clone, Debug, Eq, PartialEq)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/parsing/mod.rs:588:26 [INFO] [stderr] | [INFO] [stderr] 588 | let failed = parameter_patterns [INFO] [stderr] | __________________________^ [INFO] [stderr] 589 | | .iter() [INFO] [stderr] 590 | | .find(|result| !result.is_ok()) [INFO] [stderr] 591 | | .is_some(); [INFO] [stderr] | |__________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|result| !result.is_ok()).is_some()` with `any(|result| !result.is_ok())` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/parsing/mod.rs:596:26 [INFO] [stderr] | [INFO] [stderr] 596 | .map(|pattern| result::Result::unwrap_err(pattern)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `result::Result::unwrap_err` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/parsing/mod.rs:603:26 [INFO] [stderr] | [INFO] [stderr] 603 | .map(|pattern| result::Result::unwrap(pattern)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `result::Result::unwrap` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/parsing/mod.rs:645:21 [INFO] [stderr] | [INFO] [stderr] 645 | let token = self.tokens.peek().map(|x| x.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.tokens.peek().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:742:29 [INFO] [stderr] | [INFO] [stderr] 742 | self.parse_class(); [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:746:29 [INFO] [stderr] | [INFO] [stderr] 746 | self.parse_extends(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:750:29 [INFO] [stderr] | [INFO] [stderr] 750 | self.parse_import(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:754:29 [INFO] [stderr] | [INFO] [stderr] 754 | self.parse_interface(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:758:29 [INFO] [stderr] | [INFO] [stderr] 758 | self.parse_package_definition(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:762:29 [INFO] [stderr] | [INFO] [stderr] 762 | self.parse_binding(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:796:29 [INFO] [stderr] | [INFO] [stderr] 796 | self.parse_extends(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:800:29 [INFO] [stderr] | [INFO] [stderr] 800 | self.parse_import(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:804:29 [INFO] [stderr] | [INFO] [stderr] 804 | self.parse_interface(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:808:29 [INFO] [stderr] | [INFO] [stderr] 808 | self.parse_package_definition(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:812:29 [INFO] [stderr] | [INFO] [stderr] 812 | self.parse_binding(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:819:29 [INFO] [stderr] | [INFO] [stderr] 819 | self.parse_expression(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/parsing/mod.rs:902:9 [INFO] [stderr] | [INFO] [stderr] 902 | self.tokens.join_lexer_thread(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `sylan`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "059ca8ceaf8ab13ced64263d3017dce175f9b3d4de007c2aafe767bae1f573d0"` [INFO] running `"docker" "rm" "-f" "059ca8ceaf8ab13ced64263d3017dce175f9b3d4de007c2aafe767bae1f573d0"` [INFO] [stdout] 059ca8ceaf8ab13ced64263d3017dce175f9b3d4de007c2aafe767bae1f573d0