[INFO] cloning repository https://github.com/The-Minecraft-Scientist/desparse
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/The-Minecraft-Scientist/desparse" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThe-Minecraft-Scientist%2Fdesparse", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThe-Minecraft-Scientist%2Fdesparse'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 46ebbb2ac004b5f812f3491f1d0a5656b25d8c33
[INFO] checking The-Minecraft-Scientist/desparse against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThe-Minecraft-Scientist%2Fdesparse" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/The-Minecraft-Scientist/desparse
[INFO] finished tweaking git repo https://github.com/The-Minecraft-Scientist/desparse
[INFO] tweaked toml for git repo https://github.com/The-Minecraft-Scientist/desparse written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/The-Minecraft-Scientist/desparse on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/The-Minecraft-Scientist/desparse 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" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 72c3e7d65a2c53473b06491ce379ca19d2072c791b9f1a4cc27b08e2e3a1bc7a
[INFO] running `Command { std: "docker" "start" "72c3e7d65a2c53473b06491ce379ca19d2072c791b9f1a4cc27b08e2e3a1bc7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "72c3e7d65a2c53473b06491ce379ca19d2072c791b9f1a4cc27b08e2e3a1bc7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "72c3e7d65a2c53473b06491ce379ca19d2072c791b9f1a4cc27b08e2e3a1bc7a" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "72c3e7d65a2c53473b06491ce379ca19d2072c791b9f1a4cc27b08e2e3a1bc7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "72c3e7d65a2c53473b06491ce379ca19d2072c791b9f1a4cc27b08e2e3a1bc7a" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.67
[INFO] [stderr]    Compiling serde v1.0.193
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]     Checking itoa v1.0.9
[INFO] [stderr]    Compiling serde_json v1.0.107
[INFO] [stderr]     Checking ryu v1.0.15
[INFO] [stderr]    Compiling beef v0.5.2
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling regex-syntax v0.8.2
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling either v1.10.0
[INFO] [stderr]    Compiling anyhow v1.0.75
[INFO] [stderr]     Checking once_cell v1.18.0
[INFO] [stderr]    Compiling libc v0.2.156
[INFO] [stderr]    Compiling thiserror v1.0.55
[INFO] [stderr]     Checking castaway v0.2.3
[INFO] [stderr]     Checking half v2.3.1
[INFO] [stderr]     Checking anstyle v1.0.7
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]     Checking clap_lex v0.7.0
[INFO] [stderr]     Checking plotters-backend v0.3.5
[INFO] [stderr]     Checking compact_str v0.8.0
[INFO] [stderr]     Checking debug_tree v0.4.0
[INFO] [stderr]     Checking thin-vec v0.2.13
[INFO] [stderr]     Checking clap_builder v4.5.2
[INFO] [stderr]     Checking walkdir v2.4.0
[INFO] [stderr]     Checking oorandom v11.1.3
[INFO] [stderr]     Checking plotters-svg v0.3.5
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]    Compiling itertools v0.8.2
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking is-terminal v0.4.12
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling syn v2.0.37
[INFO] [stderr]     Checking rayon-core v1.12.1
[INFO] [stderr]     Checking rayon v1.8.1
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking plotters v0.3.5
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking regex-automata v0.4.5
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking clap v4.5.4
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]    Compiling shrinkwraprs v0.3.0
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]    Compiling logos-codegen v0.14.0
[INFO] [stderr]    Compiling serde_derive v1.0.193
[INFO] [stderr]    Compiling strum_macros v0.26.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.55
[INFO] [stderr]    Compiling logos-derive v0.14.0
[INFO] [stderr]     Checking logos v0.14.0
[INFO] [stderr]     Checking strum v0.26.2
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking desmoxide v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:161:21
[INFO] [stdout]     |
[INFO] [stdout] 161 |                     ASTNode::Val(Value::ConstantI64(1)).into()
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 161 -                     ASTNode::Val(Value::ConstantI64(1)).into()
[INFO] [stdout] 161 +                     ASTNode::Val(Value::ConstantI64(1))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 161 -                     ASTNode::Val(Value::ConstantI64(1)).into()
[INFO] [stdout] 161 +                     <ASTNode as Into<_>>::into(ASTNode::Val(Value::ConstantI64(1)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:197:49
[INFO] [stdout]     |
[INFO] [stdout] 197 | ...                   ASTNode::Val(Value::ConstantI64(1)).into()
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 197 -                                                 ASTNode::Val(Value::ConstantI64(1)).into()
[INFO] [stdout] 197 +                                                 ASTNode::Val(Value::ConstantI64(1))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 197 -                                                 ASTNode::Val(Value::ConstantI64(1)).into()
[INFO] [stdout] 197 +                                                 <ASTNode as Into<_>>::into(ASTNode::Val(Value::ConstantI64(1)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:182:21
[INFO] [stdout]     |
[INFO] [stdout] 182 | /                     loop {
[INFO] [stdout] 183 | |                         match self.lexer.next_res()?.1 {
[INFO] [stdout] 184 | |                             Token::Comma => {
[INFO] [stdout] 185 | |                                 let s = self.parse_placed(0)?;
[INFO] [stdout] ...   |
[INFO] [stdout] 217 | |                     .into()
[INFO] [stdout]     | |___________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 216 -                     }
[INFO] [stdout] 217 -                     .into()
[INFO] [stdout] 216 +                     }
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 182 ~                     <ASTNode as Into<_>>::into(loop {
[INFO] [stdout] 183 |                         match self.lexer.next_res()?.1 {
[INFO] [stdout] ...
[INFO] [stdout] 215 |                         }
[INFO] [stdout] 216 ~                     })
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 ASTNode::Binary(numerator, denominator, BinaryOp::Div).into()
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 233 -                 ASTNode::Binary(numerator, denominator, BinaryOp::Div).into()
[INFO] [stdout] 233 +                 ASTNode::Binary(numerator, denominator, BinaryOp::Div)
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 233 -                 ASTNode::Binary(numerator, denominator, BinaryOp::Div).into()
[INFO] [stdout] 233 +                 <ASTNode as Into<_>>::into(ASTNode::Binary(numerator, denominator, BinaryOp::Div))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:244:25
[INFO] [stdout]     |
[INFO] [stdout] 244 |                         ASTNode::Binary(n, base, BinaryOp::NthRoot).into()
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 244 -                         ASTNode::Binary(n, base, BinaryOp::NthRoot).into()
[INFO] [stdout] 244 +                         ASTNode::Binary(n, base, BinaryOp::NthRoot)
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 244 -                         ASTNode::Binary(n, base, BinaryOp::NthRoot).into()
[INFO] [stdout] 244 +                         <ASTNode as Into<_>>::into(ASTNode::Binary(n, base, BinaryOp::NthRoot))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:255:32
[INFO] [stdout]     |
[INFO] [stdout] 255 |             Token::LBracket => ASTNode::List(self.parse_list_body()?).into(),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 255 -             Token::LBracket => ASTNode::List(self.parse_list_body()?).into(),
[INFO] [stdout] 255 +             Token::LBracket => ASTNode::List(self.parse_list_body()?),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 255 -             Token::LBracket => ASTNode::List(self.parse_list_body()?).into(),
[INFO] [stdout] 255 +             Token::LBracket => <ASTNode as Into<_>>::into(ASTNode::List(self.parse_list_body()?)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:259:21
[INFO] [stdout]     |
[INFO] [stdout] 259 |                     ASTNode::ListOp(thin_vec![], ListOp::Random).into()
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 259 -                     ASTNode::ListOp(thin_vec![], ListOp::Random).into()
[INFO] [stdout] 259 +                     ASTNode::ListOp(thin_vec![], ListOp::Random)
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 259 -                     ASTNode::ListOp(thin_vec![], ListOp::Random).into()
[INFO] [stdout] 259 +                     <ASTNode as Into<_>>::into(ASTNode::ListOp(thin_vec![], ListOp::Random))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:272:21
[INFO] [stdout]     |
[INFO] [stdout] 272 |                     ASTNode::ListOp(v, ListOp::Random).into()
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 272 -                     ASTNode::ListOp(v, ListOp::Random).into()
[INFO] [stdout] 272 +                     ASTNode::ListOp(v, ListOp::Random)
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 272 -                     ASTNode::ListOp(v, ListOp::Random).into()
[INFO] [stdout] 272 +                     <ASTNode as Into<_>>::into(ASTNode::ListOp(v, ListOp::Random))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:329:31
[INFO] [stdout]     |
[INFO] [stdout] 329 |                         lhs = ASTNode::CoordinateAccess(self.place(lhs), a).into();
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 329 -                         lhs = ASTNode::CoordinateAccess(self.place(lhs), a).into();
[INFO] [stdout] 329 +                         lhs = ASTNode::CoordinateAccess(self.place(lhs), a);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 329 -                         lhs = ASTNode::CoordinateAccess(self.place(lhs), a).into();
[INFO] [stdout] 329 +                         lhs = <ASTNode as Into<_>>::into(ASTNode::CoordinateAccess(self.place(lhs), a));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:350:25
[INFO] [stdout]     |
[INFO] [stdout] 350 |                         ASTNode::List(List::Range(self.place(lhs), self.parse_placed(0)?)).into(),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 350 -                         ASTNode::List(List::Range(self.place(lhs), self.parse_placed(0)?)).into(),
[INFO] [stdout] 350 +                         ASTNode::List(List::Range(self.place(lhs), self.parse_placed(0)?)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 350 -                         ASTNode::List(List::Range(self.place(lhs), self.parse_placed(0)?)).into(),
[INFO] [stdout] 350 +                         <ASTNode as Into<_>>::into(ASTNode::List(List::Range(self.place(lhs), self.parse_placed(0)?))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:373:27
[INFO] [stdout]     |
[INFO] [stdout] 373 |                       lhs = ASTNode::List(List::ListComp(self.place(lhs), ListCompInfo { vars }))
[INFO] [stdout]     |  ___________________________^
[INFO] [stdout] 374 | |                         .into();
[INFO] [stdout]     | |_______________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 373 -                     lhs = ASTNode::List(List::ListComp(self.place(lhs), ListCompInfo { vars }))
[INFO] [stdout] 374 -                         .into();
[INFO] [stdout] 373 +                     lhs = ASTNode::List(List::ListComp(self.place(lhs), ListCompInfo { vars }));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 373 -                     lhs = ASTNode::List(List::ListComp(self.place(lhs), ListCompInfo { vars }))
[INFO] [stdout] 374 -                         .into();
[INFO] [stdout] 373 +                     lhs = <ASTNode as Into<_>>::into(ASTNode::List(List::ListComp(self.place(lhs), ListCompInfo { vars })));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:396:39
[INFO] [stdout]     |
[INFO] [stdout] 396 | ...                   lhs = ASTNode::Parens(s.clone(), rhs).into();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 396 -                                 lhs = ASTNode::Parens(s.clone(), rhs).into();
[INFO] [stdout] 396 +                                 lhs = ASTNode::Parens(s.clone(), rhs);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 396 -                                 lhs = ASTNode::Parens(s.clone(), rhs).into();
[INFO] [stdout] 396 +                                 lhs = <ASTNode as Into<_>>::into(ASTNode::Parens(s.clone(), rhs));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:402:39
[INFO] [stdout]     |
[INFO] [stdout] 402 | ...                   lhs = ASTNode::FunctionCall(s.clone(), v).into();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 402 -                                 lhs = ASTNode::FunctionCall(s.clone(), v).into();
[INFO] [stdout] 402 +                                 lhs = ASTNode::FunctionCall(s.clone(), v);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 402 -                                 lhs = ASTNode::FunctionCall(s.clone(), v).into();
[INFO] [stdout] 402 +                                 lhs = <ASTNode as Into<_>>::into(ASTNode::FunctionCall(s.clone(), v));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:412:31
[INFO] [stdout]     |
[INFO] [stdout] 412 |                         lhs = ASTNode::Binary(self.place(lhs), rhs, BinaryOp::Mul).into();
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 412 -                         lhs = ASTNode::Binary(self.place(lhs), rhs, BinaryOp::Mul).into();
[INFO] [stdout] 412 +                         lhs = ASTNode::Binary(self.place(lhs), rhs, BinaryOp::Mul);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 412 -                         lhs = ASTNode::Binary(self.place(lhs), rhs, BinaryOp::Mul).into();
[INFO] [stdout] 412 +                         lhs = <ASTNode as Into<_>>::into(ASTNode::Binary(self.place(lhs), rhs, BinaryOp::Mul));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:417:54
[INFO] [stdout]     |
[INFO] [stdout] 417 | ...                   Token::RBracket => lhs = ASTNode::Index(self.place(lhs), rhs).into(),
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 417 -                             Token::RBracket => lhs = ASTNode::Index(self.place(lhs), rhs).into(),
[INFO] [stdout] 417 +                             Token::RBracket => lhs = ASTNode::Index(self.place(lhs), rhs),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 417 -                             Token::RBracket => lhs = ASTNode::Index(self.place(lhs), rhs).into(),
[INFO] [stdout] 417 +                             Token::RBracket => lhs = <ASTNode as Into<_>>::into(ASTNode::Index(self.place(lhs), rhs)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:422:39
[INFO] [stdout]     |
[INFO] [stdout] 422 |   ...                   lhs = ASTNode::Index(
[INFO] [stdout]     |  _____________________________^
[INFO] [stdout] 423 | | ...                       self.place(lhs),
[INFO] [stdout] 424 | | ...                       self.place(ASTNode::List(List::List(args))),
[INFO] [stdout] 425 | | ...                   )
[INFO] [stdout] 426 | | ...                   .into();
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 425 -                                 )
[INFO] [stdout] 426 -                                 .into();
[INFO] [stdout] 425 +                                 );
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 422 ~                                 lhs = <ASTNode as Into<_>>::into(ASTNode::Index(
[INFO] [stdout] 423 |                                     self.place(lhs),
[INFO] [stdout] 424 |                                     self.place(ASTNode::List(List::List(args))),
[INFO] [stdout] 425 ~                                 ));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ASTNode`
[INFO] [stdout]    --> src/lang/parser.rs:433:39
[INFO] [stdout]     |
[INFO] [stdout] 433 |   ...                   lhs = ASTNode::Index(
[INFO] [stdout]     |  _____________________________^
[INFO] [stdout] 434 | | ...                       self.place(lhs),
[INFO] [stdout] 435 | | ...                       self.place(ASTNode::Comparison(rhs, comp, compcase)),
[INFO] [stdout] 436 | | ...                   )
[INFO] [stdout] 437 | | ...                   .into();
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 436 -                                 )
[INFO] [stdout] 437 -                                 .into();
[INFO] [stdout] 436 +                                 );
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 433 ~                                 lhs = <ASTNode as Into<_>>::into(ASTNode::Index(
[INFO] [stdout] 434 |                                     self.place(lhs),
[INFO] [stdout] 435 |                                     self.place(ASTNode::Comparison(rhs, comp, compcase)),
[INFO] [stdout] 436 ~                                 ));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lang/compiler/ir.rs:342:17
[INFO] [stdout]     |
[INFO] [stdout] 342 |     pub fn iter(&self) -> slice::Iter<IROp> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 342 |     pub fn iter(&self) -> slice::Iter<'_, IROp> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `desmoxide` (lib) due to 17 previous errors; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "72c3e7d65a2c53473b06491ce379ca19d2072c791b9f1a4cc27b08e2e3a1bc7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "72c3e7d65a2c53473b06491ce379ca19d2072c791b9f1a4cc27b08e2e3a1bc7a", kill_on_drop: false }`
[INFO] [stdout] 72c3e7d65a2c53473b06491ce379ca19d2072c791b9f1a4cc27b08e2e3a1bc7a
