[INFO] cloning repository https://github.com/geeshta/lambda
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/geeshta/lambda" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeeshta%2Flambda", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeeshta%2Flambda'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 11ca7ba1dbc178e12d524a2e6eddec04c7c3261e
[INFO] testing geeshta/lambda against 1.99.0-beta.8 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgeeshta%2Flambda" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/geeshta/lambda
[INFO] finished tweaking git repo https://github.com/geeshta/lambda
[INFO] tweaked toml for git repo https://github.com/geeshta/lambda written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/geeshta/lambda on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/geeshta/lambda 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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded regex-syntax v0.8.4
[INFO] [stderr]   Downloaded regex v1.10.5
[INFO] [stderr]   Downloaded regex-automata v0.4.7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b0174c1299af520c3410ddfe4b70b8e9df6e5ce550cf85f515944b9ffa16a7ed
[INFO] running `Command { std: "docker" "start" "b0174c1299af520c3410ddfe4b70b8e9df6e5ce550cf85f515944b9ffa16a7ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b0174c1299af520c3410ddfe4b70b8e9df6e5ce550cf85f515944b9ffa16a7ed", 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" "b0174c1299af520c3410ddfe4b70b8e9df6e5ce550cf85f515944b9ffa16a7ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b0174c1299af520c3410ddfe4b70b8e9df6e5ce550cf85f515944b9ffa16a7ed", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b0174c1299af520c3410ddfe4b70b8e9df6e5ce550cf85f515944b9ffa16a7ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling regex-syntax v0.8.4
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling regex-automata v0.4.7
[INFO] [stderr]    Compiling regex v1.10.5
[INFO] [stderr]    Compiling lambda v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ast::ast::AST`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use ast::ast::AST;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BetaReduction` and `EvalOrder`
[INFO] [stdout]   --> src/main.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | use beta::{BetaReduction, EvalOrder};
[INFO] [stdout]    |            ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `memo`
[INFO] [stdout]    --> src/beta/reduction.rs:145:26
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 (result, memo) => result,
[INFO] [stdout]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_memo`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/alpha/conversion.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 |     SubstitutionError(String),
[INFO] [stdout]   |     ----------------- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AlphaConvError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 8 -     SubstitutionError(String),
[INFO] [stdout] 8 +     SubstitutionError(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/alpha/conversion.rs:9:20
[INFO] [stdout]   |
[INFO] [stdout] 9 |     StructureError(String),
[INFO] [stdout]   |     -------------- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AlphaConvError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 9 -     StructureError(String),
[INFO] [stdout] 9 +     StructureError(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/alpha/conversion.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 |     VariablesError(String),
[INFO] [stdout]    |     -------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AlphaConvError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 10 -     VariablesError(String),
[INFO] [stdout] 10 +     VariablesError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AlphaVariant` is never used
[INFO] [stdout]  --> src/alpha/variant.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait AlphaVariant {
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remap` is never used
[INFO] [stdout]   --> src/alpha/variant.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl AST {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] 10 |     // Remap all varaibles in a term for different ones
[INFO] [stdout] 11 |     fn remap(self, var_map: VarMap) -> AST {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EvalOrder` is never used
[INFO] [stdout]  --> src/beta/reduction.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum EvalOrder {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BetaReduction` is never used
[INFO] [stdout]   --> src/beta/reduction.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait BetaReduction {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `beta_step`, `lazy_beta_step`, `reduce_redex`, `lazy_reduce_redex`, `beta_reduce`, and `lazy_beta_reduce` are never used
[INFO] [stdout]    --> src/beta/reduction.rs:18:8
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl AST {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout]  17 |     /// One step of a beta reduction. It is recursive so it may actually perform multiple substitutions
[INFO] [stdout]  18 |     fn beta_step(self, order: &EvalOrder) -> AST {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     fn lazy_beta_step(self, memo: TermMap) -> (AST, TermMap) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn reduce_redex(self, order: &EvalOrder, param: AST, body: AST, arg: AST) -> AST {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn lazy_reduce_redex(self, memo: TermMap, param: AST, body: AST, arg: AST) -> (AST, TermMap) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn beta_reduce(self, order: &EvalOrder) -> AST {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn lazy_beta_reduce(self, memo: Option<TermMap>) -> (AST, TermMap) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/substitution/substitution.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |     NotAVariable(String),
[INFO] [stdout]   |     ------------ ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `SubstitutionError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 6 -     NotAVariable(String),
[INFO] [stdout] 6 +     NotAVariable(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/substitution/substitution.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 |     BindingConflict(String),
[INFO] [stdout]   |     --------------- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `SubstitutionError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 7 -     BindingConflict(String),
[INFO] [stdout] 7 +     BindingConflict(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VarMap` is never constructed
[INFO] [stdout]   --> src/variables/varmap.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct VarMap {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_sets` and `get` are never used
[INFO] [stdout]   --> src/variables/varmap.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl VarMap {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 47 |     /// Create a new map from two sets, zipping them together and adding both pairs
[INFO] [stdout] 48 |     pub fn from_sets(first: VarSet, second: VarSet) -> VarMap {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn get(&self, term: Term) -> Term {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/parser/parser.rs:25:29
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn parse_expression(tokens: &[Token]) -> Result<ParserState, ParsingError> {
[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] 25 | fn parse_expression(tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stdout]    |                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/parser/parser.rs:44:25
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn parse_params(tokens: &[Token]) -> Result<ParserState, ParsingError> {
[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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn parse_params(tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stdout]    |                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/parser/parser.rs:66:29
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn apply(term: AST, tokens: &[Token]) -> Result<ParserState, ParsingError> {
[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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn apply(term: AST, tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stdout]    |                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/parser/parser.rs:96:19
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn lambda(tokens: &[Token]) -> Result<ParserState, ParsingError> {
[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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn lambda(tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stdout]    |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parser/parser.rs:134:28
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn abstr(arg: AST, tokens: &[Token]) -> Result<ParserState, ParsingError> {
[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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn abstr(arg: AST, tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stdout]     |                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parser/parser.rs:167:18
[INFO] [stdout]     |
[INFO] [stdout] 167 | fn group(tokens: &[Token]) -> Result<ParserState, ParsingError> {
[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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 167 | fn group(tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.29s
[INFO] running `Command { std: "docker" "inspect" "b0174c1299af520c3410ddfe4b70b8e9df6e5ce550cf85f515944b9ffa16a7ed", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b0174c1299af520c3410ddfe4b70b8e9df6e5ce550cf85f515944b9ffa16a7ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling lambda v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ast::ast::AST`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use ast::ast::AST;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BetaReduction` and `EvalOrder`
[INFO] [stdout]   --> src/main.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | use beta::{BetaReduction, EvalOrder};
[INFO] [stdout]    |            ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `memo`
[INFO] [stdout]    --> src/beta/reduction.rs:145:26
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 (result, memo) => result,
[INFO] [stdout]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_memo`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/alpha/conversion.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 |     SubstitutionError(String),
[INFO] [stdout]   |     ----------------- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AlphaConvError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 8 -     SubstitutionError(String),
[INFO] [stdout] 8 +     SubstitutionError(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/alpha/conversion.rs:9:20
[INFO] [stdout]   |
[INFO] [stdout] 9 |     StructureError(String),
[INFO] [stdout]   |     -------------- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AlphaConvError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 9 -     StructureError(String),
[INFO] [stdout] 9 +     StructureError(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/alpha/conversion.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 |     VariablesError(String),
[INFO] [stdout]    |     -------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AlphaConvError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 10 -     VariablesError(String),
[INFO] [stdout] 10 +     VariablesError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AlphaVariant` is never used
[INFO] [stdout]  --> src/alpha/variant.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait AlphaVariant {
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remap` is never used
[INFO] [stdout]   --> src/alpha/variant.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl AST {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] 10 |     // Remap all varaibles in a term for different ones
[INFO] [stdout] 11 |     fn remap(self, var_map: VarMap) -> AST {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EvalOrder` is never used
[INFO] [stdout]  --> src/beta/reduction.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum EvalOrder {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BetaReduction` is never used
[INFO] [stdout]   --> src/beta/reduction.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait BetaReduction {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `beta_step`, `lazy_beta_step`, `reduce_redex`, `lazy_reduce_redex`, `beta_reduce`, and `lazy_beta_reduce` are never used
[INFO] [stdout]    --> src/beta/reduction.rs:18:8
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl AST {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout]  17 |     /// One step of a beta reduction. It is recursive so it may actually perform multiple substitutions
[INFO] [stdout]  18 |     fn beta_step(self, order: &EvalOrder) -> AST {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     fn lazy_beta_step(self, memo: TermMap) -> (AST, TermMap) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn reduce_redex(self, order: &EvalOrder, param: AST, body: AST, arg: AST) -> AST {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn lazy_reduce_redex(self, memo: TermMap, param: AST, body: AST, arg: AST) -> (AST, TermMap) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn beta_reduce(self, order: &EvalOrder) -> AST {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn lazy_beta_reduce(self, memo: Option<TermMap>) -> (AST, TermMap) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/substitution/substitution.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |     NotAVariable(String),
[INFO] [stdout]   |     ------------ ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `SubstitutionError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 6 -     NotAVariable(String),
[INFO] [stdout] 6 +     NotAVariable(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/substitution/substitution.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 |     BindingConflict(String),
[INFO] [stdout]   |     --------------- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `SubstitutionError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 7 -     BindingConflict(String),
[INFO] [stdout] 7 +     BindingConflict(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VarMap` is never constructed
[INFO] [stdout]   --> src/variables/varmap.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct VarMap {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_sets` and `get` are never used
[INFO] [stdout]   --> src/variables/varmap.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl VarMap {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 47 |     /// Create a new map from two sets, zipping them together and adding both pairs
[INFO] [stdout] 48 |     pub fn from_sets(first: VarSet, second: VarSet) -> VarMap {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn get(&self, term: Term) -> Term {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/parser/parser.rs:25:29
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn parse_expression(tokens: &[Token]) -> Result<ParserState, ParsingError> {
[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] 25 | fn parse_expression(tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stdout]    |                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/parser/parser.rs:44:25
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn parse_params(tokens: &[Token]) -> Result<ParserState, ParsingError> {
[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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn parse_params(tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stdout]    |                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/parser/parser.rs:66:29
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn apply(term: AST, tokens: &[Token]) -> Result<ParserState, ParsingError> {
[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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn apply(term: AST, tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stdout]    |                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/parser/parser.rs:96:19
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn lambda(tokens: &[Token]) -> Result<ParserState, ParsingError> {
[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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn lambda(tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stdout]    |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parser/parser.rs:134:28
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn abstr(arg: AST, tokens: &[Token]) -> Result<ParserState, ParsingError> {
[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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn abstr(arg: AST, tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stdout]     |                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parser/parser.rs:167:18
[INFO] [stdout]     |
[INFO] [stdout] 167 | fn group(tokens: &[Token]) -> Result<ParserState, ParsingError> {
[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] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 167 | fn group(tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.56s
[INFO] running `Command { std: "docker" "inspect" "b0174c1299af520c3410ddfe4b70b8e9df6e5ce550cf85f515944b9ffa16a7ed", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b0174c1299af520c3410ddfe4b70b8e9df6e5ce550cf85f515944b9ffa16a7ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::fmt`
[INFO] [stderr]  --> src/main.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::fmt;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ast::ast::AST`
[INFO] [stderr]   --> src/main.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use ast::ast::AST;
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BetaReduction` and `EvalOrder`
[INFO] [stderr]   --> src/main.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | use beta::{BetaReduction, EvalOrder};
[INFO] [stderr]    |            ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `memo`
[INFO] [stderr]    --> src/beta/reduction.rs:145:26
[INFO] [stderr]     |
[INFO] [stderr] 145 |                 (result, memo) => result,
[INFO] [stderr]     |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_memo`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/alpha/conversion.rs:8:23
[INFO] [stderr]   |
[INFO] [stderr] 8 |     SubstitutionError(String),
[INFO] [stderr]   |     ----------------- ^^^^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     field in this variant
[INFO] [stderr]   |
[INFO] [stderr]   = note: `AlphaConvError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]   |
[INFO] [stderr] 8 -     SubstitutionError(String),
[INFO] [stderr] 8 +     SubstitutionError(()),
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/alpha/conversion.rs:9:20
[INFO] [stderr]   |
[INFO] [stderr] 9 |     StructureError(String),
[INFO] [stderr]   |     -------------- ^^^^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     field in this variant
[INFO] [stderr]   |
[INFO] [stderr]   = note: `AlphaConvError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]   |
[INFO] [stderr] 9 -     StructureError(String),
[INFO] [stderr] 9 +     StructureError(()),
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/alpha/conversion.rs:10:20
[INFO] [stderr]    |
[INFO] [stderr] 10 |     VariablesError(String),
[INFO] [stderr]    |     -------------- ^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AlphaConvError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 10 -     VariablesError(String),
[INFO] [stderr] 10 +     VariablesError(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: trait `AlphaVariant` is never used
[INFO] [stderr]  --> src/alpha/variant.rs:5:11
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub trait AlphaVariant {
[INFO] [stderr]   |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `remap` is never used
[INFO] [stderr]   --> src/alpha/variant.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr]  9 | impl AST {
[INFO] [stderr]    | -------- method in this implementation
[INFO] [stderr] 10 |     // Remap all varaibles in a term for different ones
[INFO] [stderr] 11 |     fn remap(self, var_map: VarMap) -> AST {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `EvalOrder` is never used
[INFO] [stderr]  --> src/beta/reduction.rs:7:10
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub enum EvalOrder {
[INFO] [stderr]   |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `BetaReduction` is never used
[INFO] [stderr]   --> src/beta/reduction.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub trait BetaReduction {
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `beta_step`, `lazy_beta_step`, `reduce_redex`, `lazy_reduce_redex`, `beta_reduce`, and `lazy_beta_reduce` are never used
[INFO] [stderr]    --> src/beta/reduction.rs:18:8
[INFO] [stderr]     |
[INFO] [stderr]  16 | impl AST {
[INFO] [stderr]     | -------- methods in this implementation
[INFO] [stderr]  17 |     /// One step of a beta reduction. It is recursive so it may actually perform multiple substitutions
[INFO] [stderr]  18 |     fn beta_step(self, order: &EvalOrder) -> AST {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  46 |     fn lazy_beta_step(self, memo: TermMap) -> (AST, TermMap) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  75 |     fn reduce_redex(self, order: &EvalOrder, param: AST, body: AST, arg: AST) -> AST {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  99 |     fn lazy_reduce_redex(self, memo: TermMap, param: AST, body: AST, arg: AST) -> (AST, TermMap) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 112 |     fn beta_reduce(self, order: &EvalOrder) -> AST {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 124 |     fn lazy_beta_reduce(self, memo: Option<TermMap>) -> (AST, TermMap) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/substitution/substitution.rs:6:18
[INFO] [stderr]   |
[INFO] [stderr] 6 |     NotAVariable(String),
[INFO] [stderr]   |     ------------ ^^^^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     field in this variant
[INFO] [stderr]   |
[INFO] [stderr]   = note: `SubstitutionError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]   |
[INFO] [stderr] 6 -     NotAVariable(String),
[INFO] [stderr] 6 +     NotAVariable(()),
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/substitution/substitution.rs:7:21
[INFO] [stderr]   |
[INFO] [stderr] 7 |     BindingConflict(String),
[INFO] [stderr]   |     --------------- ^^^^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     field in this variant
[INFO] [stderr]   |
[INFO] [stderr]   = note: `SubstitutionError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]   |
[INFO] [stderr] 7 -     BindingConflict(String),
[INFO] [stderr] 7 +     BindingConflict(()),
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: struct `VarMap` is never constructed
[INFO] [stderr]   --> src/variables/varmap.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct VarMap {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from_sets` and `get` are never used
[INFO] [stderr]   --> src/variables/varmap.rs:48:12
[INFO] [stderr]    |
[INFO] [stderr] 46 | impl VarMap {
[INFO] [stderr]    | ----------- associated items in this implementation
[INFO] [stderr] 47 |     /// Create a new map from two sets, zipping them together and adding both pairs
[INFO] [stderr] 48 |     pub fn from_sets(first: VarSet, second: VarSet) -> VarMap {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn get(&self, term: Term) -> Term {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/parser/parser.rs:25:29
[INFO] [stderr]    |
[INFO] [stderr] 25 | fn parse_expression(tokens: &[Token]) -> Result<ParserState, ParsingError> {
[INFO] [stderr]    |                             ^^^^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                             |
[INFO] [stderr]    |                             the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 25 | fn parse_expression(tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stderr]    |                                                            ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/parser/parser.rs:44:25
[INFO] [stderr]    |
[INFO] [stderr] 44 | fn parse_params(tokens: &[Token]) -> Result<ParserState, ParsingError> {
[INFO] [stderr]    |                         ^^^^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 44 | fn parse_params(tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stderr]    |                                                        ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/parser/parser.rs:66:29
[INFO] [stderr]    |
[INFO] [stderr] 66 | fn apply(term: AST, tokens: &[Token]) -> Result<ParserState, ParsingError> {
[INFO] [stderr]    |                             ^^^^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                             |
[INFO] [stderr]    |                             the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 66 | fn apply(term: AST, tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stderr]    |                                                            ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/parser/parser.rs:96:19
[INFO] [stderr]    |
[INFO] [stderr] 96 | fn lambda(tokens: &[Token]) -> Result<ParserState, ParsingError> {
[INFO] [stderr]    |                   ^^^^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                   |
[INFO] [stderr]    |                   the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 96 | fn lambda(tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stderr]    |                                                  ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parser/parser.rs:134:28
[INFO] [stderr]     |
[INFO] [stderr] 134 | fn abstr(arg: AST, tokens: &[Token]) -> Result<ParserState, ParsingError> {
[INFO] [stderr]     |                            ^^^^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                            |
[INFO] [stderr]     |                            the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 134 | fn abstr(arg: AST, tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stderr]     |                                                           ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parser/parser.rs:167:18
[INFO] [stderr]     |
[INFO] [stderr] 167 | fn group(tokens: &[Token]) -> Result<ParserState, ParsingError> {
[INFO] [stderr]     |                  ^^^^^^^^            ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                  |
[INFO] [stderr]     |                  the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 167 | fn group(tokens: &[Token]) -> Result<ParserState<'_>, ParsingError> {
[INFO] [stderr]     |                                                 ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `lambda` (bin "lambda" test) generated 22 warnings (run `cargo fix --bin "lambda" -p lambda --tests` to apply 10 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lambda-3479fd7ac1bd705d)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b0174c1299af520c3410ddfe4b70b8e9df6e5ce550cf85f515944b9ffa16a7ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b0174c1299af520c3410ddfe4b70b8e9df6e5ce550cf85f515944b9ffa16a7ed", kill_on_drop: false }`
[INFO] [stdout] b0174c1299af520c3410ddfe4b70b8e9df6e5ce550cf85f515944b9ffa16a7ed
