[INFO] cloning repository https://github.com/yportne13/normalization_bench_rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yportne13/normalization_bench_rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyportne13%2Fnormalization_bench_rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyportne13%2Fnormalization_bench_rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4c48eccbf0a555134e44e826a130cd73081951ff
[INFO] checking yportne13/normalization_bench_rs against master#36b21637e93b038453924d3c66821089e71d8baa for pr-143164
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyportne13%2Fnormalization_bench_rs" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/yportne13/normalization_bench_rs
[INFO] finished tweaking git repo https://github.com/yportne13/normalization_bench_rs
[INFO] tweaked toml for git repo https://github.com/yportne13/normalization_bench_rs written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/yportne13/normalization_bench_rs on toolchain 36b21637e93b038453924d3c66821089e71d8baa
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/yportne13/normalization_bench_rs 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" "+36b21637e93b038453924d3c66821089e71d8baa" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 504279a7a80cd74e1c5ce5daa77d59443bec7b4e6646d65030b204a09c26ffd9
[INFO] running `Command { std: "docker" "start" "-a" "504279a7a80cd74e1c5ce5daa77d59443bec7b4e6646d65030b204a09c26ffd9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "504279a7a80cd74e1c5ce5daa77d59443bec7b4e6646d65030b204a09c26ffd9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "504279a7a80cd74e1c5ce5daa77d59443bec7b4e6646d65030b204a09c26ffd9", kill_on_drop: false }`
[INFO] [stdout] 504279a7a80cd74e1c5ce5daa77d59443bec7b4e6646d65030b204a09c26ffd9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0a3cb8eb0de212677fe91eb93d31424b994d980b58e8804f7b23b4a398a2a69e
[INFO] running `Command { std: "docker" "start" "-a" "0a3cb8eb0de212677fe91eb93d31424b994d980b58e8804f7b23b4a398a2a69e", kill_on_drop: false }`
[INFO] [stderr]     Checking normalization_bench_rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/locally.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/locally.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/locally.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x_`
[INFO] [stdout]    --> src/nbe_closure_dt.rs:206:36
[INFO] [stdout]     |
[INFO] [stdout] 206 |         (Raw::Lam(x, t), Value::Pi(x_, a_, b)) => {
[INFO] [stdout]     |                                    ^^ help: if this is intentional, prefix it with an underscore: `_x_`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/locally.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/dt.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let u = infer_type(ctx, t)?;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/dt.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn infer_pi(ctx: &mut Context, e: &Rc<Expr>) -> Result<(Variable, Rc<Expr>, Rc<Expr>), String> {
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/dt.rs:143:16
[INFO] [stdout]     |
[INFO] [stdout] 143 | fn check_equal(ctx: &mut Context, e1: &Rc<Expr>, e2: &Rc<Expr>) -> Result<(), String> {
[INFO] [stdout]     |                ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x_`
[INFO] [stdout]    --> src/nbe_closure_dt.rs:206:36
[INFO] [stdout]     |
[INFO] [stdout] 206 |         (Raw::Lam(x, t), Value::Pi(x_, a_, b)) => {
[INFO] [stdout]     |                                    ^^ help: if this is intentional, prefix it with an underscore: `_x_`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Raw` is never used
[INFO] [stdout]  --> src/nbe_closure_dt.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | enum Raw {
[INFO] [stdout]   |      ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply` is never used
[INFO] [stdout]   --> src/nbe_closure_dt.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Closure {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 37 |     fn apply(self, arg: Value) -> Value {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_val` is never used
[INFO] [stdout]   --> src/nbe_closure_dt.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn apply_val(vf: Value, va: Value) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `conv` is never used
[INFO] [stdout]    --> src/nbe_closure_dt.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn conv(l: usize, t: &Value, u: &Value) -> bool {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cxt` is never constructed
[INFO] [stdout]    --> src/nbe_closure_dt.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | struct Cxt {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `empty`, `bind`, and `define` are never used
[INFO] [stdout]    --> src/nbe_closure_dt.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl Cxt {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 150 |     fn empty(pos: usize) -> Self {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn bind(&self, x: String, a: Value) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn define(&self, x: String, t: Value, a: Value) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `report` is never used
[INFO] [stdout]    --> src/nbe_closure_dt.rs:186:4
[INFO] [stdout]     |
[INFO] [stdout] 186 | fn report(cxt: &Cxt, msg: &str) -> Result<(Term, Value), (String, usize)> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]    --> src/nbe_closure_dt.rs:199:4
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn check(cxt: &Cxt, t: &Raw, a: &Value) -> Result<Term, (String, usize)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `infer` is never used
[INFO] [stdout]    --> src/nbe_closure_dt.rs:242:4
[INFO] [stdout]     |
[INFO] [stdout] 242 | fn infer(cxt: &Cxt, t: &Raw) -> Result<(Term, Value), (String, usize)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Term` is never used
[INFO] [stdout]  --> src/locally.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | enum Term<A> {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `app` is never used
[INFO] [stdout]   --> src/locally.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl<A> Term<A> {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 25 |     fn app(self, other: Term<A>) -> Term<A> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Var` is never used
[INFO] [stdout]   --> src/locally.rs:31:6
[INFO] [stdout]    |
[INFO] [stdout] 31 | enum Var<A> {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_locally_nameless` is never used
[INFO] [stdout]   --> src/locally.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn to_locally_nameless<A: Ord + std::hash::Hash + Eq + Clone>(term: &Term<A>, env: &mut HashMap<A, i32>) -> Term<Var<A>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_locally_nameless` is never used
[INFO] [stdout]   --> src/locally.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn from_locally_nameless<A: std::hash::Hash + Eq + Clone>(term: &Term<Var<A>>, env: &mut HashMap<i32, A>) -> Result<Term<A>, String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open` is never used
[INFO] [stdout]   --> src/locally.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn open<A: std::hash::Hash + Eq + Clone>(image: &Term<Var<A>>, scope: &Term<Var<A>>) -> Term<Var<A>> {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `whnf` is never used
[INFO] [stdout]    --> src/locally.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn whnf<A: std::hash::Hash + Eq + Clone>(term: &Term<Var<A>>, mut vec: Vec<Term<Var<A>>>) -> Term<Var<A>> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `full` is never used
[INFO] [stdout]    --> src/locally.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn full(x: Term<String>) -> Term<String> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]  --> src/dt.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | enum Expr {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Abstraction` is never constructed
[INFO] [stdout]   --> src/dt.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Abstraction {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Variable` is never used
[INFO] [stdout]   --> src/dt.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | enum Variable {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Context` is never constructed
[INFO] [stdout]   --> src/dt.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Context {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `lookup_ty`, `lookup_value`, and `extend` are never used
[INFO] [stdout]   --> src/dt.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Context {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 33 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn lookup_ty(&self, x: &Variable) -> Option<&Rc<Expr>> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     fn lookup_value(&self, x: &Variable) -> Option<&Option<Rc<Expr>>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn extend(&mut self, x: Variable, ty: Rc<Expr>, value: Option<Rc<Expr>>) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `refresh` is never used
[INFO] [stdout]   --> src/dt.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn refresh(x: &Variable) -> Variable {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `subst` is never used
[INFO] [stdout]   --> src/dt.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn subst(s: &HashMap<Variable, Rc<Expr>>, e: &Rc<Expr>) -> Rc<Expr> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `subst_abstraction` is never used
[INFO] [stdout]   --> src/dt.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn subst_abstraction(s: &HashMap<Variable, Rc<Expr>>, a: &Abstraction) -> Abstraction {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `infer_type` is never used
[INFO] [stdout]   --> src/dt.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn infer_type(ctx: &mut Context, e: &Rc<Expr>) -> Result<Rc<Expr>, String> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `infer_universe` is never used
[INFO] [stdout]    --> src/dt.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn infer_universe(ctx: &mut Context, t: &Rc<Expr>) -> Result<i32, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `infer_pi` is never used
[INFO] [stdout]    --> src/dt.rs:132:4
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn infer_pi(ctx: &mut Context, e: &Rc<Expr>) -> Result<(Variable, Rc<Expr>, Rc<Expr>), String> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_equal` is never used
[INFO] [stdout]    --> src/dt.rs:143:4
[INFO] [stdout]     |
[INFO] [stdout] 143 | fn check_equal(ctx: &mut Context, e1: &Rc<Expr>, e2: &Rc<Expr>) -> Result<(), String> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ToSpan` is never used
[INFO] [stdout]   --> src/parser.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait ToSpan<'a> {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/parser.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl<T> Span<T> {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 30 |     pub fn map<U>(self, f: impl Fn(T) -> U) -> Span<U> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn len(&self) -> u32 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn contains(&self, offset: usize) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn diagnostic<U: AsRef<str>>(&self, severity: Severity, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn error<U: AsRef<str>>(&self, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn warning<U: AsRef<str>>(&self, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn info<U: AsRef<str>>(&self, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn note<U: AsRef<str>>(&self, msg: U) -> (PathId, u32, u32, String) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Severity` is never used
[INFO] [stdout]    --> src/parser.rs:105:10
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub enum Severity {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Diagnostic` is never constructed
[INFO] [stdout]    --> src/parser.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct Diagnostic {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_note` is never used
[INFO] [stdout]    --> src/parser.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl Diagnostic {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 121 |     pub fn with_note(mut self, note: (PathId, u32, u32, String)) -> Diagnostic {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with`, `or`, `map`, `option`, and `many0_sep` are never used
[INFO] [stdout]    --> src/parser.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub trait Parser<I: Copy, A>: Sized + Copy {
[INFO] [stdout]     |           ------ methods in this trait
[INFO] [stdout] 128 |     fn parse(&self, input: I) -> Option<(I, A)>;
[INFO] [stdout] 129 |     fn with<P, B>(self, rhs: P) -> impl Parser<I, (A, B)>
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn or<P>(self, rhs: P) -> impl Parser<I, A>
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn map<B, F>(self, f: F) -> impl Parser<I, B>
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     fn option(self) -> impl Parser<I, Option<A>> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn many0_sep<P, X>(self, sep: P) -> impl Parser<I, Vec<A>>
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Input` is never used
[INFO] [stdout]    --> src/parser.rs:211:10
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub type Input<'a> = Span<&'a str>;
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Maybe` is never used
[INFO] [stdout]    --> src/parser.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub enum Maybe<T, E> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `map`, `and_then`, and `unwrap_or_else` are never used
[INFO] [stdout]    --> src/parser.rs:231:12
[INFO] [stdout]     |
[INFO] [stdout] 230 | impl<T, E> Maybe<T, E> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 231 |     pub fn map<U, F>(self, mut f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn and_then<U, F>(self, f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn unwrap_or_else<F>(self, f: F) -> T
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `raise_err` is never used
[INFO] [stdout]    --> src/parser.rs:261:12
[INFO] [stdout]     |
[INFO] [stdout] 260 | impl<T, E: Debug> Maybe<T, E> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 261 |     pub fn raise_err(self, err: &mut Vec<Diagnostic>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maybe` is never used
[INFO] [stdout]    --> src/parser.rs:281:8
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn maybe<'a: 'b, 'b, T, P, N: 'a + Copy, E: Copy>(
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pmatch` is never used
[INFO] [stdout]    --> src/parser.rs:296:8
[INFO] [stdout]     |
[INFO] [stdout] 296 | pub fn pmatch<'a, P: Pattern + Copy>(pat: P) -> impl Parser<Input<'a>, Span<&'a str>> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is` is never used
[INFO] [stdout]    --> src/parser.rs:320:8
[INFO] [stdout]     |
[INFO] [stdout] 320 | pub fn is<'a, P: Pattern + Copy>(pat: P) -> impl Parser<Input<'a>, Span<&'a str>> {
[INFO] [stdout]     |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AstDebug` is never used
[INFO] [stdout]    --> src/parser.rs:341:11
[INFO] [stdout]     |
[INFO] [stdout] 341 | pub trait AstDebug {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Var` is never used
[INFO] [stdout]  --> src/pattern.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Var = i32;
[INFO] [stdout]   |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TypeName` is never used
[INFO] [stdout]  --> src/pattern.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type TypeName = String;
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Constructor` is never used
[INFO] [stdout]  --> src/pattern.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type Constructor = String;
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Type` is never used
[INFO] [stdout]   --> src/pattern.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum Type {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Pattern` is never used
[INFO] [stdout]   --> src/pattern.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum Pattern {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `MatchBody` is never used
[INFO] [stdout]   --> src/pattern.rs:24:6
[INFO] [stdout]    |
[INFO] [stdout] 24 | type MatchBody = i32;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DecisionTree` is never used
[INFO] [stdout]   --> src/pattern.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum DecisionTree {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Warning` is never used
[INFO] [stdout]   --> src/pattern.rs:34:10
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub enum Warning {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Compiler` is never constructed
[INFO] [stdout]   --> src/pattern.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Compiler {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/dt.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let u = infer_type(ctx, t)?;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/dt.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn infer_pi(ctx: &mut Context, e: &Rc<Expr>) -> Result<(Variable, Rc<Expr>, Rc<Expr>), String> {
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/dt.rs:143:16
[INFO] [stdout]     |
[INFO] [stdout] 143 | fn check_equal(ctx: &mut Context, e1: &Rc<Expr>, e2: &Rc<Expr>) -> Result<(), String> {
[INFO] [stdout]     |                ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `fresh`, `fill_context`, `next_hole`, `compile_aux`, and `compile` are never used
[INFO] [stdout]    --> src/pattern.rs:47:12
[INFO] [stdout]     |
[INFO] [stdout] 46  | impl Compiler {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 47  |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59  |     fn fresh(&mut self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64  |     fn fill_context(ctx: &MatchContext, pat: &Pattern) -> Pattern {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82  |     fn next_hole(ctx: &MatchContext, pat: &Pattern) -> MatchContext {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     fn compile_aux(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn compile(&mut self, typ: &Type, arms: &[(Pattern, MatchBody)]) -> (Rc<DecisionTree>, Vec<Warning>) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MatchContext` is never used
[INFO] [stdout]    --> src/pattern.rs:246:6
[INFO] [stdout]     |
[INFO] [stdout] 246 | enum MatchContext {
[INFO] [stdout]     |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MatchArm` is never constructed
[INFO] [stdout]    --> src/pattern.rs:257:8
[INFO] [stdout]     |
[INFO] [stdout] 257 | struct MatchArm {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `either_type`
[INFO] [stdout]    --> src/pattern.rs:267:9
[INFO] [stdout]     |
[INFO] [stdout] 267 |     let either_type = |x: Type, y: Type| Type::Cons("either".to_string(), vec![("Left".to_string(), vec![x]), ("Right".to_string(), vec![...
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_either_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p_left`
[INFO] [stdout]    --> src/pattern.rs:276:9
[INFO] [stdout]     |
[INFO] [stdout] 276 |     let p_left = |p: Pattern| Pattern::PCon("Left".to_string(), vec![p]);
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p_right`
[INFO] [stdout]    --> src/pattern.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |     let p_right = |p: Pattern| Pattern::PCon("Right".to_string(), vec![p]);
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ex1`
[INFO] [stdout]    --> src/pattern.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 282 |     let ex1 = (
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ex1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ex2`
[INFO] [stdout]    --> src/pattern.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 287 |     let ex2 = (
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ex2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ex3`
[INFO] [stdout]    --> src/pattern.rs:292:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |     let ex3 = (
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ex3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ex4`
[INFO] [stdout]    --> src/pattern.rs:302:9
[INFO] [stdout]     |
[INFO] [stdout] 302 |     let ex4 = (
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ex4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ex5`
[INFO] [stdout]    --> src/pattern.rs:311:9
[INFO] [stdout]     |
[INFO] [stdout] 311 |     let ex5 = (
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ex5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ex6`
[INFO] [stdout]    --> src/pattern.rs:319:9
[INFO] [stdout]     |
[INFO] [stdout] 319 |     let ex6 = (
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ex6`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ex8`
[INFO] [stdout]    --> src/pattern.rs:340:9
[INFO] [stdout]     |
[INFO] [stdout] 340 |     let ex8 = (
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ex8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Raw` is never used
[INFO] [stdout]  --> src/nbe_closure_dt.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | enum Raw {
[INFO] [stdout]   |      ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply` is never used
[INFO] [stdout]   --> src/nbe_closure_dt.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Closure {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 37 |     fn apply(self, arg: Value) -> Value {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_val` is never used
[INFO] [stdout]   --> src/nbe_closure_dt.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn apply_val(vf: Value, va: Value) -> Value {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `conv` is never used
[INFO] [stdout]    --> src/nbe_closure_dt.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn conv(l: usize, t: &Value, u: &Value) -> bool {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cxt` is never constructed
[INFO] [stdout]    --> src/nbe_closure_dt.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | struct Cxt {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `empty`, `bind`, and `define` are never used
[INFO] [stdout]    --> src/nbe_closure_dt.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl Cxt {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 150 |     fn empty(pos: usize) -> Self {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn bind(&self, x: String, a: Value) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn define(&self, x: String, t: Value, a: Value) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `report` is never used
[INFO] [stdout]    --> src/nbe_closure_dt.rs:186:4
[INFO] [stdout]     |
[INFO] [stdout] 186 | fn report(cxt: &Cxt, msg: &str) -> Result<(Term, Value), (String, usize)> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]    --> src/nbe_closure_dt.rs:199:4
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn check(cxt: &Cxt, t: &Raw, a: &Value) -> Result<Term, (String, usize)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `infer` is never used
[INFO] [stdout]    --> src/nbe_closure_dt.rs:242:4
[INFO] [stdout]     |
[INFO] [stdout] 242 | fn infer(cxt: &Cxt, t: &Raw) -> Result<(Term, Value), (String, usize)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Dummy` is never constructed
[INFO] [stdout]   --> src/dt.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | enum Variable {
[INFO] [stdout]    |      -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 24 |     Dummy,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Variable` 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 `lookup_value` is never used
[INFO] [stdout]   --> src/dt.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Context {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     fn lookup_value(&self, x: &Variable) -> Option<&Option<Rc<Expr>>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ToSpan` is never used
[INFO] [stdout]   --> src/parser.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait ToSpan<'a> {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/parser.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl<T> Span<T> {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 30 |     pub fn map<U>(self, f: impl Fn(T) -> U) -> Span<U> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn len(&self) -> u32 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn contains(&self, offset: usize) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn diagnostic<U: AsRef<str>>(&self, severity: Severity, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn error<U: AsRef<str>>(&self, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn warning<U: AsRef<str>>(&self, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn info<U: AsRef<str>>(&self, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn note<U: AsRef<str>>(&self, msg: U) -> (PathId, u32, u32, String) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Severity` is never used
[INFO] [stdout]    --> src/parser.rs:105:10
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub enum Severity {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Diagnostic` is never constructed
[INFO] [stdout]    --> src/parser.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct Diagnostic {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_note` is never used
[INFO] [stdout]    --> src/parser.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl Diagnostic {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 121 |     pub fn with_note(mut self, note: (PathId, u32, u32, String)) -> Diagnostic {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with`, `or`, `map`, `option`, and `many0_sep` are never used
[INFO] [stdout]    --> src/parser.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub trait Parser<I: Copy, A>: Sized + Copy {
[INFO] [stdout]     |           ------ methods in this trait
[INFO] [stdout] 128 |     fn parse(&self, input: I) -> Option<(I, A)>;
[INFO] [stdout] 129 |     fn with<P, B>(self, rhs: P) -> impl Parser<I, (A, B)>
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn or<P>(self, rhs: P) -> impl Parser<I, A>
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn map<B, F>(self, f: F) -> impl Parser<I, B>
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     fn option(self) -> impl Parser<I, Option<A>> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn many0_sep<P, X>(self, sep: P) -> impl Parser<I, Vec<A>>
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Input` is never used
[INFO] [stdout]    --> src/parser.rs:211:10
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub type Input<'a> = Span<&'a str>;
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Maybe` is never used
[INFO] [stdout]    --> src/parser.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub enum Maybe<T, E> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `map`, `and_then`, and `unwrap_or_else` are never used
[INFO] [stdout]    --> src/parser.rs:231:12
[INFO] [stdout]     |
[INFO] [stdout] 230 | impl<T, E> Maybe<T, E> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 231 |     pub fn map<U, F>(self, mut f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn and_then<U, F>(self, f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn unwrap_or_else<F>(self, f: F) -> T
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `raise_err` is never used
[INFO] [stdout]    --> src/parser.rs:261:12
[INFO] [stdout]     |
[INFO] [stdout] 260 | impl<T, E: Debug> Maybe<T, E> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 261 |     pub fn raise_err(self, err: &mut Vec<Diagnostic>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maybe` is never used
[INFO] [stdout]    --> src/parser.rs:281:8
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn maybe<'a: 'b, 'b, T, P, N: 'a + Copy, E: Copy>(
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pmatch` is never used
[INFO] [stdout]    --> src/parser.rs:296:8
[INFO] [stdout]     |
[INFO] [stdout] 296 | pub fn pmatch<'a, P: Pattern + Copy>(pat: P) -> impl Parser<Input<'a>, Span<&'a str>> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is` is never used
[INFO] [stdout]    --> src/parser.rs:320:8
[INFO] [stdout]     |
[INFO] [stdout] 320 | pub fn is<'a, P: Pattern + Copy>(pat: P) -> impl Parser<Input<'a>, Span<&'a str>> {
[INFO] [stdout]     |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AstDebug` is never used
[INFO] [stdout]    --> src/parser.rs:341:11
[INFO] [stdout]     |
[INFO] [stdout] 341 | pub trait AstDebug {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/pattern.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Leaf(MatchBody),
[INFO] [stdout]    |     ---- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` 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] 29 -     Leaf(MatchBody),
[INFO] [stdout] 29 +     Leaf(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/pattern.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 |     Branch(TypeName, Var, Vec<(Constructor, Vec<Var>, Rc<DecisionTree>)>),
[INFO] [stdout]    |     ------ ^^^^^^^^  ^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 30 -     Branch(TypeName, Var, Vec<(Constructor, Vec<Var>, Rc<DecisionTree>)>),
[INFO] [stdout] 30 +     Branch((), (), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/pattern.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |     Unreachable(MatchBody),
[INFO] [stdout]    |     ----------- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` 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] 35 -     Unreachable(MatchBody),
[INFO] [stdout] 35 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/pattern.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 |     Unmatched(Pattern),
[INFO] [stdout]    |     --------- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` 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] 36 -     Unmatched(Pattern),
[INFO] [stdout] 36 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.43s
[INFO] running `Command { std: "docker" "inspect" "0a3cb8eb0de212677fe91eb93d31424b994d980b58e8804f7b23b4a398a2a69e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0a3cb8eb0de212677fe91eb93d31424b994d980b58e8804f7b23b4a398a2a69e", kill_on_drop: false }`
[INFO] [stdout] 0a3cb8eb0de212677fe91eb93d31424b994d980b58e8804f7b23b4a398a2a69e
