[INFO] crate rusty-peg 0.3.0 is already in cache [INFO] extracting crate rusty-peg 0.3.0 into work/ex/clippy-test-run/sources/stable/reg/rusty-peg/0.3.0 [INFO] extracting crate rusty-peg 0.3.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rusty-peg/0.3.0 [INFO] validating manifest of rusty-peg-0.3.0 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 rusty-peg-0.3.0 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 rusty-peg-0.3.0 [INFO] finished frobbing rusty-peg-0.3.0 [INFO] frobbed toml for rusty-peg-0.3.0 written to work/ex/clippy-test-run/sources/stable/reg/rusty-peg/0.3.0/Cargo.toml [INFO] started frobbing rusty-peg-0.3.0 [INFO] finished frobbing rusty-peg-0.3.0 [INFO] frobbed toml for rusty-peg-0.3.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rusty-peg/0.3.0/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 rusty-peg-0.3.0 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/reg/rusty-peg/0.3.0:/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] fc13d58a66171b7de2527da40cf220e0c3b540617f93ad26871dbbcce614cc0e [INFO] running `"docker" "start" "-a" "fc13d58a66171b7de2527da40cf220e0c3b540617f93ad26871dbbcce614cc0e"` [INFO] [stderr] Checking rusty-peg v0.3.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:20:29 [INFO] [stderr] | [INFO] [stderr] 20 | let start = Input { text: text, offset: 0 }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `text` [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/lib.rs:35:29 [INFO] [stderr] | [INFO] [stderr] 35 | let input = Input { text: text, offset: 0 }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `text` [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/util.rs:210:53 [INFO] [stderr] | [INFO] [stderr] 210 | RegexNt {regex: Regex::new(&text).unwrap(), exceptions: exceptions} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `exceptions` [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/tree.rs:30:21 [INFO] [stderr] | [INFO] [stderr] 30 | ParseTree { kind: kind, span: span, child: child, sibling: None } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/tree.rs:30:33 [INFO] [stderr] | [INFO] [stderr] 30 | ParseTree { kind: kind, span: span, child: child, sibling: None } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `span` [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/tree.rs:30:45 [INFO] [stderr] | [INFO] [stderr] 30 | ParseTree { kind: kind, span: span, child: child, sibling: None } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `child` [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/tree.rs:85:16 [INFO] [stderr] | [INFO] [stderr] 85 | Span { lo: lo, hi: hi } [INFO] [stderr] | ^^^^^^ help: replace it with: `lo` [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/tree.rs:85:24 [INFO] [stderr] | [INFO] [stderr] 85 | Span { lo: lo, hi: hi } [INFO] [stderr] | ^^^^^^ help: replace it with: `hi` [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/lib.rs:20:29 [INFO] [stderr] | [INFO] [stderr] 20 | let start = Input { text: text, offset: 0 }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `text` [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/lib.rs:35:29 [INFO] [stderr] | [INFO] [stderr] 35 | let input = Input { text: text, offset: 0 }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `text` [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/util.rs:210:53 [INFO] [stderr] | [INFO] [stderr] 210 | RegexNt {regex: Regex::new(&text).unwrap(), exceptions: exceptions} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `exceptions` [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/tree.rs:30:21 [INFO] [stderr] | [INFO] [stderr] 30 | ParseTree { kind: kind, span: span, child: child, sibling: None } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/tree.rs:30:33 [INFO] [stderr] | [INFO] [stderr] 30 | ParseTree { kind: kind, span: span, child: child, sibling: None } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `span` [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/tree.rs:30:45 [INFO] [stderr] | [INFO] [stderr] 30 | ParseTree { kind: kind, span: span, child: child, sibling: None } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `child` [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/tree.rs:85:16 [INFO] [stderr] | [INFO] [stderr] 85 | Span { lo: lo, hi: hi } [INFO] [stderr] | ^^^^^^ help: replace it with: `lo` [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/tree.rs:85:24 [INFO] [stderr] | [INFO] [stderr] 85 | Span { lo: lo, hi: hi } [INFO] [stderr] | ^^^^^^ help: replace it with: `hi` [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/util.rs:193:13 [INFO] [stderr] | [INFO] [stderr] 193 | return Ok((mid, children)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((mid, children))` [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/util.rs:195:13 [INFO] [stderr] | [INFO] [stderr] 195 | return Err(err); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(err)` [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: variable does not need to be mutable [INFO] [stderr] --> src/util.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | let mut err; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/util.rs:193:13 [INFO] [stderr] | [INFO] [stderr] 193 | return Ok((mid, children)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((mid, children))` [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/util.rs:195:13 [INFO] [stderr] | [INFO] [stderr] 195 | return Err(err); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(err)` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/util.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | / match self.a.parse(grammar, start) { [INFO] [stderr] 46 | | Ok(success) => { return Ok(success); } [INFO] [stderr] 47 | | Err(_) => { } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_________^ help: try this: `if let Ok(success) = self.a.parse(grammar, start) { return Ok(success); }` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/util.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | / pub fn skip_whitespace<'input>(mut input: Input<'input>) -> Input<'input> { [INFO] [stderr] 103 | | let bytes = input.text.as_bytes(); [INFO] [stderr] 104 | | while input.offset < input.text.len() && is_space(bytes[input.offset]) { [INFO] [stderr] 105 | | input.offset += 1; [INFO] [stderr] ... | [INFO] [stderr] 115 | | } [INFO] [stderr] 116 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [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/util.rs:222:9 [INFO] [stderr] | [INFO] [stderr] 222 | / match self.regex.find(&start.text[start.offset..]) { [INFO] [stderr] 223 | | Some((_, offset)) => { [INFO] [stderr] 224 | | let end = start.offset_by(offset); [INFO] [stderr] 225 | | let matched = &start.text[start.offset..end.offset]; [INFO] [stderr] ... | [INFO] [stderr] 230 | | None => { } [INFO] [stderr] 231 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 222 | if let Some((_, offset)) = self.regex.find(&start.text[start.offset..]) { [INFO] [stderr] 223 | let end = start.offset_by(offset); [INFO] [stderr] 224 | let matched = &start.text[start.offset..end.offset]; [INFO] [stderr] 225 | if !self.exceptions.contains(matched) { [INFO] [stderr] 226 | return Ok((end, matched)); [INFO] [stderr] 227 | } [INFO] [stderr] ... [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/util.rs:304:9 [INFO] [stderr] | [INFO] [stderr] 304 | / match cache.get(&offset) { [INFO] [stderr] 305 | | Some(p) => { return p.clone(); } [INFO] [stderr] 306 | | None => { } [INFO] [stderr] 307 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(p) = cache.get(&offset) { return p.clone(); }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/util.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | let mut err; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/util.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | / match self.a.parse(grammar, start) { [INFO] [stderr] 46 | | Ok(success) => { return Ok(success); } [INFO] [stderr] 47 | | Err(_) => { } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_________^ help: try this: `if let Ok(success) = self.a.parse(grammar, start) { return Ok(success); }` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/util.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | / pub fn skip_whitespace<'input>(mut input: Input<'input>) -> Input<'input> { [INFO] [stderr] 103 | | let bytes = input.text.as_bytes(); [INFO] [stderr] 104 | | while input.offset < input.text.len() && is_space(bytes[input.offset]) { [INFO] [stderr] 105 | | input.offset += 1; [INFO] [stderr] ... | [INFO] [stderr] 115 | | } [INFO] [stderr] 116 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [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/util.rs:222:9 [INFO] [stderr] | [INFO] [stderr] 222 | / match self.regex.find(&start.text[start.offset..]) { [INFO] [stderr] 223 | | Some((_, offset)) => { [INFO] [stderr] 224 | | let end = start.offset_by(offset); [INFO] [stderr] 225 | | let matched = &start.text[start.offset..end.offset]; [INFO] [stderr] ... | [INFO] [stderr] 230 | | None => { } [INFO] [stderr] 231 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 222 | if let Some((_, offset)) = self.regex.find(&start.text[start.offset..]) { [INFO] [stderr] 223 | let end = start.offset_by(offset); [INFO] [stderr] 224 | let matched = &start.text[start.offset..end.offset]; [INFO] [stderr] 225 | if !self.exceptions.contains(matched) { [INFO] [stderr] 226 | return Ok((end, matched)); [INFO] [stderr] 227 | } [INFO] [stderr] ... [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/util.rs:304:9 [INFO] [stderr] | [INFO] [stderr] 304 | / match cache.get(&offset) { [INFO] [stderr] 305 | | Some(p) => { return p.clone(); } [INFO] [stderr] 306 | | None => { } [INFO] [stderr] 307 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(p) = cache.get(&offset) { return p.clone(); }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/macros.rs:416:33 [INFO] [stderr] | [INFO] [stderr] 416 | / match $crate::Symbol::parse(&rhs_parser, grammar, mid) { [INFO] [stderr] 417 | | Ok((end, rusty_peg_named_item_pat!($rhs_defn))) => { [INFO] [stderr] 418 | | $lhs_nm = $rhs_expr; [INFO] [stderr] 419 | | mid = end; [INFO] [stderr] ... | [INFO] [stderr] 422 | | Err(_) => { } [INFO] [stderr] 423 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] ::: src/test/calculator.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | / rusty_peg! { [INFO] [stderr] 5 | | parser Calculator<'input> { [INFO] [stderr] 6 | | EXPR: u32 = [INFO] [stderr] 7 | | ADD_SUB_EXPR; [INFO] [stderr] ... | [INFO] [stderr] 30 | | } [INFO] [stderr] 31 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 416 | if let Ok((end, rusty_peg_named_item_pat!($rhs_defn))) = $crate::Symbol::parse(&rhs_parser, grammar, mid) { rusty_peg! { [INFO] [stderr] 417 | parser Calculator<'input> { [INFO] [stderr] 418 | EXPR: u32 = [INFO] [stderr] 419 | ADD_SUB_EXPR; [INFO] [stderr] 420 | [INFO] [stderr] 421 | PAREN_EXPR: u32 = [INFO] [stderr] ... [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/macros.rs:416:33 [INFO] [stderr] | [INFO] [stderr] 416 | / match $crate::Symbol::parse(&rhs_parser, grammar, mid) { [INFO] [stderr] 417 | | Ok((end, rusty_peg_named_item_pat!($rhs_defn))) => { [INFO] [stderr] 418 | | $lhs_nm = $rhs_expr; [INFO] [stderr] 419 | | mid = end; [INFO] [stderr] ... | [INFO] [stderr] 422 | | Err(_) => { } [INFO] [stderr] 423 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] ::: src/test/calculator.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | / rusty_peg! { [INFO] [stderr] 5 | | parser Calculator<'input> { [INFO] [stderr] 6 | | EXPR: u32 = [INFO] [stderr] 7 | | ADD_SUB_EXPR; [INFO] [stderr] ... | [INFO] [stderr] 30 | | } [INFO] [stderr] 31 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 416 | if let Ok((end, rusty_peg_named_item_pat!($rhs_defn))) = $crate::Symbol::parse(&rhs_parser, grammar, mid) { rusty_peg! { [INFO] [stderr] 417 | parser Calculator<'input> { [INFO] [stderr] 418 | EXPR: u32 = [INFO] [stderr] 419 | ADD_SUB_EXPR; [INFO] [stderr] 420 | [INFO] [stderr] 421 | PAREN_EXPR: u32 = [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/test/combos.rs:28:18 [INFO] [stderr] | [INFO] [stderr] 28 | PosHiHo: (usize, (&'input str, (usize, (&'input str, usize)))) = [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.91s [INFO] running `"docker" "inspect" "fc13d58a66171b7de2527da40cf220e0c3b540617f93ad26871dbbcce614cc0e"` [INFO] running `"docker" "rm" "-f" "fc13d58a66171b7de2527da40cf220e0c3b540617f93ad26871dbbcce614cc0e"` [INFO] [stdout] fc13d58a66171b7de2527da40cf220e0c3b540617f93ad26871dbbcce614cc0e