[INFO] crate kailua_syntax 1.1.0 is already in cache [INFO] extracting crate kailua_syntax 1.1.0 into work/ex/clippy-test-run/sources/stable/reg/kailua_syntax/1.1.0 [INFO] extracting crate kailua_syntax 1.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/kailua_syntax/1.1.0 [INFO] validating manifest of kailua_syntax-1.1.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 kailua_syntax-1.1.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 kailua_syntax-1.1.0 [INFO] removed 1 missing tests [INFO] removed path dependency kailua_diag from kailua_syntax-1.1.0 [INFO] removed path dependency kailua_env from kailua_syntax-1.1.0 [INFO] removed path dependency kailua_test from kailua_syntax-1.1.0 [INFO] finished frobbing kailua_syntax-1.1.0 [INFO] frobbed toml for kailua_syntax-1.1.0 written to work/ex/clippy-test-run/sources/stable/reg/kailua_syntax/1.1.0/Cargo.toml [INFO] started frobbing kailua_syntax-1.1.0 [INFO] removed 1 missing tests [INFO] removed path dependency kailua_diag from kailua_syntax-1.1.0 [INFO] removed path dependency kailua_env from kailua_syntax-1.1.0 [INFO] removed path dependency kailua_test from kailua_syntax-1.1.0 [INFO] finished frobbing kailua_syntax-1.1.0 [INFO] frobbed toml for kailua_syntax-1.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/kailua_syntax/1.1.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 kailua_syntax-1.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/kailua_syntax/1.1.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] f8a90e1f66609bfd0fb38b30da60714f476af3d483b9dbdc5f42b71b09f435a0 [INFO] running `"docker" "start" "-a" "f8a90e1f66609bfd0fb38b30da60714f476af3d483b9dbdc5f42b71b09f435a0"` [INFO] [stderr] warning: An explicit [[test]] section is specified in Cargo.toml which currently [INFO] [stderr] disables Cargo from automatically inferring other test targets. [INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following [INFO] [stderr] files will be included as a test target: [INFO] [stderr] [INFO] [stderr] * /opt/crater/workdir/tests/kailua-parse-test.rs [INFO] [stderr] [INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be [INFO] [stderr] ready to be compiled as a test target today. You can future-proof yourself [INFO] [stderr] and disable this warning by adding `autotests = false` to your [package] [INFO] [stderr] section. You may also move the files to a location where Cargo would not [INFO] [stderr] automatically infer them to be a target, such as in subfolders. [INFO] [stderr] [INFO] [stderr] For more information on this warning you can consult [INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330 [INFO] [stderr] Checking kailua_env v1.0.4 [INFO] [stderr] Checking kailua_diag v1.0.4 [INFO] [stderr] Checking kailua_syntax v1.1.0 (/opt/crater/workdir) [INFO] [stderr] Checking kailua_test v1.0.4 [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lex/lexer.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | bytes: bytes, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [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/lex/lexer.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | shebang: shebang, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `shebang` [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/lex/lexer.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | report: report, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `report` [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/lex/nesting.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | iter: iter, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `iter` [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/lex/nesting.rs:361:13 [INFO] [stderr] | [INFO] [stderr] 361 | tok: tok, depth: depth, category: category, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tok` [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/lex/nesting.rs:361:23 [INFO] [stderr] | [INFO] [stderr] 361 | tok: tok, depth: depth, category: category, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `depth` [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/lex/nesting.rs:361:37 [INFO] [stderr] | [INFO] [stderr] 361 | tok: tok, depth: depth, category: category, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `category` [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: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/string.rs:25:22 [INFO] [stderr] | [INFO] [stderr] 25 | b'\n' => write!(f, "\\n")?, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:369:13 [INFO] [stderr] | [INFO] [stderr] 369 | report: report, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `report` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:499:13 [INFO] [stderr] | [INFO] [stderr] 499 | tok: tok, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tok` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:855:51 [INFO] [stderr] | [INFO] [stderr] 855 | IndexedName { idx: self.last_token_idx(), name: name }.with_loc(span) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:880:56 [INFO] [stderr] | [INFO] [stderr] 880 | let localname = LocalName { def_span: id.span, kind: kind }; [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/parser.rs:1614:48 [INFO] [stderr] | [INFO] [stderr] 1614 | TypeSpec { base: name, modf: modf, kind: kind } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `modf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:1614:60 [INFO] [stderr] | [INFO] [stderr] 1614 | TypeSpec { base: name, modf: modf, kind: kind } [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/parser.rs:1694:30 [INFO] [stderr] | [INFO] [stderr] 1694 | let args = Seq { head: head, tail: tail }.with_loc(args.span); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `head` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:1694:42 [INFO] [stderr] | [INFO] [stderr] 1694 | let args = Seq { head: head, tail: tail }.with_loc(args.span); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tail` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:1698:25 [INFO] [stderr] | [INFO] [stderr] 1698 | let sig = Sig { attrs: attrs, args: args, returns: returns }; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `attrs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:1698:39 [INFO] [stderr] | [INFO] [stderr] 1698 | let sig = Sig { attrs: attrs, args: args, returns: returns }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:1698:51 [INFO] [stderr] | [INFO] [stderr] 1698 | let sig = Sig { attrs: attrs, args: args, returns: returns }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `returns` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:1769:20 [INFO] [stderr] | [INFO] [stderr] 1769 | Ok(Table { items: items }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `items` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2178:24 [INFO] [stderr] | [INFO] [stderr] 2178 | TypeSpec { base: base, modf: modf, kind: kind } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `base` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2178:36 [INFO] [stderr] | [INFO] [stderr] 2178 | TypeSpec { base: base, modf: modf, kind: kind } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `modf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2178:48 [INFO] [stderr] | [INFO] [stderr] 2178 | TypeSpec { base: base, modf: modf, kind: kind } [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/parser.rs:2180:24 [INFO] [stderr] | [INFO] [stderr] 2180 | TypeSpec { base: base, modf: MM::None, kind: None } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `base` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2206:32 [INFO] [stderr] | [INFO] [stderr] 2206 | Ok(Some(Attr { name: name, values: values })) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2206:44 [INFO] [stderr] | [INFO] [stderr] 2206 | Ok(Some(Attr { name: name, values: values })) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `values` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2263:40 [INFO] [stderr] | [INFO] [stderr] 2263 | Ok(SlotKind { modf: modf.base, kind: kind }.with_loc(begin..self.last_pos())) [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/parser.rs:2269:38 [INFO] [stderr] | [INFO] [stderr] 2269 | Ok(SlotKind { modf: M::None, kind: kind }.with_loc(begin..self.last_pos())) [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/parser.rs:2369:18 [INFO] [stderr] | [INFO] [stderr] 2369 | Ok(Seq { head: head, tail: tail }) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `head` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2369:30 [INFO] [stderr] | [INFO] [stderr] 2369 | Ok(Seq { head: head, tail: tail }) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tail` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2426:31 [INFO] [stderr] | [INFO] [stderr] 2426 | Ok(Seq { head: specs, tail: tail }.with_loc(begin..end)) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tail` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2452:23 [INFO] [stderr] | [INFO] [stderr] 2452 | Ok(FuncKind { args: args, returns: returns }.with_loc(span)) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2452:35 [INFO] [stderr] | [INFO] [stderr] 2452 | Ok(FuncKind { args: args, returns: returns }.with_loc(span)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `returns` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:3004:43 [INFO] [stderr] | [INFO] [stderr] 3004 | let presig = Presig { prefix: prefix, args: args, returns: Some(returns) }; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `prefix` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:3004:59 [INFO] [stderr] | [INFO] [stderr] 3004 | let presig = Presig { prefix: prefix, args: args, returns: Some(returns) }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:3321:17 [INFO] [stderr] | [INFO] [stderr] 3321 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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 unit expression [INFO] [stderr] --> src/parser.rs:149:28 [INFO] [stderr] | [INFO] [stderr] 149 | fn recover() -> Self { () } [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 940 | / match_next! { self; [INFO] [stderr] 941 | | Tok::Name(name) in span => Some(self.indexed_name_from(name, span)); [INFO] [stderr] 942 | | 'unread: _ => None; [INFO] [stderr] 943 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 947 | / match_next! { self; [INFO] [stderr] 948 | | Tok::Name(name) in span => Ok(self.indexed_name_from(name, span)); [INFO] [stderr] 949 | | 'unread: _, m::NoName => Err(Stop::Recover); [INFO] [stderr] 950 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 954 | / match_next! { self; [INFO] [stderr] 955 | | Tok::Name(name) in span => Ok(name.with_loc(span)); [INFO] [stderr] 956 | | Tok::Keyword(keyword) in span => Ok(Name::from(keyword).with_loc(span)); [INFO] [stderr] 957 | | 'unread: _, m::NoName => Err(Stop::Recover); [INFO] [stderr] 958 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1185 | / match_next! { self; [INFO] [stderr] 1186 | | // for NAME "=" ... [INFO] [stderr] 1187 | | Tok::Punct(Punct::Eq) => { [INFO] [stderr] 1188 | | let start = self.parse_exp()?; [INFO] [stderr] ... | [INFO] [stderr] 1220 | | }; [INFO] [stderr] 1221 | | } [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1274 | / match_next! { self; [INFO] [stderr] 1275 | | // local function ... [INFO] [stderr] 1276 | | Tok::Keyword(Keyword::Function) => { [INFO] [stderr] 1277 | | let name = self.parse_name()?; [INFO] [stderr] ... | [INFO] [stderr] 1331 | | 'unread: _, m::NoFuncOrNameAfterLocal => Box::new(St::Oops); [INFO] [stderr] 1332 | | } [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1135 | let stmt = match_next! { self; [INFO] [stderr] | ____________________- [INFO] [stderr] 1136 | | Tok::Keyword(Keyword::Do) => { [INFO] [stderr] 1137 | | let block = self.recover(Self::parse_block, Keyword::End)?; [INFO] [stderr] 1138 | | Box::new(St::Do(block)) [INFO] [stderr] ... | [INFO] [stderr] 1436 | | }; [INFO] [stderr] 1437 | | }; [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1474 | / match_next! { self; [INFO] [stderr] 1475 | | Tok::Punct(Punct::LParen) => {}; [INFO] [stderr] 1476 | | [INFO] [stderr] 1477 | | // if no parentheses are found, the function parsing fails and should return Oops [INFO] [stderr] ... | [INFO] [stderr] 1481 | | }; [INFO] [stderr] 1482 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1489 | / match_next! { parser; [INFO] [stderr] 1490 | | Tok::Punct(Punct::DotDotDot) in span => { [INFO] [stderr] 1491 | | variadic = Some(span); [INFO] [stderr] 1492 | | }; [INFO] [stderr] ... | [INFO] [stderr] 1514 | | 'unread: _, m::BadFuncArg => return Err(Stop::Recover); [INFO] [stderr] 1515 | | } [INFO] [stderr] | |_____________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1719 | / match_next! { parser; [INFO] [stderr] 1720 | | // `,` [`}`] [INFO] [stderr] 1721 | | // `;` [`}`] [INFO] [stderr] 1722 | | Tok::Punct(Punct::Comma) | Tok::Punct(Punct::Semicolon) => {}; [INFO] [stderr] ... | [INFO] [stderr] 1727 | | 'unread: _, m::NoTableSep => return Err(Stop::Recover); [INFO] [stderr] 1728 | | } [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1748 | / match_next! { parser; [INFO] [stderr] 1749 | | Tok::Name(name) in span => { [INFO] [stderr] 1750 | | if parser.may_expect(Punct::Eq) { [INFO] [stderr] 1751 | | let key = Box::new(Ex::Str(Str::from(name))).with_loc(span); [INFO] [stderr] ... | [INFO] [stderr] 1764 | | }; [INFO] [stderr] 1765 | | } [INFO] [stderr] | |_____________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1775 | / match_next! { self; [INFO] [stderr] 1776 | | Tok::Punct(Punct::LParen) => { [INFO] [stderr] 1777 | | let mut args = Vec::new(); [INFO] [stderr] 1778 | | let (span, _) = self.recover_with( [INFO] [stderr] ... | [INFO] [stderr] 1792 | | 'unread: _ => Ok(None); [INFO] [stderr] 1793 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1799 | let exp = match_next! { self; [INFO] [stderr] | ___________________- [INFO] [stderr] 1800 | | Tok::Punct(Punct::LParen) => { [INFO] [stderr] 1801 | | let exp_ = self.recover(Self::parse_exp, Punct::RParen)?; [INFO] [stderr] 1802 | | Box::new(Ex::Exp(exp_)).with_loc(begin..self.last_pos()) [INFO] [stderr] ... | [INFO] [stderr] 1811 | | 'unread: _ => return Ok(None); [INFO] [stderr] 1812 | | }; [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1822 | / match_next! { self; [INFO] [stderr] 1823 | | // prefixexp "." ... [INFO] [stderr] 1824 | | Tok::Punct(Punct::Dot) => { [INFO] [stderr] 1825 | | if let Some(name) = self.try_parse_name() { [INFO] [stderr] ... | [INFO] [stderr] 1874 | | } [INFO] [stderr] 1875 | | }; [INFO] [stderr] | |______________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1918 | / match_next! { self; [INFO] [stderr] 1919 | | Tok::Keyword(Keyword::Nil) in span => Ok(Some(Box::new(Ex::Nil).with_loc(span))); [INFO] [stderr] 1920 | | Tok::Keyword(Keyword::False) in span => Ok(Some(Box::new(Ex::False).with_loc(span))); [INFO] [stderr] 1921 | | Tok::Keyword(Keyword::True) in span => Ok(Some(Box::new(Ex::True).with_loc(span))); [INFO] [stderr] ... | [INFO] [stderr] 1939 | | 'unread: _ => self.try_parse_prefix_exp(); [INFO] [stderr] 1940 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2215 | / match_next! { self; [INFO] [stderr] 2216 | | Tok::Name(name) in span => { [INFO] [stderr] 2217 | | Ok(Some(AttrValue::Name(Name::from(name).with_loc(span)).with_loc(span))) [INFO] [stderr] 2218 | | }; [INFO] [stderr] 2219 | | 'unread: _ => Ok(None); [INFO] [stderr] 2220 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2291 | / match_next! { parser; [INFO] [stderr] 2292 | | Tok::Name(name) in span => { [INFO] [stderr] 2293 | | let name = parser.indexed_name_from(name, span); [INFO] [stderr] 2294 | | if parser.lookahead(Punct::Colon) { [INFO] [stderr] ... | [INFO] [stderr] 2319 | | }; [INFO] [stderr] 2320 | | } [INFO] [stderr] | |_____________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2326 | None => match_next! { self; [INFO] [stderr] | _____________________- [INFO] [stderr] 2327 | | Tok::Punct(Punct::DotDotDot) in span => { [INFO] [stderr] 2328 | | self.error(span, m::NoKindBeforeEllipsis {}).done()?; [INFO] [stderr] 2329 | | // pretend that (an invalid) `(...)` is `(?...)` [INFO] [stderr] ... | [INFO] [stderr] 2332 | | 'unread: _ => return Ok(Seq { head: head, tail: None }); [INFO] [stderr] 2333 | | }, [INFO] [stderr] | |_____________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2341 | None => match_next! { self; [INFO] [stderr] | _________________________- [INFO] [stderr] 2342 | | Tok::Punct(Punct::DotDotDot) in span => { [INFO] [stderr] 2343 | | self.error(span, m::NoKindBeforeEllipsis {}).done()?; [INFO] [stderr] 2344 | | // pretend that (an invalid) `(, ...)` is `(, ?...)` [INFO] [stderr] ... | [INFO] [stderr] 2348 | | 'unread: _, m::NoKind => (None, Box::new(K::Oops).without_loc()); [INFO] [stderr] 2349 | | }, [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2513 | let reason = match_next! { self; [INFO] [stderr] | __________________________- [INFO] [stderr] 2514 | | Tok::Str(s) in span => Some(s.with_loc(span)); [INFO] [stderr] 2515 | | 'unread: _ => None; [INFO] [stderr] 2516 | | }; [INFO] [stderr] | |_____________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2624 | let kind = match_next! { self; [INFO] [stderr] | ____________________________- [INFO] [stderr] 2625 | | // "{" "}" [INFO] [stderr] 2626 | | Tok::Punct(Punct::RBrace) => K::EmptyTable; [INFO] [stderr] 2627 | | [INFO] [stderr] ... | [INFO] [stderr] 2651 | | }; [INFO] [stderr] 2652 | | }; [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2542 | let kind = match_next! { self; [INFO] [stderr] | ____________________- [INFO] [stderr] 2543 | | Tok::Keyword(Keyword::Function) in span => { [INFO] [stderr] 2544 | | // either a "function" type or a function signature [INFO] [stderr] 2545 | | if self.lookahead(Punct::LParen) { [INFO] [stderr] ... | [INFO] [stderr] 2714 | | 'unread: _ => return Ok(None); [INFO] [stderr] 2715 | | }; [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2841 | / match_next! { self; [INFO] [stderr] 2842 | | Tok::Punct(Punct::Bang) in span => Ok(Returns::Never(span)); [INFO] [stderr] 2843 | | 'unread: _ => { [INFO] [stderr] 2844 | | let seq = self.parse_kailua_kind_seq()?; [INFO] [stderr] 2845 | | Ok(Returns::Seq(seq)) [INFO] [stderr] 2846 | | }; [INFO] [stderr] 2847 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2983 | let sigprefix = match_next! { parser; [INFO] [stderr] | _________________________________- [INFO] [stderr] 2984 | | Tok::Keyword(Keyword::Function) in span => Some(false.with_loc(span)); [INFO] [stderr] 2985 | | Tok::Keyword(Keyword::Method) in span => Some(true.with_loc(span)); [INFO] [stderr] 2986 | | 'unread: _ => { [INFO] [stderr] ... | [INFO] [stderr] 2992 | | } [INFO] [stderr] 2993 | | }; [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 3223 | let stmt = match_next! { parser; [INFO] [stderr] | ____________________________- [INFO] [stderr] 3224 | | // assume ... [INFO] [stderr] 3225 | | Tok::Keyword(Keyword::Assume) => { [INFO] [stderr] 3226 | | let (stmt, new_sibling_scope) = parser.try_parse_kailua_assume()?; [INFO] [stderr] ... | [INFO] [stderr] 3281 | | 'unread: _ => None; // empty `--#` is valid [INFO] [stderr] 3282 | | }; [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lex/lexer.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | bytes: bytes, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bytes` [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/lex/lexer.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | shebang: shebang, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `shebang` [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/lex/lexer.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | report: report, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `report` [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/lex/nesting.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | iter: iter, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `iter` [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/lex/nesting.rs:361:13 [INFO] [stderr] | [INFO] [stderr] 361 | tok: tok, depth: depth, category: category, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tok` [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/lex/nesting.rs:361:23 [INFO] [stderr] | [INFO] [stderr] 361 | tok: tok, depth: depth, category: category, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `depth` [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/lex/nesting.rs:361:37 [INFO] [stderr] | [INFO] [stderr] 361 | tok: tok, depth: depth, category: category, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `category` [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: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/string.rs:25:22 [INFO] [stderr] | [INFO] [stderr] 25 | b'\n' => write!(f, "\\n")?, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:369:13 [INFO] [stderr] | [INFO] [stderr] 369 | report: report, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `report` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:499:13 [INFO] [stderr] | [INFO] [stderr] 499 | tok: tok, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tok` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:855:51 [INFO] [stderr] | [INFO] [stderr] 855 | IndexedName { idx: self.last_token_idx(), name: name }.with_loc(span) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:880:56 [INFO] [stderr] | [INFO] [stderr] 880 | let localname = LocalName { def_span: id.span, kind: kind }; [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/parser.rs:1614:48 [INFO] [stderr] | [INFO] [stderr] 1614 | TypeSpec { base: name, modf: modf, kind: kind } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `modf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:1614:60 [INFO] [stderr] | [INFO] [stderr] 1614 | TypeSpec { base: name, modf: modf, kind: kind } [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/parser.rs:1694:30 [INFO] [stderr] | [INFO] [stderr] 1694 | let args = Seq { head: head, tail: tail }.with_loc(args.span); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `head` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:1694:42 [INFO] [stderr] | [INFO] [stderr] 1694 | let args = Seq { head: head, tail: tail }.with_loc(args.span); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tail` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:1698:25 [INFO] [stderr] | [INFO] [stderr] 1698 | let sig = Sig { attrs: attrs, args: args, returns: returns }; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `attrs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:1698:39 [INFO] [stderr] | [INFO] [stderr] 1698 | let sig = Sig { attrs: attrs, args: args, returns: returns }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:1698:51 [INFO] [stderr] | [INFO] [stderr] 1698 | let sig = Sig { attrs: attrs, args: args, returns: returns }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `returns` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:1769:20 [INFO] [stderr] | [INFO] [stderr] 1769 | Ok(Table { items: items }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `items` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2178:24 [INFO] [stderr] | [INFO] [stderr] 2178 | TypeSpec { base: base, modf: modf, kind: kind } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `base` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2178:36 [INFO] [stderr] | [INFO] [stderr] 2178 | TypeSpec { base: base, modf: modf, kind: kind } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `modf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2178:48 [INFO] [stderr] | [INFO] [stderr] 2178 | TypeSpec { base: base, modf: modf, kind: kind } [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/parser.rs:2180:24 [INFO] [stderr] | [INFO] [stderr] 2180 | TypeSpec { base: base, modf: MM::None, kind: None } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `base` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2206:32 [INFO] [stderr] | [INFO] [stderr] 2206 | Ok(Some(Attr { name: name, values: values })) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2206:44 [INFO] [stderr] | [INFO] [stderr] 2206 | Ok(Some(Attr { name: name, values: values })) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `values` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2263:40 [INFO] [stderr] | [INFO] [stderr] 2263 | Ok(SlotKind { modf: modf.base, kind: kind }.with_loc(begin..self.last_pos())) [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/parser.rs:2269:38 [INFO] [stderr] | [INFO] [stderr] 2269 | Ok(SlotKind { modf: M::None, kind: kind }.with_loc(begin..self.last_pos())) [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/parser.rs:2369:18 [INFO] [stderr] | [INFO] [stderr] 2369 | Ok(Seq { head: head, tail: tail }) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `head` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2369:30 [INFO] [stderr] | [INFO] [stderr] 2369 | Ok(Seq { head: head, tail: tail }) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tail` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2426:31 [INFO] [stderr] | [INFO] [stderr] 2426 | Ok(Seq { head: specs, tail: tail }.with_loc(begin..end)) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tail` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2452:23 [INFO] [stderr] | [INFO] [stderr] 2452 | Ok(FuncKind { args: args, returns: returns }.with_loc(span)) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:2452:35 [INFO] [stderr] | [INFO] [stderr] 2452 | Ok(FuncKind { args: args, returns: returns }.with_loc(span)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `returns` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:3004:43 [INFO] [stderr] | [INFO] [stderr] 3004 | let presig = Presig { prefix: prefix, args: args, returns: Some(returns) }; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `prefix` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:3004:59 [INFO] [stderr] | [INFO] [stderr] 3004 | let presig = Presig { prefix: prefix, args: args, returns: Some(returns) }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:3321:17 [INFO] [stderr] | [INFO] [stderr] 3321 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lang.rs:33:19 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn to_u32(&self) -> u32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lang.rs:37:16 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn lua(&self) -> Lua { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lang.rs:41:19 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn kailua(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lang.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | pub fn name(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/parser.rs:149:28 [INFO] [stderr] | [INFO] [stderr] 149 | fn recover() -> Self { () } [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lang.rs:138:17 [INFO] [stderr] | [INFO] [stderr] 138 | pub fn name(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 940 | / match_next! { self; [INFO] [stderr] 941 | | Tok::Name(name) in span => Some(self.indexed_name_from(name, span)); [INFO] [stderr] 942 | | 'unread: _ => None; [INFO] [stderr] 943 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 947 | / match_next! { self; [INFO] [stderr] 948 | | Tok::Name(name) in span => Ok(self.indexed_name_from(name, span)); [INFO] [stderr] 949 | | 'unread: _, m::NoName => Err(Stop::Recover); [INFO] [stderr] 950 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 954 | / match_next! { self; [INFO] [stderr] 955 | | Tok::Name(name) in span => Ok(name.with_loc(span)); [INFO] [stderr] 956 | | Tok::Keyword(keyword) in span => Ok(Name::from(keyword).with_loc(span)); [INFO] [stderr] 957 | | 'unread: _, m::NoName => Err(Stop::Recover); [INFO] [stderr] 958 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1185 | / match_next! { self; [INFO] [stderr] 1186 | | // for NAME "=" ... [INFO] [stderr] 1187 | | Tok::Punct(Punct::Eq) => { [INFO] [stderr] 1188 | | let start = self.parse_exp()?; [INFO] [stderr] ... | [INFO] [stderr] 1220 | | }; [INFO] [stderr] 1221 | | } [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1274 | / match_next! { self; [INFO] [stderr] 1275 | | // local function ... [INFO] [stderr] 1276 | | Tok::Keyword(Keyword::Function) => { [INFO] [stderr] 1277 | | let name = self.parse_name()?; [INFO] [stderr] ... | [INFO] [stderr] 1331 | | 'unread: _, m::NoFuncOrNameAfterLocal => Box::new(St::Oops); [INFO] [stderr] 1332 | | } [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1135 | let stmt = match_next! { self; [INFO] [stderr] | ____________________- [INFO] [stderr] 1136 | | Tok::Keyword(Keyword::Do) => { [INFO] [stderr] 1137 | | let block = self.recover(Self::parse_block, Keyword::End)?; [INFO] [stderr] 1138 | | Box::new(St::Do(block)) [INFO] [stderr] ... | [INFO] [stderr] 1436 | | }; [INFO] [stderr] 1437 | | }; [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1474 | / match_next! { self; [INFO] [stderr] 1475 | | Tok::Punct(Punct::LParen) => {}; [INFO] [stderr] 1476 | | [INFO] [stderr] 1477 | | // if no parentheses are found, the function parsing fails and should return Oops [INFO] [stderr] ... | [INFO] [stderr] 1481 | | }; [INFO] [stderr] 1482 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1489 | / match_next! { parser; [INFO] [stderr] 1490 | | Tok::Punct(Punct::DotDotDot) in span => { [INFO] [stderr] 1491 | | variadic = Some(span); [INFO] [stderr] 1492 | | }; [INFO] [stderr] ... | [INFO] [stderr] 1514 | | 'unread: _, m::BadFuncArg => return Err(Stop::Recover); [INFO] [stderr] 1515 | | } [INFO] [stderr] | |_____________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1719 | / match_next! { parser; [INFO] [stderr] 1720 | | // `,` [`}`] [INFO] [stderr] 1721 | | // `;` [`}`] [INFO] [stderr] 1722 | | Tok::Punct(Punct::Comma) | Tok::Punct(Punct::Semicolon) => {}; [INFO] [stderr] ... | [INFO] [stderr] 1727 | | 'unread: _, m::NoTableSep => return Err(Stop::Recover); [INFO] [stderr] 1728 | | } [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1748 | / match_next! { parser; [INFO] [stderr] 1749 | | Tok::Name(name) in span => { [INFO] [stderr] 1750 | | if parser.may_expect(Punct::Eq) { [INFO] [stderr] 1751 | | let key = Box::new(Ex::Str(Str::from(name))).with_loc(span); [INFO] [stderr] ... | [INFO] [stderr] 1764 | | }; [INFO] [stderr] 1765 | | } [INFO] [stderr] | |_____________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1775 | / match_next! { self; [INFO] [stderr] 1776 | | Tok::Punct(Punct::LParen) => { [INFO] [stderr] 1777 | | let mut args = Vec::new(); [INFO] [stderr] 1778 | | let (span, _) = self.recover_with( [INFO] [stderr] ... | [INFO] [stderr] 1792 | | 'unread: _ => Ok(None); [INFO] [stderr] 1793 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1799 | let exp = match_next! { self; [INFO] [stderr] | ___________________- [INFO] [stderr] 1800 | | Tok::Punct(Punct::LParen) => { [INFO] [stderr] 1801 | | let exp_ = self.recover(Self::parse_exp, Punct::RParen)?; [INFO] [stderr] 1802 | | Box::new(Ex::Exp(exp_)).with_loc(begin..self.last_pos()) [INFO] [stderr] ... | [INFO] [stderr] 1811 | | 'unread: _ => return Ok(None); [INFO] [stderr] 1812 | | }; [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1822 | / match_next! { self; [INFO] [stderr] 1823 | | // prefixexp "." ... [INFO] [stderr] 1824 | | Tok::Punct(Punct::Dot) => { [INFO] [stderr] 1825 | | if let Some(name) = self.try_parse_name() { [INFO] [stderr] ... | [INFO] [stderr] 1874 | | } [INFO] [stderr] 1875 | | }; [INFO] [stderr] | |______________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1918 | / match_next! { self; [INFO] [stderr] 1919 | | Tok::Keyword(Keyword::Nil) in span => Ok(Some(Box::new(Ex::Nil).with_loc(span))); [INFO] [stderr] 1920 | | Tok::Keyword(Keyword::False) in span => Ok(Some(Box::new(Ex::False).with_loc(span))); [INFO] [stderr] 1921 | | Tok::Keyword(Keyword::True) in span => Ok(Some(Box::new(Ex::True).with_loc(span))); [INFO] [stderr] ... | [INFO] [stderr] 1939 | | 'unread: _ => self.try_parse_prefix_exp(); [INFO] [stderr] 1940 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2215 | / match_next! { self; [INFO] [stderr] 2216 | | Tok::Name(name) in span => { [INFO] [stderr] 2217 | | Ok(Some(AttrValue::Name(Name::from(name).with_loc(span)).with_loc(span))) [INFO] [stderr] 2218 | | }; [INFO] [stderr] 2219 | | 'unread: _ => Ok(None); [INFO] [stderr] 2220 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2291 | / match_next! { parser; [INFO] [stderr] 2292 | | Tok::Name(name) in span => { [INFO] [stderr] 2293 | | let name = parser.indexed_name_from(name, span); [INFO] [stderr] 2294 | | if parser.lookahead(Punct::Colon) { [INFO] [stderr] ... | [INFO] [stderr] 2319 | | }; [INFO] [stderr] 2320 | | } [INFO] [stderr] | |_____________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2326 | None => match_next! { self; [INFO] [stderr] | _____________________- [INFO] [stderr] 2327 | | Tok::Punct(Punct::DotDotDot) in span => { [INFO] [stderr] 2328 | | self.error(span, m::NoKindBeforeEllipsis {}).done()?; [INFO] [stderr] 2329 | | // pretend that (an invalid) `(...)` is `(?...)` [INFO] [stderr] ... | [INFO] [stderr] 2332 | | 'unread: _ => return Ok(Seq { head: head, tail: None }); [INFO] [stderr] 2333 | | }, [INFO] [stderr] | |_____________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2341 | None => match_next! { self; [INFO] [stderr] | _________________________- [INFO] [stderr] 2342 | | Tok::Punct(Punct::DotDotDot) in span => { [INFO] [stderr] 2343 | | self.error(span, m::NoKindBeforeEllipsis {}).done()?; [INFO] [stderr] 2344 | | // pretend that (an invalid) `(, ...)` is `(, ?...)` [INFO] [stderr] ... | [INFO] [stderr] 2348 | | 'unread: _, m::NoKind => (None, Box::new(K::Oops).without_loc()); [INFO] [stderr] 2349 | | }, [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2513 | let reason = match_next! { self; [INFO] [stderr] | __________________________- [INFO] [stderr] 2514 | | Tok::Str(s) in span => Some(s.with_loc(span)); [INFO] [stderr] 2515 | | 'unread: _ => None; [INFO] [stderr] 2516 | | }; [INFO] [stderr] | |_____________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2624 | let kind = match_next! { self; [INFO] [stderr] | ____________________________- [INFO] [stderr] 2625 | | // "{" "}" [INFO] [stderr] 2626 | | Tok::Punct(Punct::RBrace) => K::EmptyTable; [INFO] [stderr] 2627 | | [INFO] [stderr] ... | [INFO] [stderr] 2651 | | }; [INFO] [stderr] 2652 | | }; [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2542 | let kind = match_next! { self; [INFO] [stderr] | ____________________- [INFO] [stderr] 2543 | | Tok::Keyword(Keyword::Function) in span => { [INFO] [stderr] 2544 | | // either a "function" type or a function signature [INFO] [stderr] 2545 | | if self.lookahead(Punct::LParen) { [INFO] [stderr] ... | [INFO] [stderr] 2714 | | 'unread: _ => return Ok(None); [INFO] [stderr] 2715 | | }; [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2841 | / match_next! { self; [INFO] [stderr] 2842 | | Tok::Punct(Punct::Bang) in span => Ok(Returns::Never(span)); [INFO] [stderr] 2843 | | 'unread: _ => { [INFO] [stderr] 2844 | | let seq = self.parse_kailua_kind_seq()?; [INFO] [stderr] 2845 | | Ok(Returns::Seq(seq)) [INFO] [stderr] 2846 | | }; [INFO] [stderr] 2847 | | } [INFO] [stderr] | |_________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 2983 | let sigprefix = match_next! { parser; [INFO] [stderr] | _________________________________- [INFO] [stderr] 2984 | | Tok::Keyword(Keyword::Function) in span => Some(false.with_loc(span)); [INFO] [stderr] 2985 | | Tok::Keyword(Keyword::Method) in span => Some(true.with_loc(span)); [INFO] [stderr] 2986 | | 'unread: _ => { [INFO] [stderr] ... | [INFO] [stderr] 2992 | | } [INFO] [stderr] 2993 | | }; [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/parser.rs:342:29 [INFO] [stderr] | [INFO] [stderr] 342 | $(tok @ (_, Spanned { base: $up, .. }))|+ => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 3223 | let stmt = match_next! { parser; [INFO] [stderr] | ____________________________- [INFO] [stderr] 3224 | | // assume ... [INFO] [stderr] 3225 | | Tok::Keyword(Keyword::Assume) => { [INFO] [stderr] 3226 | | let (stmt, new_sibling_scope) = parser.try_parse_kailua_assume()?; [INFO] [stderr] ... | [INFO] [stderr] 3281 | | 'unread: _ => None; // empty `--#` is valid [INFO] [stderr] 3282 | | }; [INFO] [stderr] | |_________________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: Try with `Spanned { .. }` instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/lex/lexer.rs:50:70 [INFO] [stderr] | [INFO] [stderr] 50 | let shebang = if first.base == U8(b'#') || first.base == U16(b'#' as u16) { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'#')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/lex/lexer.rs:55:65 [INFO] [stderr] | [INFO] [stderr] 55 | if first.base == U8(b'\n') || first.base == U16(b'\n' as u16) { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(b'\n')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lex/lexer.rs:158:41 [INFO] [stderr] | [INFO] [stderr] 158 | let c = 0x10000 + ((c as u32 & 0x3ff << 10) | (c2 as u32 & 0x3ff)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lex/lexer.rs:158:68 [INFO] [stderr] | [INFO] [stderr] 158 | let c = 0x10000 + ((c as u32 & 0x3ff << 10) | (c2 as u32 & 0x3ff)); [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(c2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lex/lexer.rs:298:42 [INFO] [stderr] | [INFO] [stderr] 298 | let n_ = n as u32 * 10 + (d.u8() - b'0') as u32; [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lex/lexer.rs:298:58 [INFO] [stderr] | [INFO] [stderr] 298 | let n_ = n as u32 * 10 + (d.u8() - b'0') as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(d.u8() - b'0')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 39 [INFO] [stderr] --> src/lex/lexer.rs:343:5 [INFO] [stderr] | [INFO] [stderr] 343 | / pub fn next_token(&mut self) -> diag::Result>> { [INFO] [stderr] 344 | | if let Some(span) = self.shebang.take() { [INFO] [stderr] 345 | | return Ok(Some(Tok::Comment.with_loc(span))); [INFO] [stderr] 346 | | } [INFO] [stderr] ... | [INFO] [stderr] 597 | | } [INFO] [stderr] 598 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lex/lexer.rs:531:28 [INFO] [stderr] | [INFO] [stderr] 531 | if let Some(_) = self.try(|c| c == U8(b'=')) { return tok!(EqEq); } [INFO] [stderr] | -------^^^^^^^----------------------------------------------------- help: try this: `if self.try(|c| c == U8(b'=')).is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lex/lexer.rs:535:28 [INFO] [stderr] | [INFO] [stderr] 535 | if let Some(_) = self.try(|c| c == U8(b'=')) { return tok!(TildeEq); } [INFO] [stderr] | -------^^^^^^^-------------------------------------------------------- help: try this: `if self.try(|c| c == U8(b'=')).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lex/lexer.rs:540:28 [INFO] [stderr] | [INFO] [stderr] 540 | if let Some(_) = self.try(|c| c == U8(b'=')) { return tok!(LtEq); } [INFO] [stderr] | -------^^^^^^^----------------------------------------------------- help: try this: `if self.try(|c| c == U8(b'=')).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lex/lexer.rs:544:28 [INFO] [stderr] | [INFO] [stderr] 544 | if let Some(_) = self.try(|c| c == U8(b'=')) { return tok!(GtEq); } [INFO] [stderr] | -------^^^^^^^----------------------------------------------------- help: try this: `if self.try(|c| c == U8(b'=')).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lex/lexer.rs:556:28 [INFO] [stderr] | [INFO] [stderr] 556 | if let Some(_) = self.try(|c| c == U8(b'.')) { [INFO] [stderr] | _____________________- ^^^^^^^ [INFO] [stderr] 557 | | if let Some(_) = self.try(|c| c == U8(b'.')) { return tok!(DotDotDot); } [INFO] [stderr] 558 | | return tok!(DotDot); [INFO] [stderr] 559 | | } [INFO] [stderr] | |_____________________- help: try this: `if self.try(|c| c == U8(b'.')).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lex/lexer.rs:557:32 [INFO] [stderr] | [INFO] [stderr] 557 | if let Some(_) = self.try(|c| c == U8(b'.')) { return tok!(DotDotDot); } [INFO] [stderr] | -------^^^^^^^---------------------------------------------------------- help: try this: `if self.try(|c| c == U8(b'.')).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lex/nesting.rs:38:22 [INFO] [stderr] | [INFO] [stderr] 38 | fn is_stmt_level(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lex/nesting.rs:63:21 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn to_usize(&self) -> usize { self.0 as usize } [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lex/nesting.rs:340:25 [INFO] [stderr] | [INFO] [stderr] 340 | assert!(self.open_nestings.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.open_nestings.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: some ranges overlap [INFO] [stderr] --> src/string.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | b'\x20'...b'\x7e' => write!(f, "{}", c as char)?, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_overlapping_arm)] on by default [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/string.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | b'"' | b'\'' | b'`' | b'\\' => write!(f, "\\{}", c as char)?, [INFO] [stderr] | ^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/ast.rs:383:5 [INFO] [stderr] | [INFO] [stderr] 383 | Func(Sig, Scope, Spanned), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/ast.rs:383:5 [INFO] [stderr] | [INFO] [stderr] 383 | Func(Sig, Scope, Spanned), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ast.rs:459:19 [INFO] [stderr] | [INFO] [stderr] 459 | pub fn symbol(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ast.rs:504:19 [INFO] [stderr] | [INFO] [stderr] 504 | pub fn symbol(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/ast.rs:600:5 [INFO] [stderr] | [INFO] [stderr] 600 | / MethodDecl(Spanned<(Spanned, Vec>)>, [INFO] [stderr] 601 | | Option>, Sig, Scope, Spanned), [INFO] [stderr] | |______________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/ast.rs:600:5 [INFO] [stderr] | [INFO] [stderr] 600 | / MethodDecl(Spanned<(Spanned, Vec>)>, [INFO] [stderr] 601 | | Option>, Sig, Scope, Spanned), [INFO] [stderr] | |______________________________________________________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/ast.rs:799:15 [INFO] [stderr] | [INFO] [stderr] 799 | pub args: Seq<(Option>, Spanned), Spanned>, [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] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast.rs:811:13 [INFO] [stderr] | [INFO] [stderr] 811 | / if let &Some(ref name) = name { [INFO] [stderr] 812 | | write!(f, "{:?}: ", name)?; [INFO] [stderr] 813 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 811 | if let Some(ref name) = *name { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:252:11 [INFO] [stderr] | [INFO] [stderr] 252 | args: Spanned>>, Spanned>>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: consider using `Option` instead of `Option>` or a custom enum if you need to distinguish all 3 cases [INFO] [stderr] --> src/parser.rs:836:44 [INFO] [stderr] | [INFO] [stderr] 836 | fn builtin_kind(&self, name: &[u8]) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_option)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parser.rs:972:24 [INFO] [stderr] | [INFO] [stderr] 972 | let last = match &*stmt.base { [INFO] [stderr] | ________________________^ [INFO] [stderr] 973 | | &St::Return(..) | &St::Break => true, [INFO] [stderr] 974 | | _ => false, [INFO] [stderr] 975 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 972 | let last = match *stmt.base { [INFO] [stderr] 973 | St::Return(..) | St::Break => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parser.rs:978:46 [INFO] [stderr] | [INFO] [stderr] 978 | excessspan = Some(excessspan.unwrap_or(Span::dummy()) | stmt.span); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(Span::dummy)` [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: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parser.rs:1052:24 [INFO] [stderr] | [INFO] [stderr] 1052 | let last = match &*stmt.base { [INFO] [stderr] | ________________________^ [INFO] [stderr] 1053 | | &St::Return(..) | &St::Break => true, [INFO] [stderr] 1054 | | _ => false, [INFO] [stderr] 1055 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 1052 | let last = match *stmt.base { [INFO] [stderr] 1053 | St::Return(..) | St::Break => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parser.rs:1058:46 [INFO] [stderr] | [INFO] [stderr] 1058 | excessspan = Some(excessspan.unwrap_or(Span::dummy()) | stmt.span); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(Span::dummy)` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:1073:16 [INFO] [stderr] | [INFO] [stderr] 1073 | specs: Spanned>)>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 31 [INFO] [stderr] --> src/parser.rs:1108:5 [INFO] [stderr] | [INFO] [stderr] 1108 | / fn try_parse_stmt(&mut self) -> Result>> { [INFO] [stderr] 1109 | | trace!("parsing stmt"); [INFO] [stderr] 1110 | | let begin = self.pos(); [INFO] [stderr] 1111 | | [INFO] [stderr] ... | [INFO] [stderr] 1439 | | Ok(Some(stmt.with_loc(begin..self.last_pos()))) [INFO] [stderr] 1440 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:1458:34 [INFO] [stderr] | [INFO] [stderr] 1458 | funcspec: Option>, Option>)>>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:1459:16 [INFO] [stderr] | [INFO] [stderr] 1459 | -> Result>, Sig, Scope, Spanned)>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/parser.rs:2217:41 [INFO] [stderr] | [INFO] [stderr] 2217 | Ok(Some(AttrValue::Name(Name::from(name).with_loc(span)).with_loc(span))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `Name::from()`: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2278:12 [INFO] [stderr] | [INFO] [stderr] 2278 | -> Result>, Spanned), Spanned>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2283:63 [INFO] [stderr] | [INFO] [stderr] 2283 | let mut try_parse_named_kind = |parser: &mut Self| -> Result>, [INFO] [stderr] | _______________________________________________________________^ [INFO] [stderr] 2284 | | Spanned)>> { [INFO] [stderr] | |_____________________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2377:16 [INFO] [stderr] | [INFO] [stderr] 2377 | -> Result>>, [INFO] [stderr] | ________________^ [INFO] [stderr] 2378 | | Spanned>>>>> { [INFO] [stderr] | |___________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2456:16 [INFO] [stderr] | [INFO] [stderr] 2456 | -> Result, Spanned)>>>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2488:16 [INFO] [stderr] | [INFO] [stderr] 2488 | -> Result, Spanned)>>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/parser.rs:2704:20 [INFO] [stderr] | [INFO] [stderr] 2704 | if i32::MIN as f64 <= v && v <= i32::MAX as f64 && v.floor() == v { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(i32::MIN)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/parser.rs:2704:49 [INFO] [stderr] | [INFO] [stderr] 2704 | if i32::MIN as f64 <= v && v <= i32::MAX as f64 && v.floor() == v { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(i32::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/parser.rs:2704:68 [INFO] [stderr] | [INFO] [stderr] 2704 | if i32::MIN as f64 <= v && v <= i32::MAX as f64 && v.floor() == v { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(v.floor() - v).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/parser.rs:2704:68 [INFO] [stderr] | [INFO] [stderr] 2704 | if i32::MIN as f64 <= v && v <= i32::MAX as f64 && v.floor() == v { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2851:12 [INFO] [stderr] | [INFO] [stderr] 2851 | -> Result, Option>)>>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2889:12 [INFO] [stderr] | [INFO] [stderr] 2889 | -> Result>)>>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2897:12 [INFO] [stderr] | [INFO] [stderr] 2897 | -> Result>)>>>>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2961:16 [INFO] [stderr] | [INFO] [stderr] 2961 | -> Result>, Option>)>>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: consider using `Option` instead of `Option>` or a custom enum if you need to distinguish all 3 cases [INFO] [stderr] --> src/parser.rs:3214:51 [INFO] [stderr] | [INFO] [stderr] 3214 | fn try_parse_kailua_spec(&mut self) -> Result>>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `kailua_syntax`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lang.rs:33:19 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn to_u32(&self) -> u32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lang.rs:37:16 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn lua(&self) -> Lua { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lang.rs:41:19 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn kailua(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lang.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | pub fn name(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lang.rs:138:17 [INFO] [stderr] | [INFO] [stderr] 138 | pub fn name(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/lex/lexer.rs:50:70 [INFO] [stderr] | [INFO] [stderr] 50 | let shebang = if first.base == U8(b'#') || first.base == U16(b'#' as u16) { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b'#')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/lex/lexer.rs:55:65 [INFO] [stderr] | [INFO] [stderr] 55 | if first.base == U8(b'\n') || first.base == U16(b'\n' as u16) { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(b'\n')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lex/lexer.rs:158:41 [INFO] [stderr] | [INFO] [stderr] 158 | let c = 0x10000 + ((c as u32 & 0x3ff << 10) | (c2 as u32 & 0x3ff)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lex/lexer.rs:158:68 [INFO] [stderr] | [INFO] [stderr] 158 | let c = 0x10000 + ((c as u32 & 0x3ff << 10) | (c2 as u32 & 0x3ff)); [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(c2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lex/lexer.rs:298:42 [INFO] [stderr] | [INFO] [stderr] 298 | let n_ = n as u32 * 10 + (d.u8() - b'0') as u32; [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lex/lexer.rs:298:58 [INFO] [stderr] | [INFO] [stderr] 298 | let n_ = n as u32 * 10 + (d.u8() - b'0') as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(d.u8() - b'0')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 39 [INFO] [stderr] --> src/lex/lexer.rs:343:5 [INFO] [stderr] | [INFO] [stderr] 343 | / pub fn next_token(&mut self) -> diag::Result>> { [INFO] [stderr] 344 | | if let Some(span) = self.shebang.take() { [INFO] [stderr] 345 | | return Ok(Some(Tok::Comment.with_loc(span))); [INFO] [stderr] 346 | | } [INFO] [stderr] ... | [INFO] [stderr] 597 | | } [INFO] [stderr] 598 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lex/lexer.rs:531:28 [INFO] [stderr] | [INFO] [stderr] 531 | if let Some(_) = self.try(|c| c == U8(b'=')) { return tok!(EqEq); } [INFO] [stderr] | -------^^^^^^^----------------------------------------------------- help: try this: `if self.try(|c| c == U8(b'=')).is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lex/lexer.rs:535:28 [INFO] [stderr] | [INFO] [stderr] 535 | if let Some(_) = self.try(|c| c == U8(b'=')) { return tok!(TildeEq); } [INFO] [stderr] | -------^^^^^^^-------------------------------------------------------- help: try this: `if self.try(|c| c == U8(b'=')).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lex/lexer.rs:540:28 [INFO] [stderr] | [INFO] [stderr] 540 | if let Some(_) = self.try(|c| c == U8(b'=')) { return tok!(LtEq); } [INFO] [stderr] | -------^^^^^^^----------------------------------------------------- help: try this: `if self.try(|c| c == U8(b'=')).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lex/lexer.rs:544:28 [INFO] [stderr] | [INFO] [stderr] 544 | if let Some(_) = self.try(|c| c == U8(b'=')) { return tok!(GtEq); } [INFO] [stderr] | -------^^^^^^^----------------------------------------------------- help: try this: `if self.try(|c| c == U8(b'=')).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lex/lexer.rs:556:28 [INFO] [stderr] | [INFO] [stderr] 556 | if let Some(_) = self.try(|c| c == U8(b'.')) { [INFO] [stderr] | _____________________- ^^^^^^^ [INFO] [stderr] 557 | | if let Some(_) = self.try(|c| c == U8(b'.')) { return tok!(DotDotDot); } [INFO] [stderr] 558 | | return tok!(DotDot); [INFO] [stderr] 559 | | } [INFO] [stderr] | |_____________________- help: try this: `if self.try(|c| c == U8(b'.')).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lex/lexer.rs:557:32 [INFO] [stderr] | [INFO] [stderr] 557 | if let Some(_) = self.try(|c| c == U8(b'.')) { return tok!(DotDotDot); } [INFO] [stderr] | -------^^^^^^^---------------------------------------------------------- help: try this: `if self.try(|c| c == U8(b'.')).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lex/nesting.rs:38:22 [INFO] [stderr] | [INFO] [stderr] 38 | fn is_stmt_level(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lex/nesting.rs:63:21 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn to_usize(&self) -> usize { self.0 as usize } [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lex/nesting.rs:340:25 [INFO] [stderr] | [INFO] [stderr] 340 | assert!(self.open_nestings.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.open_nestings.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: some ranges overlap [INFO] [stderr] --> src/string.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | b'\x20'...b'\x7e' => write!(f, "{}", c as char)?, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_overlapping_arm)] on by default [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/string.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | b'"' | b'\'' | b'`' | b'\\' => write!(f, "\\{}", c as char)?, [INFO] [stderr] | ^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/ast.rs:383:5 [INFO] [stderr] | [INFO] [stderr] 383 | Func(Sig, Scope, Spanned), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/ast.rs:383:5 [INFO] [stderr] | [INFO] [stderr] 383 | Func(Sig, Scope, Spanned), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ast.rs:459:19 [INFO] [stderr] | [INFO] [stderr] 459 | pub fn symbol(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ast.rs:504:19 [INFO] [stderr] | [INFO] [stderr] 504 | pub fn symbol(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/ast.rs:600:5 [INFO] [stderr] | [INFO] [stderr] 600 | / MethodDecl(Spanned<(Spanned, Vec>)>, [INFO] [stderr] 601 | | Option>, Sig, Scope, Spanned), [INFO] [stderr] | |______________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/ast.rs:600:5 [INFO] [stderr] | [INFO] [stderr] 600 | / MethodDecl(Spanned<(Spanned, Vec>)>, [INFO] [stderr] 601 | | Option>, Sig, Scope, Spanned), [INFO] [stderr] | |______________________________________________________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/ast.rs:799:15 [INFO] [stderr] | [INFO] [stderr] 799 | pub args: Seq<(Option>, Spanned), Spanned>, [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] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast.rs:811:13 [INFO] [stderr] | [INFO] [stderr] 811 | / if let &Some(ref name) = name { [INFO] [stderr] 812 | | write!(f, "{:?}: ", name)?; [INFO] [stderr] 813 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 811 | if let Some(ref name) = *name { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:252:11 [INFO] [stderr] | [INFO] [stderr] 252 | args: Spanned>>, Spanned>>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: consider using `Option` instead of `Option>` or a custom enum if you need to distinguish all 3 cases [INFO] [stderr] --> src/parser.rs:836:44 [INFO] [stderr] | [INFO] [stderr] 836 | fn builtin_kind(&self, name: &[u8]) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_option)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parser.rs:972:24 [INFO] [stderr] | [INFO] [stderr] 972 | let last = match &*stmt.base { [INFO] [stderr] | ________________________^ [INFO] [stderr] 973 | | &St::Return(..) | &St::Break => true, [INFO] [stderr] 974 | | _ => false, [INFO] [stderr] 975 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 972 | let last = match *stmt.base { [INFO] [stderr] 973 | St::Return(..) | St::Break => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parser.rs:978:46 [INFO] [stderr] | [INFO] [stderr] 978 | excessspan = Some(excessspan.unwrap_or(Span::dummy()) | stmt.span); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(Span::dummy)` [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: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/parser.rs:1052:24 [INFO] [stderr] | [INFO] [stderr] 1052 | let last = match &*stmt.base { [INFO] [stderr] | ________________________^ [INFO] [stderr] 1053 | | &St::Return(..) | &St::Break => true, [INFO] [stderr] 1054 | | _ => false, [INFO] [stderr] 1055 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 1052 | let last = match *stmt.base { [INFO] [stderr] 1053 | St::Return(..) | St::Break => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parser.rs:1058:46 [INFO] [stderr] | [INFO] [stderr] 1058 | excessspan = Some(excessspan.unwrap_or(Span::dummy()) | stmt.span); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(Span::dummy)` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:1073:16 [INFO] [stderr] | [INFO] [stderr] 1073 | specs: Spanned>)>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 31 [INFO] [stderr] --> src/parser.rs:1108:5 [INFO] [stderr] | [INFO] [stderr] 1108 | / fn try_parse_stmt(&mut self) -> Result>> { [INFO] [stderr] 1109 | | trace!("parsing stmt"); [INFO] [stderr] 1110 | | let begin = self.pos(); [INFO] [stderr] 1111 | | [INFO] [stderr] ... | [INFO] [stderr] 1439 | | Ok(Some(stmt.with_loc(begin..self.last_pos()))) [INFO] [stderr] 1440 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:1458:34 [INFO] [stderr] | [INFO] [stderr] 1458 | funcspec: Option>, Option>)>>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:1459:16 [INFO] [stderr] | [INFO] [stderr] 1459 | -> Result>, Sig, Scope, Spanned)>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/parser.rs:2217:41 [INFO] [stderr] | [INFO] [stderr] 2217 | Ok(Some(AttrValue::Name(Name::from(name).with_loc(span)).with_loc(span))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider removing `Name::from()`: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2278:12 [INFO] [stderr] | [INFO] [stderr] 2278 | -> Result>, Spanned), Spanned>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2283:63 [INFO] [stderr] | [INFO] [stderr] 2283 | let mut try_parse_named_kind = |parser: &mut Self| -> Result>, [INFO] [stderr] | _______________________________________________________________^ [INFO] [stderr] 2284 | | Spanned)>> { [INFO] [stderr] | |_____________________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2377:16 [INFO] [stderr] | [INFO] [stderr] 2377 | -> Result>>, [INFO] [stderr] | ________________^ [INFO] [stderr] 2378 | | Spanned>>>>> { [INFO] [stderr] | |___________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2456:16 [INFO] [stderr] | [INFO] [stderr] 2456 | -> Result, Spanned)>>>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2488:16 [INFO] [stderr] | [INFO] [stderr] 2488 | -> Result, Spanned)>>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/parser.rs:2704:20 [INFO] [stderr] | [INFO] [stderr] 2704 | if i32::MIN as f64 <= v && v <= i32::MAX as f64 && v.floor() == v { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(i32::MIN)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/parser.rs:2704:49 [INFO] [stderr] | [INFO] [stderr] 2704 | if i32::MIN as f64 <= v && v <= i32::MAX as f64 && v.floor() == v { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(i32::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/parser.rs:2704:68 [INFO] [stderr] | [INFO] [stderr] 2704 | if i32::MIN as f64 <= v && v <= i32::MAX as f64 && v.floor() == v { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(v.floor() - v).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/parser.rs:2704:68 [INFO] [stderr] | [INFO] [stderr] 2704 | if i32::MIN as f64 <= v && v <= i32::MAX as f64 && v.floor() == v { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2851:12 [INFO] [stderr] | [INFO] [stderr] 2851 | -> Result, Option>)>>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2889:12 [INFO] [stderr] | [INFO] [stderr] 2889 | -> Result>)>>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2897:12 [INFO] [stderr] | [INFO] [stderr] 2897 | -> Result>)>>>>> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/parser.rs:2961:16 [INFO] [stderr] | [INFO] [stderr] 2961 | -> Result>, Option>)>>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: consider using `Option` instead of `Option>` or a custom enum if you need to distinguish all 3 cases [INFO] [stderr] --> src/parser.rs:3214:51 [INFO] [stderr] | [INFO] [stderr] 3214 | fn try_parse_kailua_spec(&mut self) -> Result>>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `kailua_syntax`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "f8a90e1f66609bfd0fb38b30da60714f476af3d483b9dbdc5f42b71b09f435a0"` [INFO] running `"docker" "rm" "-f" "f8a90e1f66609bfd0fb38b30da60714f476af3d483b9dbdc5f42b71b09f435a0"` [INFO] [stdout] f8a90e1f66609bfd0fb38b30da60714f476af3d483b9dbdc5f42b71b09f435a0