[INFO] cloning repository https://github.com/chryslovelace/mixfix
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/chryslovelace/mixfix" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchryslovelace%2Fmixfix", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchryslovelace%2Fmixfix'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f87cad659c2c22f8fba54e2198bc83e8fc047956
[INFO] checking chryslovelace/mixfix against try#a3dffdb3a32d0dedc198f9de7d43173f3eb6727b for pr-136303
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchryslovelace%2Fmixfix" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/chryslovelace/mixfix on toolchain a3dffdb3a32d0dedc198f9de7d43173f3eb6727b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a3dffdb3a32d0dedc198f9de7d43173f3eb6727b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/chryslovelace/mixfix
[INFO] finished tweaking git repo https://github.com/chryslovelace/mixfix
[INFO] tweaked toml for git repo https://github.com/chryslovelace/mixfix written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/chryslovelace/mixfix already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a3dffdb3a32d0dedc198f9de7d43173f3eb6727b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:c80049f3b88b82089a44e0f06d0d6029d44b96b7257e55a1cd63dbc9f4c33334" "/opt/rustwide/cargo-home/bin/cargo" "+a3dffdb3a32d0dedc198f9de7d43173f3eb6727b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dc1f802d5990e5b1088f8ef2bdda1b89fdeba0d5b14410293f1a5a4de2056959
[INFO] running `Command { std: "docker" "start" "-a" "dc1f802d5990e5b1088f8ef2bdda1b89fdeba0d5b14410293f1a5a4de2056959", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dc1f802d5990e5b1088f8ef2bdda1b89fdeba0d5b14410293f1a5a4de2056959", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dc1f802d5990e5b1088f8ef2bdda1b89fdeba0d5b14410293f1a5a4de2056959", kill_on_drop: false }`
[INFO] [stdout] dc1f802d5990e5b1088f8ef2bdda1b89fdeba0d5b14410293f1a5a4de2056959
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:c80049f3b88b82089a44e0f06d0d6029d44b96b7257e55a1cd63dbc9f4c33334" "/opt/rustwide/cargo-home/bin/cargo" "+a3dffdb3a32d0dedc198f9de7d43173f3eb6727b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c495e8590c04d8bd49dc7a19b264f9490d054e4a90820d20e54c8759fb524c9f
[INFO] running `Command { std: "docker" "start" "-a" "c495e8590c04d8bd49dc7a19b264f9490d054e4a90820d20e54c8759fb524c9f", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking ordermap v0.3.5
[INFO] [stderr]     Checking fixedbitset v0.1.9
[INFO] [stderr]     Checking either v1.5.0
[INFO] [stderr]     Checking itertools v0.8.0
[INFO] [stderr]     Checking petgraph v0.4.13
[INFO] [stderr]     Checking mixfix v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `NamePart`
[INFO] [stdout]  --> src/parser.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use operator::{NamePart, Operator};
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl<O> Parser for &Parser<O = O> {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl<O> Parser for &dyn Parser<O = O> {
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NamePart`
[INFO] [stdout]  --> src/parser.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use operator::{NamePart, Operator};
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl<O> Parser for &Parser<O = O> {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl<O> Parser for &dyn Parser<O = O> {
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parser.rs:180:17
[INFO] [stdout]     |
[INFO] [stdout] 180 |         Opts::<&Parser<O = Expr>>(vec![
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 180 |         Opts::<&dyn Parser<O = Expr>>(vec![
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parser.rs:180:17
[INFO] [stdout]     |
[INFO] [stdout] 180 |         Opts::<&Parser<O = Expr>>(vec![
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 180 |         Opts::<&dyn Parser<O = Expr>>(vec![
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `operator` and `args` are never read
[INFO] [stdout]  --> src/expr.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Expr {
[INFO] [stdout]   |            ---- fields in this struct
[INFO] [stdout] 5 |     pub operator: Operator,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 6 |     pub args: Vec<Expr>,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `well_formed` are never used
[INFO] [stdout]   --> src/expr.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Expr {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(operator: Operator, args: Vec<Expr>) -> Expr {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn well_formed(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Left`, `Right`, and `Non` are never constructed
[INFO] [stdout]  --> src/fixity.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum Associativity {
[INFO] [stdout]   |          ------------- variants in this enum
[INFO] [stdout] 3 |     Left,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 4 |     Right,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 5 |     Non,
[INFO] [stdout]   |     ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Associativity` 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: variants `Prefix`, `Infix`, `Postfix`, and `Closed` are never constructed
[INFO] [stdout]   --> src/fixity.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub enum Fixity {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] 10 |     Prefix,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 11 |     Infix(Associativity),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 12 |     Postfix,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 13 |     Closed,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Fixity` 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: methods `ops`, `succ`, and `all` are never used
[INFO] [stdout]   --> src/graph.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub trait PrecedenceGraph {
[INFO] [stdout]    |           --------------- methods in this trait
[INFO] [stdout] 10 |     type P: Copy;
[INFO] [stdout] 11 |     fn ops(&self, prec: Self::P, fix: Fixity) -> Vec<&Operator>;
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 12 |     fn succ(&self, prec: Self::P) -> Vec<Self::P>;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 13 |     fn all(&self) -> Vec<Self::P>;
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/operator.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct OperatorPattern(pub Vec<Vec<NamePart>>);
[INFO] [stdout]   |            --------------- ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `OperatorPattern` 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: field `pattern` is never read
[INFO] [stdout]   --> src/operator.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Operator {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 10 |     pub fixity: Fixity,
[INFO] [stdout] 11 |     pub pattern: OperatorPattern,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` 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: method `arity` is never used
[INFO] [stdout]   --> src/operator.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Operator {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 15 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `backbone` is never used
[INFO] [stdout]   --> src/operator.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl OperatorPattern {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 21 |     pub fn backbone(&self) -> &[Vec<NamePart>] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ParseResult` is never used
[INFO] [stdout]  --> src/parser.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type ParseResult<'i, T> = Result<(ParseInput<'i>, T), ParseError<'i>>;
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UnexpectedToken`, `UnexpectedEndOfInput`, `UnparsedInput`, and `EmptyOpts` are never constructed
[INFO] [stdout]   --> src/parser.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum ParseError<'a> {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 13 |     UnexpectedToken(&'a str),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     UnexpectedEndOfInput,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     UnparsedInput(ParseInput<'a>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     EmptyOpts,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Parser` is never used
[INFO] [stdout]   --> src/parser.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | trait Parser {
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tok` is never constructed
[INFO] [stdout]   --> src/parser.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct Tok<'a>(&'a str);
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Opt` is never constructed
[INFO] [stdout]   --> src/parser.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct Opt<A, B>(A, B);
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Seq` is never constructed
[INFO] [stdout]   --> src/parser.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | struct Seq<T>(Vec<T>);
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Opts` is never constructed
[INFO] [stdout]    --> src/parser.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | struct Opts<T>(Vec<T>);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Plus` is never constructed
[INFO] [stdout]    --> src/parser.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | struct Plus<T>(T);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Between` is never constructed
[INFO] [stdout]    --> src/parser.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | struct Between<A, B>(A, Vec<B>);
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Expr_` is never constructed
[INFO] [stdout]    --> src/parser.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | struct Expr_<'g, G: PrecedenceGraph>(&'g G);
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Precs` is never constructed
[INFO] [stdout]    --> src/parser.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | struct Precs<'g, G: PrecedenceGraph>(&'g G, Vec<G::P>);
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Prec` is never constructed
[INFO] [stdout]    --> src/parser.rs:175:8
[INFO] [stdout]     |
[INFO] [stdout] 175 | struct Prec<'g, G: PrecedenceGraph>(&'g G, G::P);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Closed` is never constructed
[INFO] [stdout]    --> src/parser.rs:190:8
[INFO] [stdout]     |
[INFO] [stdout] 190 | struct Closed<'g, G: PrecedenceGraph>(&'g G, G::P);
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NonAssoc` is never constructed
[INFO] [stdout]    --> src/parser.rs:199:8
[INFO] [stdout]     |
[INFO] [stdout] 199 | struct NonAssoc<'g, G: PrecedenceGraph>(&'g G, G::P);
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreRight` is never constructed
[INFO] [stdout]    --> src/parser.rs:214:8
[INFO] [stdout]     |
[INFO] [stdout] 214 | struct PreRight<'g, G: PrecedenceGraph>(&'g G, G::P);
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PostLeft` is never constructed
[INFO] [stdout]    --> src/parser.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | struct PostLeft<'g, G: PrecedenceGraph>(&'g G, G::P);
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Inner` is never constructed
[INFO] [stdout]    --> src/parser.rs:294:8
[INFO] [stdout]     |
[INFO] [stdout] 294 | struct Inner<'g, G: PrecedenceGraph>(&'g G, G::P, Fixity);
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Backbone` is never constructed
[INFO] [stdout]    --> src/parser.rs:310:8
[INFO] [stdout]     |
[INFO] [stdout] 310 | struct Backbone<'g, G: PrecedenceGraph>(&'g G, &'g Operator);
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_expr` is never used
[INFO] [stdout]    --> src/parser.rs:330:8
[INFO] [stdout]     |
[INFO] [stdout] 330 | pub fn parse_expr<'i, G: PrecedenceGraph>(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.10s
[INFO] running `Command { std: "docker" "inspect" "c495e8590c04d8bd49dc7a19b264f9490d054e4a90820d20e54c8759fb524c9f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c495e8590c04d8bd49dc7a19b264f9490d054e4a90820d20e54c8759fb524c9f", kill_on_drop: false }`
[INFO] [stdout] c495e8590c04d8bd49dc7a19b264f9490d054e4a90820d20e54c8759fb524c9f
