[INFO] cloning repository https://github.com/todaymare/ballslang
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/todaymare/ballslang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftodaymare%2Fballslang", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftodaymare%2Fballslang'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3745853026be8272839258d6bdff21f1c3e309db
[INFO] checking todaymare/ballslang against try#54cf65b8d066c082e536455049b95943cf30378f for pr-151920
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftodaymare%2Fballslang" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/todaymare/ballslang
[INFO] finished tweaking git repo https://github.com/todaymare/ballslang
[INFO] tweaked toml for git repo https://github.com/todaymare/ballslang written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/todaymare/ballslang on toolchain 54cf65b8d066c082e536455049b95943cf30378f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+54cf65b8d066c082e536455049b95943cf30378f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/todaymare/ballslang 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" "+54cf65b8d066c082e536455049b95943cf30378f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+54cf65b8d066c082e536455049b95943cf30378f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3880143cd3d1dd249dda6cdeff571c8dbabe0cd5a4314e7a723c6605875dd4bc
[INFO] running `Command { std: "docker" "start" "-a" "3880143cd3d1dd249dda6cdeff571c8dbabe0cd5a4314e7a723c6605875dd4bc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3880143cd3d1dd249dda6cdeff571c8dbabe0cd5a4314e7a723c6605875dd4bc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3880143cd3d1dd249dda6cdeff571c8dbabe0cd5a4314e7a723c6605875dd4bc", kill_on_drop: false }`
[INFO] [stdout] 3880143cd3d1dd249dda6cdeff571c8dbabe0cd5a4314e7a723c6605875dd4bc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+54cf65b8d066c082e536455049b95943cf30378f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0d2bb5312ddc5e979d73d058617ed0228073d9d32d6bfa4dede737bc79a70187
[INFO] running `Command { std: "docker" "start" "-a" "0d2bb5312ddc5e979d73d058617ed0228073d9d32d6bfa4dede737bc79a70187", kill_on_drop: false }`
[INFO] [stderr]     Checking ballslang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/lexer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | 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: `std::fmt`
[INFO] [stdout]  --> src/lexer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | 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: variants `Force` and `Block` are never constructed
[INFO] [stdout]   --> src/ast.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     Force(Box<Expr>, Span),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     Block(Vec<Expr>, Span),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:170:11
[INFO] [stdout]     |
[INFO] [stdout] 170 |     Named(String, Span),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeAnnotation` 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] 170 -     Named(String, Span),
[INFO] [stdout] 170 +     Named((), Span),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/ast.rs:171:13
[INFO] [stdout]     |
[INFO] [stdout] 171 |     Generic(String, Vec<TypeAnnotation>, Span),
[INFO] [stdout]     |     ------- ^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeAnnotation` 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] 171 -     Generic(String, Vec<TypeAnnotation>, Span),
[INFO] [stdout] 171 +     Generic((), (), Span),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/ast.rs:172:14
[INFO] [stdout]     |
[INFO] [stdout] 172 |     Function(Box<TypeAnnotation>, Box<TypeAnnotation>, Span),
[INFO] [stdout]     |     -------- ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeAnnotation` 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] 172 -     Function(Box<TypeAnnotation>, Box<TypeAnnotation>, Span),
[INFO] [stdout] 172 +     Function((), (), Span),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:173:11
[INFO] [stdout]     |
[INFO] [stdout] 173 |     Tuple(Vec<TypeAnnotation>, Span),
[INFO] [stdout]     |     ----- ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeAnnotation` 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] 173 -     Tuple(Vec<TypeAnnotation>, Span),
[INFO] [stdout] 173 +     Tuple((), Span),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:174:10
[INFO] [stdout]     |
[INFO] [stdout] 174 |     List(Box<TypeAnnotation>, Span),
[INFO] [stdout]     |     ---- ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeAnnotation` 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] 174 -     List(Box<TypeAnnotation>, Span),
[INFO] [stdout] 174 +     List((), Span),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `3` is never read
[INFO] [stdout]    --> src/ast.rs:180:48
[INFO] [stdout]     |
[INFO] [stdout] 180 |     Let(Pattern, Option<TypeAnnotation>, Expr, Span),
[INFO] [stdout]     |     --- field in this variant                  ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Decl` 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] 180 -     Let(Pattern, Option<TypeAnnotation>, Expr, Span),
[INFO] [stdout] 180 +     Let(Pattern, Option<TypeAnnotation>, Expr, ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read
[INFO] [stdout]    --> src/ast.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |     TypeDef(String, Vec<String>, Vec<Variant>, Span),
[INFO] [stdout]     |     ------- ^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Decl` 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] 181 -     TypeDef(String, Vec<String>, Vec<Variant>, Span),
[INFO] [stdout] 181 +     TypeDef((), (), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `fields`, and `span` are never read
[INFO] [stdout]    --> src/ast.rs:188:9
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub struct Variant {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 188 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 189 |     pub fields: Vec<TypeAnnotation>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 190 |     pub span: Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Variant` 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: struct `TypeEnv` is never constructed
[INFO] [stdout]   --> src/env.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct TypeEnv {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_parent`, `insert`, `get`, and `all_bindings` are never used
[INFO] [stdout]   --> src/env.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl TypeEnv {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn with_parent(parent: Rc<TypeEnv>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn insert(&mut self, name: String, scheme: Scheme) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn get(&self, name: &str) -> Option<Scheme> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn all_bindings(&self) -> HashMap<String, Scheme> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set` is never used
[INFO] [stdout]   --> src/env.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl Env {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn set(&self, name: &str, value: Value) -> bool {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BallsError` is never used
[INFO] [stdout]  --> src/error.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum BallsError {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Infer` is never constructed
[INFO] [stdout]  --> src/infer.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Infer {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/infer.rs:15:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Infer {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  15 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     fn fresh(&mut self) -> Type {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     fn instantiate(&mut self, scheme: &Scheme) -> Type {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     fn substitute_vars(&self, ty: &Type, vars: &HashMap<usize, Type>) -> Type {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     fn generalize(&self, env: &TypeEnv, ty: &Type) -> Scheme {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn unify(&mut self, t1: &Type, t2: &Type) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn occurs_check(&self, var: usize, ty: &Type) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn infer_expr(&mut self, env: &TypeEnv, expr: &Expr) -> Result<Type, String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |     fn infer_pattern(&mut self, env: &mut TypeEnv, pattern: &Pattern) -> Result<Type, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 426 |     fn bind_pattern(&mut self, env: &mut TypeEnv, pattern: &Pattern, ty: &Type) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 477 |     pub fn finalize(&self, ty: &Type) -> Type {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]   --> src/lexer.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub struct Lexer<'a> {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 96 |     input: &'a str,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Type` is never used
[INFO] [stdout]  --> src/types.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum Type {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scheme` is never constructed
[INFO] [stdout]   --> src/types.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct Scheme {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `mono` and `poly` are never used
[INFO] [stdout]    --> src/types.rs:96:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl Scheme {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout]  96 |     pub fn mono(ty: Type) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn poly(vars: Vec<usize>, ty: Type) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Substitution` is never constructed
[INFO] [stdout]    --> src/types.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct Substitution {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, `apply`, `apply_scheme`, and `compose` are never used
[INFO] [stdout]    --> src/types.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl Substitution {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 112 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn insert(&mut self, var: usize, ty: Type) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn apply(&self, ty: &Type) -> Type {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn apply_scheme(&self, scheme: &Scheme) -> Scheme {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn compose(&self, other: &Substitution) -> Substitution {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `free_vars` is never used
[INFO] [stdout]    --> src/types.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn free_vars(ty: &Type) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `free_vars_scheme` is never used
[INFO] [stdout]    --> src/types.rs:225:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub fn free_vars_scheme(scheme: &Scheme) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Constructor` is never constructed
[INFO] [stdout]   --> src/value.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Value {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     Constructor(String, Vec<Value>),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Force` and `Block` are never constructed
[INFO] [stdout]   --> src/ast.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     Force(Box<Expr>, Span),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     Block(Vec<Expr>, Span),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:170:11
[INFO] [stdout]     |
[INFO] [stdout] 170 |     Named(String, Span),
[INFO] [stdout]     |     ----- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeAnnotation` 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] 170 -     Named(String, Span),
[INFO] [stdout] 170 +     Named((), Span),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/ast.rs:171:13
[INFO] [stdout]     |
[INFO] [stdout] 171 |     Generic(String, Vec<TypeAnnotation>, Span),
[INFO] [stdout]     |     ------- ^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeAnnotation` 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] 171 -     Generic(String, Vec<TypeAnnotation>, Span),
[INFO] [stdout] 171 +     Generic((), (), Span),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/ast.rs:172:14
[INFO] [stdout]     |
[INFO] [stdout] 172 |     Function(Box<TypeAnnotation>, Box<TypeAnnotation>, Span),
[INFO] [stdout]     |     -------- ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeAnnotation` 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] 172 -     Function(Box<TypeAnnotation>, Box<TypeAnnotation>, Span),
[INFO] [stdout] 172 +     Function((), (), Span),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:173:11
[INFO] [stdout]     |
[INFO] [stdout] 173 |     Tuple(Vec<TypeAnnotation>, Span),
[INFO] [stdout]     |     ----- ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeAnnotation` 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] 173 -     Tuple(Vec<TypeAnnotation>, Span),
[INFO] [stdout] 173 +     Tuple((), Span),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:174:10
[INFO] [stdout]     |
[INFO] [stdout] 174 |     List(Box<TypeAnnotation>, Span),
[INFO] [stdout]     |     ---- ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeAnnotation` 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] 174 -     List(Box<TypeAnnotation>, Span),
[INFO] [stdout] 174 +     List((), Span),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `3` is never read
[INFO] [stdout]    --> src/ast.rs:180:48
[INFO] [stdout]     |
[INFO] [stdout] 180 |     Let(Pattern, Option<TypeAnnotation>, Expr, Span),
[INFO] [stdout]     |     --- field in this variant                  ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Decl` 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] 180 -     Let(Pattern, Option<TypeAnnotation>, Expr, Span),
[INFO] [stdout] 180 +     Let(Pattern, Option<TypeAnnotation>, Expr, ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read
[INFO] [stdout]    --> src/ast.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |     TypeDef(String, Vec<String>, Vec<Variant>, Span),
[INFO] [stdout]     |     ------- ^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Decl` 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] 181 -     TypeDef(String, Vec<String>, Vec<Variant>, Span),
[INFO] [stdout] 181 +     TypeDef((), (), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `fields`, and `span` are never read
[INFO] [stdout]    --> src/ast.rs:188:9
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub struct Variant {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 188 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 189 |     pub fields: Vec<TypeAnnotation>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 190 |     pub span: Span,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Variant` 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 `set` is never used
[INFO] [stdout]   --> src/env.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl Env {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn set(&self, name: &str, value: Value) -> bool {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BallsError` is never used
[INFO] [stdout]  --> src/error.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum BallsError {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalize` is never used
[INFO] [stdout]    --> src/infer.rs:477:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Infer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 477 |     pub fn finalize(&self, ty: &Type) -> Type {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]   --> src/lexer.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub struct Lexer<'a> {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 96 |     input: &'a str,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Named` and `Forall` are never constructed
[INFO] [stdout]   --> src/types.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum Type {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     Named(String, Vec<Type>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     Forall(Vec<usize>, Box<Type>),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Type` 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: associated function `mono` is never used
[INFO] [stdout]   --> src/types.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 95 | impl Scheme {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 96 |     pub fn mono(ty: Type) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `apply_scheme` and `compose` are never used
[INFO] [stdout]    --> src/types.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl Substitution {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn apply_scheme(&self, scheme: &Scheme) -> Scheme {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn compose(&self, other: &Substitution) -> Substitution {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Constructor` is never constructed
[INFO] [stdout]   --> src/value.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Value {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     Constructor(String, Vec<Value>),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.55s
[INFO] running `Command { std: "docker" "inspect" "0d2bb5312ddc5e979d73d058617ed0228073d9d32d6bfa4dede737bc79a70187", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0d2bb5312ddc5e979d73d058617ed0228073d9d32d6bfa4dede737bc79a70187", kill_on_drop: false }`
[INFO] [stdout] 0d2bb5312ddc5e979d73d058617ed0228073d9d32d6bfa4dede737bc79a70187
