[INFO] cloning repository https://github.com/lazear/types-and-programming-languages [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lazear/types-and-programming-languages" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flazear%2Ftypes-and-programming-languages", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flazear%2Ftypes-and-programming-languages'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0787493713b41639878db206e76d82fa8f29a77a [INFO] building lazear/types-and-programming-languages against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flazear%2Ftypes-and-programming-languages" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/lazear/types-and-programming-languages on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/lazear/types-and-programming-languages [INFO] finished tweaking git repo https://github.com/lazear/types-and-programming-languages [INFO] tweaked toml for git repo https://github.com/lazear/types-and-programming-languages written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/lazear/types-and-programming-languages 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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "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-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5c213aed30a53c256dbfe137990d4979407fc7f570e4072c4f4a8a10a7e2e063 [INFO] running `Command { std: "docker" "start" "-a" "5c213aed30a53c256dbfe137990d4979407fc7f570e4072c4f4a8a10a7e2e063", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5c213aed30a53c256dbfe137990d4979407fc7f570e4072c4f4a8a10a7e2e063", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5c213aed30a53c256dbfe137990d4979407fc7f570e4072c4f4a8a10a7e2e063", kill_on_drop: false }` [INFO] [stdout] 5c213aed30a53c256dbfe137990d4979407fc7f570e4072c4f4a8a10a7e2e063 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5e448a1e6c9a0c732c3cb84d38730f23dd0f6ccef9411202146a9a18d3ad41b3 [INFO] running `Command { std: "docker" "start" "-a" "5e448a1e6c9a0c732c3cb84d38730f23dd0f6ccef9411202146a9a18d3ad41b3", kill_on_drop: false }` [INFO] [stderr] Compiling util v0.1.0 (/opt/rustwide/workdir/util) [INFO] [stderr] Compiling bidir v0.1.0 (/opt/rustwide/workdir/x1_bidir) [INFO] [stderr] Compiling dependent v0.1.0 (/opt/rustwide/workdir/x2_dependent) [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> x2_dependent/src/main.rs:215:6 [INFO] [stdout] | [INFO] [stdout] 215 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `ife` [INFO] [stdout] --> x1_bidir/src/helpers.rs:27:14 [INFO] [stdout] | [INFO] [stdout] 27 | macro_rules! ife { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `karrow` [INFO] [stdout] --> x1_bidir/src/helpers.rs:39:14 [INFO] [stdout] | [INFO] [stdout] 39 | macro_rules! karrow { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `case` [INFO] [stdout] --> x1_bidir/src/helpers.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | macro_rules! case { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `proj` [INFO] [stdout] --> x1_bidir/src/helpers.rs:79:14 [INFO] [stdout] | [INFO] [stdout] 79 | macro_rules! proj { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> x2_dependent/src/main.rs:168:16 [INFO] [stdout] | [INFO] [stdout] 168 | fn beta_reduce(mut term: Term) -> Term { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> x2_dependent/src/main.rs:170:19 [INFO] [stdout] | [INFO] [stdout] 170 | Term::App(mut abs, arg) => match (abs.normal(), arg.normal()) { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `whnf` is never used [INFO] [stdout] --> x2_dependent/src/main.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 12 | impl Term { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | fn whnf(&self) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> x2_dependent/src/main.rs:70:11 [INFO] [stdout] | [INFO] [stdout] 70 | NotPi(Term), [INFO] [stdout] | ----- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Error` 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] 70 | NotPi(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> x2_dependent/src/main.rs:71:14 [INFO] [stdout] | [INFO] [stdout] 71 | Mismatch(Term, Term), [INFO] [stdout] | -------- ^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Error` 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] 71 | Mismatch((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `S` should have a snake case name [INFO] [stdout] --> x2_dependent/src/main.rs:136:23 [INFO] [stdout] | [INFO] [stdout] 136 | Term::Abs(S, t) => { [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `T` should have a snake case name [INFO] [stdout] --> x2_dependent/src/main.rs:138:21 [INFO] [stdout] | [INFO] [stdout] 138 | let T = self.with_bind(k.clone(), |f| f.type_of(&t))?; [INFO] [stdout] | ^ help: convert the identifier to snake case: `t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `S` should have a snake case name [INFO] [stdout] --> x2_dependent/src/main.rs:145:30 [INFO] [stdout] | [INFO] [stdout] 145 | Term::Pi(S, mut T) => { [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `T` should have a snake case name [INFO] [stdout] --> x2_dependent/src/main.rs:145:37 [INFO] [stdout] | [INFO] [stdout] 145 | Term::Pi(S, mut T) => { [INFO] [stdout] | ^ help: convert the identifier to snake case: `t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> x2_dependent/src/main.rs:227:5 [INFO] [stdout] | [INFO] [stdout] 227 | dbg!(ctx.type_of(&tm)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this warning originates in the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/helpers.rs:117:24 [INFO] [stdout] | [INFO] [stdout] 117 | Type::Univ(k, ty) => format!("forall {}. {}", vc, walk(ty, map)), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> x1_bidir/src/helpers.rs:164:13 [INFO] [stdout] | [INFO] [stdout] 164 | _ => "".into(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> x1_bidir/src/helpers.rs:164:13 [INFO] [stdout] | [INFO] [stdout] 134 | Expr::Unit => "()".into(), [INFO] [stdout] | ---------- matches some of the same values [INFO] [stdout] 135 | Expr::True => "true".into(), [INFO] [stdout] | ---------- matches some of the same values [INFO] [stdout] 136 | Expr::False => "false".into(), [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] 137 | Expr::Int(i) => format!("{}", i), [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 164 | _ => "".into(), [INFO] [stdout] | ^ ...and 11 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> x1_bidir/src/helpers.rs:151:36 [INFO] [stdout] | [INFO] [stdout] 151 | Expr::Inj(LR::Left, e, ty) => format!("inl {}", walk(e, map)), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> x1_bidir/src/helpers.rs:152:37 [INFO] [stdout] | [INFO] [stdout] 152 | Expr::Inj(LR::Right, e, ty) => format!("inr {}", walk(e, map)), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> util/src/unsafe_arena.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | let mut chunk = self.chunk.get(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:67:28 [INFO] [stdout] | [INFO] [stdout] 67 | Type::Univ(k, a) => walk(a, vec), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:68:27 [INFO] [stdout] | [INFO] [stdout] 68 | Type::Abs(k, a) => walk(a, vec), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:97:28 [INFO] [stdout] | [INFO] [stdout] 97 | Type::Univ(k, a) => walk(a, c + 1, s), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:98:27 [INFO] [stdout] | [INFO] [stdout] 98 | Type::Abs(k, a) => walk(a, c + 1, s), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Info` is never constructed [INFO] [stdout] --> util/src/unsafe_arena.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | struct Info { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `chunks` is never used [INFO] [stdout] --> util/src/unsafe_arena.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 45 | impl Arena { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 81 | fn chunks(&self) -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:127:28 [INFO] [stdout] | [INFO] [stdout] 127 | Type::Univ(k, a) => walk(a, c + 1, f), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:128:27 [INFO] [stdout] | [INFO] [stdout] 128 | Type::Abs(k, a) => walk(a, c + 1, f), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> util/src/arena.rs:204:17 [INFO] [stdout] | [INFO] [stdout] 204 | std::mem::replace(&mut self.data[i], prev); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 204 | let _ = std::mem::replace(&mut self.data[i], prev); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> x1_bidir/src/main.rs:358:27 [INFO] [stdout] | [INFO] [stdout] 358 | fn kinding(&mut self, ty: &Type) -> Option { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> x1_bidir/src/main.rs:365:25 [INFO] [stdout] | [INFO] [stdout] 365 | Type::Exist(v) => Ok(()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:432:19 [INFO] [stdout] | [INFO] [stdout] 432 | (Univ(k, a), b) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:717:24 [INFO] [stdout] | [INFO] [stdout] 717 | Type::Univ(k, a) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `g` [INFO] [stdout] --> x1_bidir/src/main.rs:802:9 [INFO] [stdout] | [INFO] [stdout] 802 | let g = app!(h, abs!(var!(0))); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_g` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> x1_bidir/src/main.rs:806:9 [INFO] [stdout] | [INFO] [stdout] 806 | let f = ann!(Expr::Int(99), ty); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Arrow` is never constructed [INFO] [stdout] --> x1_bidir/src/main.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 12 | enum Kind { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] 13 | Star, [INFO] [stdout] 14 | Arrow(Box, Box), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Kind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Right` is never constructed [INFO] [stdout] --> x1_bidir/src/main.rs:150:5 [INFO] [stdout] | [INFO] [stdout] 148 | enum LR { [INFO] [stdout] | -- variant in this enum [INFO] [stdout] 149 | Left, [INFO] [stdout] 150 | Right, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LR` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Unit`, `False`, `If`, `Case`, and `Proj` are never constructed [INFO] [stdout] --> x1_bidir/src/main.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 155 | enum Expr { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] 156 | /// The unit expression, () [INFO] [stdout] 157 | Unit, [INFO] [stdout] | ^^^^ [INFO] [stdout] 158 | True, [INFO] [stdout] 159 | False, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 160 | If(Box, Box, Box), [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 173 | Case(Box, Arm, Arm), [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | Proj(LR, Box), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expr` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling typedarith v0.1.0 (/opt/rustwide/workdir/03_typedarith) [INFO] [stderr] Compiling recon v0.1.0 (/opt/rustwide/workdir/05_recon) [INFO] [stderr] Compiling stlc v0.1.0 (/opt/rustwide/workdir/04_stlc) [INFO] [stderr] Compiling system_f v0.1.0 (/opt/rustwide/workdir/06_system_f) [INFO] [stderr] Compiling arith v0.1.0 (/opt/rustwide/workdir/01_arith) [INFO] [stderr] Compiling system_fw v0.1.0 (/opt/rustwide/workdir/07_system_fw) [INFO] [stderr] Compiling lambda v0.1.0 (/opt/rustwide/workdir/02_lambda) [INFO] [stdout] warning: unused import: `Primitive` [INFO] [stdout] --> 06_system_f/src/terms/visit.rs:2:31 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::terms::{Arm, Kind, Primitive, Term}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> 05_recon/src/main.rs:224:21 [INFO] [stdout] | [INFO] [stdout] 224 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::Type::*` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use super::Type::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Field` and `Record` [INFO] [stdout] --> 07_system_fw/src/typecheck.rs:3:30 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::terms::{Constant, Field, Kind, Record, Term}; [INFO] [stdout] | ^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::sync::atomic::AtomicBool::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead [INFO] [stdout] --> 05_recon/src/mutation/write_once.rs:45:23 [INFO] [stdout] | [INFO] [stdout] 45 | if !self.init.compare_and_swap(false, true, Ordering::Acquire) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::sync::atomic::AtomicBool::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead [INFO] [stdout] --> 05_recon/src/mutation/write_once.rs:57:23 [INFO] [stdout] | [INFO] [stdout] 57 | if !self.init.compare_and_swap(false, false, Ordering::Release) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start` [INFO] [stdout] --> 05_recon/src/parser.rs:263:13 [INFO] [stdout] | [INFO] [stdout] 263 | let start = self.expect(TokenKind::Lambda)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_start` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start` [INFO] [stdout] --> 05_recon/src/parser.rs:277:13 [INFO] [stdout] | [INFO] [stdout] 277 | let start = self.expect(TokenKind::Let)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `span` [INFO] [stdout] --> 05_recon/src/parser.rs:294:13 [INFO] [stdout] | [INFO] [stdout] 294 | let span = self.span; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_span` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `span` [INFO] [stdout] --> 05_recon/src/parser.rs:302:27 [INFO] [stdout] | [INFO] [stdout] 302 | let Token { kind, span } = self.consume()?; [INFO] [stdout] | ^^^^ help: try ignoring the field: `span: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sp` [INFO] [stdout] --> 05_recon/src/parser.rs:352:21 [INFO] [stdout] | [INFO] [stdout] 352 | let sp = self.consume()?.span; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_sp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Visitor` is never used [INFO] [stdout] --> 04_stlc/src/visitor.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Visitor: Sized { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `visit_typedecl` is never used [INFO] [stdout] --> 04_stlc/src/visitor.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 20 | pub trait MutVisitor: Sized { [INFO] [stdout] | ---------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 57 | fn visit_typedecl(&mut self, name: &mut String, ty: &mut Type) {} [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vars` [INFO] [stdout] --> 05_recon/src/types.rs:99:26 [INFO] [stdout] | [INFO] [stdout] 99 | Scheme::Poly(vars, ty) => ty.ftv(), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_vars` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> 05_recon/src/main.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | let input = "fn m. let y = m in let x = y true in x"; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `expr` and `ty` are never read [INFO] [stdout] --> 05_recon/src/main.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct SystemF { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 36 | expr: TypedTerm, [INFO] [stdout] | ^^^^ [INFO] [stdout] 37 | ty: T, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `SystemF` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Elaborator` is never constructed [INFO] [stdout] --> 05_recon/src/main.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | struct Elaborator { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Elaborator` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `de` are never used [INFO] [stdout] --> 05_recon/src/main.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 55 | impl SystemF { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 56 | fn new(expr: TypedTerm, ty: Type) -> SystemF { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | fn de(self) -> (TypedTerm, Type) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> 05_recon/src/main.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 65 | impl Elaborator { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 66 | fn fresh(&mut self) -> TypeVar { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn ftv(&self) -> HashSet { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | fn get_scheme(&self, index: usize) -> Option<&Scheme> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | fn generalize(&mut self, ty: Type) -> Scheme { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | fn instantiate(&mut self, scheme: Scheme) -> Type { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | fn push(&mut self, ty: (Type, Type)) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn elaborate(&mut self, term: &Term) -> SystemF { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `subst` is never used [INFO] [stdout] --> 05_recon/src/main.rs:201:8 [INFO] [stdout] | [INFO] [stdout] 200 | impl TypedTerm { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 201 | fn subst(self, s: &HashMap) -> TypedTerm { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `subst` is never used [INFO] [stdout] --> 05_recon/src/main.rs:214:8 [INFO] [stdout] | [INFO] [stdout] 213 | impl SystemF { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 214 | fn subst(self, s: &HashMap) -> SystemF { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_var` is never used [INFO] [stdout] --> 05_recon/src/disjoint.rs:146:8 [INFO] [stdout] | [INFO] [stdout] 145 | impl Unification { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 146 | fn is_var(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `expr` is never read [INFO] [stdout] --> 05_recon/src/mutation/mod.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct SystemF { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 40 | expr: TypedTerm, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SystemF` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `WriteOnceCell` is never used [INFO] [stdout] --> 05_recon/src/mutation/write_once.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub type WriteOnceCell = Rc>; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:128:14 [INFO] [stdout] | [INFO] [stdout] 128 | for (name, key) in &self.constructors { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:482:46 [INFO] [stdout] | [INFO] [stdout] 482 | let ty = tyvars.iter().fold(ty, |ty, var| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_var` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:559:46 [INFO] [stdout] | [INFO] [stdout] 559 | let ty = tyvars.iter().fold(ty, |ty, var| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_var` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d1` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:784:27 [INFO] [stdout] | [INFO] [stdout] 784 | DeclKind::And(d1, d2) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_d1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d2` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:784:31 [INFO] [stdout] | [INFO] [stdout] 784 | DeclKind::And(d1, d2) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_d2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:843:35 [INFO] [stdout] | [INFO] [stdout] 843 | PatKind::Ascribe(pat, ty) => self.visit_pat(&pat), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `con` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:844:34 [INFO] [stdout] | [INFO] [stdout] 844 | PatKind::Application(con, arg) => self.visit_pat(&arg), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_con` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:851:41 [INFO] [stdout] | [INFO] [stdout] 851 | DeclKind::Datatype(_, name, ty) => self.types.push(&name), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:852:37 [INFO] [stdout] | [INFO] [stdout] 852 | DeclKind::Type(_, name, ty) => self.types.push(&name), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:853:37 [INFO] [stdout] | [INFO] [stdout] 853 | DeclKind::Value(_, pat, expr) => self.visit_pat(pat), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arms` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:858:41 [INFO] [stdout] | [INFO] [stdout] 858 | DeclKind::Function(_, name, arms) => self.values.push(&name), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_arms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `usize` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:64:17 [INFO] [stdout] | [INFO] [stdout] 64 | Int(usize) => Ok(Type::Int), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_usize` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:66:24 [INFO] [stdout] | [INFO] [stdout] 66 | ProgramVar(id) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:69:20 [INFO] [stdout] | [INFO] [stdout] 69 | Constr(id, tag) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:69:24 [INFO] [stdout] | [INFO] [stdout] 69 | Constr(id, tag) => unimplemented!(), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_tag` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:70:22 [INFO] [stdout] | [INFO] [stdout] 70 | Deconstr(id, tag) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:70:26 [INFO] [stdout] | [INFO] [stdout] 70 | Deconstr(id, tag) => unimplemented!(), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_tag` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e1` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:71:16 [INFO] [stdout] | [INFO] [stdout] 71 | If(e1, e2, e3) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_e1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e2` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:71:20 [INFO] [stdout] | [INFO] [stdout] 71 | If(e1, e2, e3) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_e2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e3` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:71:24 [INFO] [stdout] | [INFO] [stdout] 71 | If(e1, e2, e3) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_e3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:73:21 [INFO] [stdout] | [INFO] [stdout] 73 | Abs(ty, ex) => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e1` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | App(e1, e2) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_e1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e2` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:77:21 [INFO] [stdout] | [INFO] [stdout] 77 | App(e1, e2) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_e2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:78:19 [INFO] [stdout] | [INFO] [stdout] 78 | TyAbs(k, ex) => unimplemented!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:78:22 [INFO] [stdout] | [INFO] [stdout] 78 | TyAbs(k, ex) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:79:19 [INFO] [stdout] | [INFO] [stdout] 79 | TyApp(ex, ty) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:79:23 [INFO] [stdout] | [INFO] [stdout] 79 | TyApp(ex, ty) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:95:24 [INFO] [stdout] | [INFO] [stdout] 95 | RecordProj(ex, idx) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:95:28 [INFO] [stdout] | [INFO] [stdout] 95 | RecordProj(ex, idx) => unimplemented!(), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:96:23 [INFO] [stdout] | [INFO] [stdout] 96 | TupleProj(ex, idx) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:96:27 [INFO] [stdout] | [INFO] [stdout] 96 | TupleProj(ex, idx) => unimplemented!(), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:97:18 [INFO] [stdout] | [INFO] [stdout] 97 | Case(ex, arms) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arms` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:97:22 [INFO] [stdout] | [INFO] [stdout] 97 | Case(ex, arms) => unimplemented!(), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_arms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `decls` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:98:17 [INFO] [stdout] | [INFO] [stdout] 98 | Let(decls, ex) => unimplemented!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_decls` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:98:24 [INFO] [stdout] | [INFO] [stdout] 98 | Let(decls, ex) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 99 | Fix(ex) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | ctx.infer(e); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 115 | let _ = ctx.infer(e); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.60s [INFO] running `Command { std: "docker" "inspect" "5e448a1e6c9a0c732c3cb84d38730f23dd0f6ccef9411202146a9a18d3ad41b3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5e448a1e6c9a0c732c3cb84d38730f23dd0f6ccef9411202146a9a18d3ad41b3", kill_on_drop: false }` [INFO] [stdout] 5e448a1e6c9a0c732c3cb84d38730f23dd0f6ccef9411202146a9a18d3ad41b3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 32e12046d4fd72c4e4a4cefff67c0de6190afe632adbe23ca8f219a1eae70fd7 [INFO] running `Command { std: "docker" "start" "-a" "32e12046d4fd72c4e4a4cefff67c0de6190afe632adbe23ca8f219a1eae70fd7", kill_on_drop: false }` [INFO] [stderr] Compiling arith v0.1.0 (/opt/rustwide/workdir/01_arith) [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> util/src/unsafe_arena.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | let mut chunk = self.chunk.get(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling system_fw v0.1.0 (/opt/rustwide/workdir/07_system_fw) [INFO] [stdout] warning: struct `Info` is never constructed [INFO] [stdout] --> util/src/unsafe_arena.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | struct Info { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `chunks` is never used [INFO] [stdout] --> util/src/unsafe_arena.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 45 | impl Arena { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 81 | fn chunks(&self) -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> util/src/arena.rs:204:17 [INFO] [stdout] | [INFO] [stdout] 204 | std::mem::replace(&mut self.data[i], prev); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 204 | let _ = std::mem::replace(&mut self.data[i], prev); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling stlc v0.1.0 (/opt/rustwide/workdir/04_stlc) [INFO] [stderr] Compiling lambda v0.1.0 (/opt/rustwide/workdir/02_lambda) [INFO] [stderr] Compiling recon v0.1.0 (/opt/rustwide/workdir/05_recon) [INFO] [stderr] Compiling system_f v0.1.0 (/opt/rustwide/workdir/06_system_f) [INFO] [stderr] Compiling typedarith v0.1.0 (/opt/rustwide/workdir/03_typedarith) [INFO] [stderr] Compiling bidir v0.1.0 (/opt/rustwide/workdir/x1_bidir) [INFO] [stderr] Compiling util v0.1.0 (/opt/rustwide/workdir/util) [INFO] [stderr] Compiling dependent v0.1.0 (/opt/rustwide/workdir/x2_dependent) [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> x2_dependent/src/main.rs:215:6 [INFO] [stdout] | [INFO] [stdout] 215 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> 05_recon/src/main.rs:224:21 [INFO] [stdout] | [INFO] [stdout] 224 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `karrow` [INFO] [stdout] --> x1_bidir/src/helpers.rs:39:14 [INFO] [stdout] | [INFO] [stdout] 39 | macro_rules! karrow { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `helpers::*` [INFO] [stdout] --> x1_bidir/src/main.rs:827:9 [INFO] [stdout] | [INFO] [stdout] 827 | use helpers::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> x2_dependent/src/main.rs:168:16 [INFO] [stdout] | [INFO] [stdout] 168 | fn beta_reduce(mut term: Term) -> Term { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> x2_dependent/src/main.rs:170:19 [INFO] [stdout] | [INFO] [stdout] 170 | Term::App(mut abs, arg) => match (abs.normal(), arg.normal()) { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Primitive` [INFO] [stdout] --> 06_system_f/src/terms/visit.rs:2:31 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::terms::{Arm, Kind, Primitive, Term}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `whnf` is never used [INFO] [stdout] --> x2_dependent/src/main.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 12 | impl Term { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | fn whnf(&self) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> x2_dependent/src/main.rs:70:11 [INFO] [stdout] | [INFO] [stdout] 70 | NotPi(Term), [INFO] [stdout] | ----- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Error` 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] 70 | NotPi(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> x2_dependent/src/main.rs:71:14 [INFO] [stdout] | [INFO] [stdout] 71 | Mismatch(Term, Term), [INFO] [stdout] | -------- ^^^^ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Error` 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] 71 | Mismatch((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `S` should have a snake case name [INFO] [stdout] --> x2_dependent/src/main.rs:136:23 [INFO] [stdout] | [INFO] [stdout] 136 | Term::Abs(S, t) => { [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `T` should have a snake case name [INFO] [stdout] --> x2_dependent/src/main.rs:138:21 [INFO] [stdout] | [INFO] [stdout] 138 | let T = self.with_bind(k.clone(), |f| f.type_of(&t))?; [INFO] [stdout] | ^ help: convert the identifier to snake case: `t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `S` should have a snake case name [INFO] [stdout] --> x2_dependent/src/main.rs:145:30 [INFO] [stdout] | [INFO] [stdout] 145 | Term::Pi(S, mut T) => { [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `T` should have a snake case name [INFO] [stdout] --> x2_dependent/src/main.rs:145:37 [INFO] [stdout] | [INFO] [stdout] 145 | Term::Pi(S, mut T) => { [INFO] [stdout] | ^ help: convert the identifier to snake case: `t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::Type::*` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use super::Type::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> x2_dependent/src/main.rs:227:5 [INFO] [stdout] | [INFO] [stdout] 227 | dbg!(ctx.type_of(&tm)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this warning originates in the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::sync::atomic::AtomicBool::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead [INFO] [stdout] --> 05_recon/src/mutation/write_once.rs:45:23 [INFO] [stdout] | [INFO] [stdout] 45 | if !self.init.compare_and_swap(false, true, Ordering::Acquire) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::sync::atomic::AtomicBool::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead [INFO] [stdout] --> 05_recon/src/mutation/write_once.rs:57:23 [INFO] [stdout] | [INFO] [stdout] 57 | if !self.init.compare_and_swap(false, false, Ordering::Release) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/helpers.rs:117:24 [INFO] [stdout] | [INFO] [stdout] 117 | Type::Univ(k, ty) => format!("forall {}. {}", vc, walk(ty, map)), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> x1_bidir/src/helpers.rs:164:13 [INFO] [stdout] | [INFO] [stdout] 164 | _ => "".into(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> x1_bidir/src/helpers.rs:164:13 [INFO] [stdout] | [INFO] [stdout] 134 | Expr::Unit => "()".into(), [INFO] [stdout] | ---------- matches some of the same values [INFO] [stdout] 135 | Expr::True => "true".into(), [INFO] [stdout] | ---------- matches some of the same values [INFO] [stdout] 136 | Expr::False => "false".into(), [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] 137 | Expr::Int(i) => format!("{}", i), [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 164 | _ => "".into(), [INFO] [stdout] | ^ ...and 11 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> x1_bidir/src/helpers.rs:151:36 [INFO] [stdout] | [INFO] [stdout] 151 | Expr::Inj(LR::Left, e, ty) => format!("inl {}", walk(e, map)), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> x1_bidir/src/helpers.rs:152:37 [INFO] [stdout] | [INFO] [stdout] 152 | Expr::Inj(LR::Right, e, ty) => format!("inr {}", walk(e, map)), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> util/src/unsafe_arena.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | let mut chunk = self.chunk.get(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `new_cap` is never read [INFO] [stdout] --> util/src/unsafe_arena.rs:353:9 [INFO] [stdout] | [INFO] [stdout] 353 | new_cap = cmp::max(new_cap, 0x1000 / mem::size_of::()); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:67:28 [INFO] [stdout] | [INFO] [stdout] 67 | Type::Univ(k, a) => walk(a, vec), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:68:27 [INFO] [stdout] | [INFO] [stdout] 68 | Type::Abs(k, a) => walk(a, vec), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:97:28 [INFO] [stdout] | [INFO] [stdout] 97 | Type::Univ(k, a) => walk(a, c + 1, s), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:98:27 [INFO] [stdout] | [INFO] [stdout] 98 | Type::Abs(k, a) => walk(a, c + 1, s), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:127:28 [INFO] [stdout] | [INFO] [stdout] 127 | Type::Univ(k, a) => walk(a, c + 1, f), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:128:27 [INFO] [stdout] | [INFO] [stdout] 128 | Type::Abs(k, a) => walk(a, c + 1, f), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> util/src/arena.rs:204:17 [INFO] [stdout] | [INFO] [stdout] 204 | std::mem::replace(&mut self.data[i], prev); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 204 | let _ = std::mem::replace(&mut self.data[i], prev); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> x1_bidir/src/main.rs:358:27 [INFO] [stdout] | [INFO] [stdout] 358 | fn kinding(&mut self, ty: &Type) -> Option { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> x1_bidir/src/main.rs:365:25 [INFO] [stdout] | [INFO] [stdout] 365 | Type::Exist(v) => Ok(()), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:432:19 [INFO] [stdout] | [INFO] [stdout] 432 | (Univ(k, a), b) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> x1_bidir/src/main.rs:717:24 [INFO] [stdout] | [INFO] [stdout] 717 | Type::Univ(k, a) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Visitor` is never used [INFO] [stdout] --> 04_stlc/src/visitor.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Visitor: Sized { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `visit_typedecl` is never used [INFO] [stdout] --> 04_stlc/src/visitor.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 20 | pub trait MutVisitor: Sized { [INFO] [stdout] | ---------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 57 | fn visit_typedecl(&mut self, name: &mut String, ty: &mut Type) {} [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `g` [INFO] [stdout] --> x1_bidir/src/main.rs:802:9 [INFO] [stdout] | [INFO] [stdout] 802 | let g = app!(h, abs!(var!(0))); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_g` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> x1_bidir/src/main.rs:806:9 [INFO] [stdout] | [INFO] [stdout] 806 | let f = ann!(Expr::Int(99), ty); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start` [INFO] [stdout] --> 05_recon/src/parser.rs:263:13 [INFO] [stdout] | [INFO] [stdout] 263 | let start = self.expect(TokenKind::Lambda)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_start` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `start` [INFO] [stdout] --> 05_recon/src/parser.rs:277:13 [INFO] [stdout] | [INFO] [stdout] 277 | let start = self.expect(TokenKind::Let)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_start` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `span` [INFO] [stdout] --> 05_recon/src/parser.rs:294:13 [INFO] [stdout] | [INFO] [stdout] 294 | let span = self.span; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_span` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `span` [INFO] [stdout] --> 05_recon/src/parser.rs:302:27 [INFO] [stdout] | [INFO] [stdout] 302 | let Token { kind, span } = self.consume()?; [INFO] [stdout] | ^^^^ help: try ignoring the field: `span: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sp` [INFO] [stdout] --> 05_recon/src/parser.rs:352:21 [INFO] [stdout] | [INFO] [stdout] 352 | let sp = self.consume()?.span; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_sp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vars` [INFO] [stdout] --> 05_recon/src/types.rs:99:26 [INFO] [stdout] | [INFO] [stdout] 99 | Scheme::Poly(vars, ty) => ty.ftv(), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_vars` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Arrow` is never constructed [INFO] [stdout] --> x1_bidir/src/main.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 12 | enum Kind { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] 13 | Star, [INFO] [stdout] 14 | Arrow(Box, Box), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Kind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> 05_recon/src/main.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | let input = "fn m. let y = m in let x = y true in x"; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `expr` and `ty` are never read [INFO] [stdout] --> 05_recon/src/main.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct SystemF { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 36 | expr: TypedTerm, [INFO] [stdout] | ^^^^ [INFO] [stdout] 37 | ty: T, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `SystemF` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Elaborator` is never constructed [INFO] [stdout] --> 05_recon/src/main.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | struct Elaborator { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Elaborator` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `de` are never used [INFO] [stdout] --> 05_recon/src/main.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 55 | impl SystemF { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 56 | fn new(expr: TypedTerm, ty: Type) -> SystemF { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | fn de(self) -> (TypedTerm, Type) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> 05_recon/src/main.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 65 | impl Elaborator { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 66 | fn fresh(&mut self) -> TypeVar { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn ftv(&self) -> HashSet { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | fn get_scheme(&self, index: usize) -> Option<&Scheme> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | fn generalize(&mut self, ty: Type) -> Scheme { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | fn instantiate(&mut self, scheme: Scheme) -> Type { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | fn push(&mut self, ty: (Type, Type)) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn elaborate(&mut self, term: &Term) -> SystemF { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `subst` is never used [INFO] [stdout] --> 05_recon/src/main.rs:201:8 [INFO] [stdout] | [INFO] [stdout] 200 | impl TypedTerm { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 201 | fn subst(self, s: &HashMap) -> TypedTerm { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `subst` is never used [INFO] [stdout] --> 05_recon/src/main.rs:214:8 [INFO] [stdout] | [INFO] [stdout] 213 | impl SystemF { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 214 | fn subst(self, s: &HashMap) -> SystemF { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_var` is never used [INFO] [stdout] --> 05_recon/src/disjoint.rs:146:8 [INFO] [stdout] | [INFO] [stdout] 145 | impl Unification { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 146 | fn is_var(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `expr` is never read [INFO] [stdout] --> 05_recon/src/mutation/mod.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct SystemF { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 40 | expr: TypedTerm, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SystemF` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `WriteOnceCell` is never used [INFO] [stdout] --> 05_recon/src/mutation/write_once.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub type WriteOnceCell = Rc>; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:128:14 [INFO] [stdout] | [INFO] [stdout] 128 | for (name, key) in &self.constructors { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:482:46 [INFO] [stdout] | [INFO] [stdout] 482 | let ty = tyvars.iter().fold(ty, |ty, var| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_var` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:559:46 [INFO] [stdout] | [INFO] [stdout] 559 | let ty = tyvars.iter().fold(ty, |ty, var| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_var` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d1` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:784:27 [INFO] [stdout] | [INFO] [stdout] 784 | DeclKind::And(d1, d2) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_d1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d2` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:784:31 [INFO] [stdout] | [INFO] [stdout] 784 | DeclKind::And(d1, d2) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_d2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:843:35 [INFO] [stdout] | [INFO] [stdout] 843 | PatKind::Ascribe(pat, ty) => self.visit_pat(&pat), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `con` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:844:34 [INFO] [stdout] | [INFO] [stdout] 844 | PatKind::Application(con, arg) => self.visit_pat(&arg), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_con` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:851:41 [INFO] [stdout] | [INFO] [stdout] 851 | DeclKind::Datatype(_, name, ty) => self.types.push(&name), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:852:37 [INFO] [stdout] | [INFO] [stdout] 852 | DeclKind::Type(_, name, ty) => self.types.push(&name), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:853:37 [INFO] [stdout] | [INFO] [stdout] 853 | DeclKind::Value(_, pat, expr) => self.visit_pat(pat), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arms` [INFO] [stdout] --> 07_system_fw/src/elaborate.rs:858:41 [INFO] [stdout] | [INFO] [stdout] 858 | DeclKind::Function(_, name, arms) => self.values.push(&name), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_arms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `usize` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:64:17 [INFO] [stdout] | [INFO] [stdout] 64 | Int(usize) => Ok(Type::Int), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_usize` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:66:24 [INFO] [stdout] | [INFO] [stdout] 66 | ProgramVar(id) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:69:20 [INFO] [stdout] | [INFO] [stdout] 69 | Constr(id, tag) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:69:24 [INFO] [stdout] | [INFO] [stdout] 69 | Constr(id, tag) => unimplemented!(), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_tag` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:70:22 [INFO] [stdout] | [INFO] [stdout] 70 | Deconstr(id, tag) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tag` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:70:26 [INFO] [stdout] | [INFO] [stdout] 70 | Deconstr(id, tag) => unimplemented!(), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_tag` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e1` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:71:16 [INFO] [stdout] | [INFO] [stdout] 71 | If(e1, e2, e3) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_e1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e2` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:71:20 [INFO] [stdout] | [INFO] [stdout] 71 | If(e1, e2, e3) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_e2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e3` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:71:24 [INFO] [stdout] | [INFO] [stdout] 71 | If(e1, e2, e3) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_e3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:73:21 [INFO] [stdout] | [INFO] [stdout] 73 | Abs(ty, ex) => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e1` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | App(e1, e2) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_e1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e2` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:77:21 [INFO] [stdout] | [INFO] [stdout] 77 | App(e1, e2) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_e2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:78:19 [INFO] [stdout] | [INFO] [stdout] 78 | TyAbs(k, ex) => unimplemented!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:78:22 [INFO] [stdout] | [INFO] [stdout] 78 | TyAbs(k, ex) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:79:19 [INFO] [stdout] | [INFO] [stdout] 79 | TyApp(ex, ty) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:79:23 [INFO] [stdout] | [INFO] [stdout] 79 | TyApp(ex, ty) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:95:24 [INFO] [stdout] | [INFO] [stdout] 95 | RecordProj(ex, idx) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:95:28 [INFO] [stdout] | [INFO] [stdout] 95 | RecordProj(ex, idx) => unimplemented!(), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:96:23 [INFO] [stdout] | [INFO] [stdout] 96 | TupleProj(ex, idx) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:96:27 [INFO] [stdout] | [INFO] [stdout] 96 | TupleProj(ex, idx) => unimplemented!(), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:97:18 [INFO] [stdout] | [INFO] [stdout] 97 | Case(ex, arms) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arms` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:97:22 [INFO] [stdout] | [INFO] [stdout] 97 | Case(ex, arms) => unimplemented!(), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_arms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `decls` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:98:17 [INFO] [stdout] | [INFO] [stdout] 98 | Let(decls, ex) => unimplemented!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_decls` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:98:24 [INFO] [stdout] | [INFO] [stdout] 98 | Let(decls, ex) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex` [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 99 | Fix(ex) => unimplemented!(), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> 07_system_fw/src/hir/bidir.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | ctx.infer(e); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 115 | let _ = ctx.infer(e); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.96s [INFO] running `Command { std: "docker" "inspect" "32e12046d4fd72c4e4a4cefff67c0de6190afe632adbe23ca8f219a1eae70fd7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "32e12046d4fd72c4e4a4cefff67c0de6190afe632adbe23ca8f219a1eae70fd7", kill_on_drop: false }` [INFO] [stdout] 32e12046d4fd72c4e4a4cefff67c0de6190afe632adbe23ca8f219a1eae70fd7