[INFO] cloning repository https://github.com/linyinfeng/rspg
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/linyinfeng/rspg" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flinyinfeng%2Frspg", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flinyinfeng%2Frspg'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b431fb00f34ff81ae5425e14494747df0c9e297b
[INFO] checking linyinfeng/rspg against master#3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0 for pr-143164
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flinyinfeng%2Frspg" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/linyinfeng/rspg
[INFO] finished tweaking git repo https://github.com/linyinfeng/rspg
[INFO] tweaked toml for git repo https://github.com/linyinfeng/rspg written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/linyinfeng/rspg on toolchain 3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 93 packages to latest compatible versions
[INFO] [stderr]       Adding env_logger v0.10.2 (available: v0.11.8)
[INFO] [stderr]       Adding ron v0.8.1 (available: v0.10.1)
[INFO] [stderr]       Adding rustyline v10.1.1 (available: v16.0.0)
[INFO] [stderr]       Adding syn v1.0.109 (available: v2.0.104)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bc7f99f2a9f8035e7785f09ca1d546171bdddafe6b1ad04419992ff28f5a3db5
[INFO] running `Command { std: "docker" "start" "-a" "bc7f99f2a9f8035e7785f09ca1d546171bdddafe6b1ad04419992ff28f5a3db5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bc7f99f2a9f8035e7785f09ca1d546171bdddafe6b1ad04419992ff28f5a3db5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bc7f99f2a9f8035e7785f09ca1d546171bdddafe6b1ad04419992ff28f5a3db5", kill_on_drop: false }`
[INFO] [stdout] bc7f99f2a9f8035e7785f09ca1d546171bdddafe6b1ad04419992ff28f5a3db5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 813dd877ea1da255bb83d18a7b84eb5040bc294307504a7303ed3217913b507f
[INFO] running `Command { std: "docker" "start" "-a" "813dd877ea1da255bb83d18a7b84eb5040bc294307504a7303ed3217913b507f", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]     Checking cfg-if v1.0.1
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking encode_unicode v1.0.0
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking endian-type v0.1.2
[INFO] [stderr]     Checking unicode-segmentation v1.12.0
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking nibble_vec v0.1.0
[INFO] [stderr]     Checking humantime v2.2.0
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]     Checking radix_trie v0.2.1
[INFO] [stderr]     Checking csv-core v0.1.12
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking dirs-sys-next v0.1.2
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]     Checking dirs-next v2.0.0
[INFO] [stderr]     Checking term v0.7.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking csv v1.3.1
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking prettytable-rs v0.10.0
[INFO] [stderr]     Checking rspg v0.0.4-alpha (/opt/rustwide/workdir/rspg)
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/grammar.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 271 |         &self,
[INFO] [stdout]     |         ^^^^^ this lifetime flows to the output
[INFO] [stdout] 272 |     ) -> iter::Map<
[INFO] [stdout] 273 |         slice::Iter<(N, std::vec::Vec<RuleIndex>)>,
[INFO] [stdout]     |         ------------------------------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 273 |         slice::Iter<'_, (N, std::vec::Vec<RuleIndex>)>,
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/grammar.rs:282:22
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn terminals(&self) -> std::slice::Iter<T> {
[INFO] [stdout]     |                      ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn terminals(&self) -> std::slice::Iter<'_, T> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/grammar.rs:286:18
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn rules(&self) -> std::slice::Iter<Rule> {
[INFO] [stdout]     |                  ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn rules(&self) -> std::slice::Iter<'_, Rule> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/grammar.rs:290:28
[INFO] [stdout]     |
[INFO] [stdout] 290 |     pub fn rules_with_left(&self, nonterminal: NonterminalIndex) -> std::slice::Iter<RuleIndex> {
[INFO] [stdout]     |                            ^^^^^ this lifetime flows to the output  --------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 290 |     pub fn rules_with_left(&self, nonterminal: NonterminalIndex) -> std::slice::Iter<'_, RuleIndex> {
[INFO] [stdout]     |                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/lr1/item.rs:221:27
[INFO] [stdout]     |
[INFO] [stdout] 221 |     pub fn finished<N, T>(&self, grammar: &Grammar<N, T>) -> BTreeSet<ItemRef>
[INFO] [stdout]     |                           ^^^^^ this lifetime flows to the output     ------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 221 |     pub fn finished<N, T>(&self, grammar: &Grammar<N, T>) -> BTreeSet<ItemRef<'_>>
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rspg-macros v0.0.4-alpha (/opt/rustwide/workdir/rspg-macros)
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/grammar.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 271 |         &self,
[INFO] [stdout]     |         ^^^^^ this lifetime flows to the output
[INFO] [stdout] 272 |     ) -> iter::Map<
[INFO] [stdout] 273 |         slice::Iter<(N, std::vec::Vec<RuleIndex>)>,
[INFO] [stdout]     |         ------------------------------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 273 |         slice::Iter<'_, (N, std::vec::Vec<RuleIndex>)>,
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/grammar.rs:282:22
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn terminals(&self) -> std::slice::Iter<T> {
[INFO] [stdout]     |                      ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn terminals(&self) -> std::slice::Iter<'_, T> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/grammar.rs:286:18
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn rules(&self) -> std::slice::Iter<Rule> {
[INFO] [stdout]     |                  ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn rules(&self) -> std::slice::Iter<'_, Rule> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/grammar.rs:290:28
[INFO] [stdout]     |
[INFO] [stdout] 290 |     pub fn rules_with_left(&self, nonterminal: NonterminalIndex) -> std::slice::Iter<RuleIndex> {
[INFO] [stdout]     |                            ^^^^^ this lifetime flows to the output  --------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 290 |     pub fn rules_with_left(&self, nonterminal: NonterminalIndex) -> std::slice::Iter<'_, RuleIndex> {
[INFO] [stdout]     |                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/lr1/item.rs:221:27
[INFO] [stdout]     |
[INFO] [stdout] 221 |     pub fn finished<N, T>(&self, grammar: &Grammar<N, T>) -> BTreeSet<ItemRef>
[INFO] [stdout]     |                           ^^^^^ this lifetime flows to the output     ------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 221 |     pub fn finished<N, T>(&self, grammar: &Grammar<N, T>) -> BTreeSet<ItemRef<'_>>
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/grammar.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 271 |         &self,
[INFO] [stdout]     |         ^^^^^ this lifetime flows to the output
[INFO] [stdout] 272 |     ) -> iter::Map<
[INFO] [stdout] 273 |         slice::Iter<(N, std::vec::Vec<RuleIndex>)>,
[INFO] [stdout]     |         ------------------------------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 273 |         slice::Iter<'_, (N, std::vec::Vec<RuleIndex>)>,
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/grammar.rs:282:22
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn terminals(&self) -> std::slice::Iter<T> {
[INFO] [stdout]     |                      ^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn terminals(&self) -> std::slice::Iter<'_, T> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/grammar.rs:286:18
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn rules(&self) -> std::slice::Iter<Rule> {
[INFO] [stdout]     |                  ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn rules(&self) -> std::slice::Iter<'_, Rule> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/grammar.rs:290:28
[INFO] [stdout]     |
[INFO] [stdout] 290 |     pub fn rules_with_left(&self, nonterminal: NonterminalIndex) -> std::slice::Iter<RuleIndex> {
[INFO] [stdout]     |                            ^^^^^ this lifetime flows to the output  --------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 290 |     pub fn rules_with_left(&self, nonterminal: NonterminalIndex) -> std::slice::Iter<'_, RuleIndex> {
[INFO] [stdout]     |                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rspg/src/lr1/item.rs:221:27
[INFO] [stdout]     |
[INFO] [stdout] 221 |     pub fn finished<N, T>(&self, grammar: &Grammar<N, T>) -> BTreeSet<ItemRef>
[INFO] [stdout]     |                           ^^^^^ this lifetime flows to the output     ------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 221 |     pub fn finished<N, T>(&self, grammar: &Grammar<N, T>) -> BTreeSet<ItemRef<'_>>
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start` and `semicolon` are never read
[INFO] [stdout]   --> rspg-macros/src/generate/data.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Start {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 30 |     pub start: keyword::start,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 31 |     pub nonterminal: Ident,
[INFO] [stdout] 32 |     pub semicolon: Token![;],
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Start` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `error` and `semicolon` are never read
[INFO] [stdout]    --> rspg-macros/src/generate/data.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub struct ErrorDescription {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 244 |     pub error: keyword::error,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 245 |     pub ty: Type,
[INFO] [stdout] 246 |     pub semicolon: Token![;],
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ErrorDescription` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nonterminal`, `comma`, and `semicolon` are never read
[INFO] [stdout]    --> rspg-macros/src/generate/data.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub struct NonterminalDescription {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 261 |     pub nonterminal: keyword::nonterminal,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 262 |     pub ident: Ident,
[INFO] [stdout] 263 |     pub comma: Token![:],
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 264 |     pub ty: Type,
[INFO] [stdout] 265 |     pub semicolon: Token![;],
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NonterminalDescription` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `terminal`, `double_arrow`, and `semicolon` are never read
[INFO] [stdout]    --> rspg-macros/src/generate/data.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub struct TerminalDescription {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 282 |     pub terminal: keyword::terminal,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub double_arrow: Token![=>],
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 286 |     pub expr: Expr,
[INFO] [stdout] 287 |     pub semicolon: Token![;],
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TerminalDescription` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mod_token` and `brace` are never read
[INFO] [stdout]    --> rspg-macros/src/generate/data.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub struct RspgMod {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub mod_token: Token![mod],
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 308 |     pub mod_name: Ident,
[INFO] [stdout] 309 |     pub brace: token::Brace,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RspgMod` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start` and `semicolon` are never read
[INFO] [stdout]   --> rspg-macros/src/generate/data.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Start {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 30 |     pub start: keyword::start,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 31 |     pub nonterminal: Ident,
[INFO] [stdout] 32 |     pub semicolon: Token![;],
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Start` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `error` and `semicolon` are never read
[INFO] [stdout]    --> rspg-macros/src/generate/data.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub struct ErrorDescription {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 244 |     pub error: keyword::error,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 245 |     pub ty: Type,
[INFO] [stdout] 246 |     pub semicolon: Token![;],
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ErrorDescription` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nonterminal`, `comma`, and `semicolon` are never read
[INFO] [stdout]    --> rspg-macros/src/generate/data.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub struct NonterminalDescription {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 261 |     pub nonterminal: keyword::nonterminal,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 262 |     pub ident: Ident,
[INFO] [stdout] 263 |     pub comma: Token![:],
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 264 |     pub ty: Type,
[INFO] [stdout] 265 |     pub semicolon: Token![;],
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NonterminalDescription` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `terminal`, `double_arrow`, and `semicolon` are never read
[INFO] [stdout]    --> rspg-macros/src/generate/data.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub struct TerminalDescription {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 282 |     pub terminal: keyword::terminal,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub double_arrow: Token![=>],
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 286 |     pub expr: Expr,
[INFO] [stdout] 287 |     pub semicolon: Token![;],
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TerminalDescription` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mod_token` and `brace` are never read
[INFO] [stdout]    --> rspg-macros/src/generate/data.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub struct RspgMod {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub mod_token: Token![mod],
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 308 |     pub mod_name: Ident,
[INFO] [stdout] 309 |     pub brace: token::Brace,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RspgMod` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking fd-lock v3.0.13
[INFO] [stdout] warning: fields `start` and `semicolon` are never read
[INFO] [stdout]   --> rspg-macros/src/generate/data.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Start {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 30 |     pub start: keyword::start,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 31 |     pub nonterminal: Ident,
[INFO] [stdout] 32 |     pub semicolon: Token![;],
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Start` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `error` and `semicolon` are never read
[INFO] [stdout]    --> rspg-macros/src/generate/data.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub struct ErrorDescription {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 244 |     pub error: keyword::error,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 245 |     pub ty: Type,
[INFO] [stdout] 246 |     pub semicolon: Token![;],
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ErrorDescription` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nonterminal`, `comma`, and `semicolon` are never read
[INFO] [stdout]    --> rspg-macros/src/generate/data.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub struct NonterminalDescription {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 261 |     pub nonterminal: keyword::nonterminal,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 262 |     pub ident: Ident,
[INFO] [stdout] 263 |     pub comma: Token![:],
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 264 |     pub ty: Type,
[INFO] [stdout] 265 |     pub semicolon: Token![;],
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NonterminalDescription` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `terminal`, `double_arrow`, and `semicolon` are never read
[INFO] [stdout]    --> rspg-macros/src/generate/data.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub struct TerminalDescription {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 282 |     pub terminal: keyword::terminal,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub double_arrow: Token![=>],
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 286 |     pub expr: Expr,
[INFO] [stdout] 287 |     pub semicolon: Token![;],
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TerminalDescription` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mod_token` and `brace` are never read
[INFO] [stdout]    --> rspg-macros/src/generate/data.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub struct RspgMod {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub mod_token: Token![mod],
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 308 |     pub mod_name: Ident,
[INFO] [stdout] 309 |     pub brace: token::Brace,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RspgMod` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rustyline v10.1.1
[INFO] [stderr]     Checking rspg-examples v0.0.4-alpha (/opt/rustwide/workdir/rspg-examples)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.42s
[INFO] running `Command { std: "docker" "inspect" "813dd877ea1da255bb83d18a7b84eb5040bc294307504a7303ed3217913b507f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "813dd877ea1da255bb83d18a7b84eb5040bc294307504a7303ed3217913b507f", kill_on_drop: false }`
[INFO] [stdout] 813dd877ea1da255bb83d18a7b84eb5040bc294307504a7303ed3217913b507f
