[INFO] cloning repository https://github.com/ThePerkinrex/lamalang
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ThePerkinrex/lamalang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThePerkinrex%2Flamalang", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThePerkinrex%2Flamalang'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 014328347b60e69db655b30a6fce53b653915beb
[INFO] checking ThePerkinrex/lamalang against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThePerkinrex%2Flamalang" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ThePerkinrex/lamalang
[INFO] finished tweaking git repo https://github.com/ThePerkinrex/lamalang
[INFO] tweaked toml for git repo https://github.com/ThePerkinrex/lamalang written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ThePerkinrex/lamalang on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ThePerkinrex/lamalang 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" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9def3d94b0eb000c240d6296976a6346c88f8a68384f591ade36498ca5e209e2
[INFO] running `Command { std: "docker" "start" "-a" "9def3d94b0eb000c240d6296976a6346c88f8a68384f591ade36498ca5e209e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9def3d94b0eb000c240d6296976a6346c88f8a68384f591ade36498ca5e209e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9def3d94b0eb000c240d6296976a6346c88f8a68384f591ade36498ca5e209e2", kill_on_drop: false }`
[INFO] [stdout] 9def3d94b0eb000c240d6296976a6346c88f8a68384f591ade36498ca5e209e2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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 -Dunmustuse_in_always_ok" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6f0b887f6c53554878cd705747413c52f923fa56675729dc1b26b6e0029bffa2
[INFO] running `Command { std: "docker" "start" "-a" "6f0b887f6c53554878cd705747413c52f923fa56675729dc1b26b6e0029bffa2", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.57
[INFO] [stderr]    Compiling libc v0.2.81
[INFO] [stderr]    Compiling maplit v1.0.2
[INFO] [stderr]    Compiling unicode-segmentation v1.7.1
[INFO] [stderr]     Checking unicode-width v0.1.8
[INFO] [stderr]     Checking ahash v0.4.7
[INFO] [stderr]     Checking ucd-trie v0.1.3
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling pest_meta v2.1.3
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking hashbrown v0.9.1
[INFO] [stderr]     Checking pest v2.1.3
[INFO] [stderr]    Compiling heck v0.3.2
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]    Compiling pest_generator v2.1.3
[INFO] [stderr]    Compiling structopt-derive v0.4.14
[INFO] [stderr]    Compiling pest_derive v2.1.0
[INFO] [stderr]     Checking structopt v0.3.21
[INFO] [stderr]     Checking lamalang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/backend/js.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::PathBuf;
[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: `path::PathBuf`
[INFO] [stdout]  --> src/span.rs:3:2
[INFO] [stdout]   |
[INFO] [stdout] 3 |     path::PathBuf,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `backend::print_ast`
[INFO] [stdout]  --> src/options.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use backend::print_ast;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/backend/js.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::PathBuf;
[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: `path::PathBuf`
[INFO] [stdout]  --> src/span.rs:3:2
[INFO] [stdout]   |
[INFO] [stdout] 3 |     path::PathBuf,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `backend::print_ast`
[INFO] [stdout]  --> src/options.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use backend::print_ast;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> src/backend/interpreter.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn eval_expr(&self, expr: Span<Expr>, options: CodegenOptions) -> Return<String> {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `module`
[INFO] [stdout]   --> src/backend/interpreter.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn codegen(&self, module: crate::modules::ModuleTree, options: CodegenOptions) -> Return<String> {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_module`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/backend/interpreter.rs:27:56
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn codegen(&self, module: crate::modules::ModuleTree, options: CodegenOptions) -> Return<String> {
[INFO] [stdout]    |                                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]  --> src/backend/js.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn eval_expr(&self, expr: Span<Expr>, options: CodegenOptions) -> Return<String> {
[INFO] [stdout]   |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `module`
[INFO] [stdout]   --> src/backend/js.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn codegen(&self, module: crate::modules::ModuleTree, options: CodegenOptions) -> Return<String> {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_module`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/backend/js.rs:17:56
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn codegen(&self, module: crate::modules::ModuleTree, options: CodegenOptions) -> Return<String> {
[INFO] [stdout]    |                                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> src/backend/interpreter.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn eval_expr(&self, expr: Span<Expr>, options: CodegenOptions) -> Return<String> {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `module`
[INFO] [stdout]   --> src/backend/interpreter.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn codegen(&self, module: crate::modules::ModuleTree, options: CodegenOptions) -> Return<String> {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_module`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/backend/interpreter.rs:27:56
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn codegen(&self, module: crate::modules::ModuleTree, options: CodegenOptions) -> Return<String> {
[INFO] [stdout]    |                                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]  --> src/backend/js.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn eval_expr(&self, expr: Span<Expr>, options: CodegenOptions) -> Return<String> {
[INFO] [stdout]   |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `module`
[INFO] [stdout]   --> src/backend/js.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn codegen(&self, module: crate::modules::ModuleTree, options: CodegenOptions) -> Return<String> {
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_module`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/backend/js.rs:17:56
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn codegen(&self, module: crate::modules::ModuleTree, options: CodegenOptions) -> Return<String> {
[INFO] [stdout]    |                                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fns`, `trait_defs`, `trait_impls`, and `impls` are never read
[INFO] [stdout]  --> src/ast.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct AstModule {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 5 |     pub mods: Vec<Mod>,
[INFO] [stdout] 6 |     pub fns: Vec<FnDef>,
[INFO] [stdout]   |         ^^^
[INFO] [stdout] 7 |     pub trait_defs: Vec<TraitDef>,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 8 |     pub trait_impls: Vec<TraitImpl>,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 9 |     pub impls: Vec<Impl>
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AstModule` has a derived impl for the trait `Debug`, but this is 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: multiple fields are never read
[INFO] [stdout]   --> src/ast.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct FnDef {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 26 |     pub pub_kw: Option<Span<()>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 27 |     pub name: Span<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 28 |     pub generics: Option<Generics>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 29 |     pub where_clause: Option<WhereClause>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 30 |     pub args: Vec<FnArg>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 31 |     pub return_type: Span<Type>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 32 |     pub body: Span<Block>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FnDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pub_kw`, `name`, `generics`, `where_clause`, `args`, and `return_type` are never read
[INFO] [stdout]   --> src/ast.rs:37:6
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct FnSignatureDef {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 37 |     pub pub_kw: Option<Span<()>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 38 |     pub name: Span<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 39 |     pub generics: Option<Generics>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 40 |     pub where_clause: Option<WhereClause>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 41 |     pub args: Vec<FnArg>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 42 |     pub return_type: Span<Type>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FnSignatureDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/ast.rs:47:6
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct TraitDef {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 47 |     pub pub_kw: Option<Span<()>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 48 |     pub name: Span<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 49 |     pub generics: Option<Generics>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 50 |     pub where_clause: Option<WhereClause>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 51 |     pub fn_defs: Vec<FnDef>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 52 |     pub fn_signatures: Vec<FnSignatureDef>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 53 |     pub types: Vec<(Span<TypeInTrait>, Vec<Span<Trait>>)>
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TraitDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `generics`, `trait_`, `type_`, `where_clause`, `fn_defs`, and `types` are never read
[INFO] [stdout]   --> src/ast.rs:58:6
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct TraitImpl {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 58 |     pub generics: Option<Generics>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 59 |     pub trait_: Span<Trait>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 60 |     pub type_: Span<Type>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 61 |     pub where_clause: Option<WhereClause>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 62 |     pub fn_defs: Vec<FnDef>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 63 |     pub types: Vec<(Span<TypeInTrait>, Span<Type>)>
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TraitImpl` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `generics` are never read
[INFO] [stdout]   --> src/ast.rs:95:3
[INFO] [stdout]    |
[INFO] [stdout] 94 |     Other {
[INFO] [stdout]    |     ----- fields in this variant
[INFO] [stdout] 95 |         name: Span<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 96 |         generics: Vec<Span<Type>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Type` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `generics` are never read
[INFO] [stdout]    --> src/ast.rs:108:6
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct Trait {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 108 |     pub name: Span<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 109 |     pub generics: Vec<Span<Type>>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Trait` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `generics` are never read
[INFO] [stdout]    --> src/ast.rs:114:6
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct TypeInTrait {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 114 |     pub name: Span<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 115 |     pub generics: Vec<Span<String>>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeInTrait` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 125 |     Returning(Expr),
[INFO] [stdout]     |     --------- ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Statement` has a derived impl for the trait `Debug`, but this is 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] 125 -     Returning(Expr),
[INFO] [stdout] 125 +     Returning(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:126:15
[INFO] [stdout]     |
[INFO] [stdout] 126 |     NonReturning(Expr),
[INFO] [stdout]     |     ------------ ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Statement` has a derived impl for the trait `Debug`, but this is 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] 126 -     NonReturning(Expr),
[INFO] [stdout] 126 +     NonReturning(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:133:10
[INFO] [stdout]     |
[INFO] [stdout] 133 |     Literal(Literal),
[INFO] [stdout]     |     ------- ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 133 -     Literal(Literal),
[INFO] [stdout] 133 +     Literal(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> src/ast.rs:134:6
[INFO] [stdout]     |
[INFO] [stdout] 134 |     Add(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 134 -     Add(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout] 134 +     Add((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> src/ast.rs:135:6
[INFO] [stdout]     |
[INFO] [stdout] 135 |     Sub(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 135 -     Sub(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout] 135 +     Sub((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> src/ast.rs:136:6
[INFO] [stdout]     |
[INFO] [stdout] 136 |     Mul(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 136 -     Mul(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout] 136 +     Mul((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> src/ast.rs:137:6
[INFO] [stdout]     |
[INFO] [stdout] 137 |     Div(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 137 -     Div(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout] 137 +     Div((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> src/ast.rs:138:6
[INFO] [stdout]     |
[INFO] [stdout] 138 |     Pow(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 138 -     Pow(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout] 138 +     Pow((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:139:6
[INFO] [stdout]     |
[INFO] [stdout] 139 |     Not(BoxedSpan<Expr>),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 139 -     Not(BoxedSpan<Expr>),
[INFO] [stdout] 139 +     Not(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/ast.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     FnCall(BoxedSpan<Expr>, Vec<BoxedSpan<Expr>>),
[INFO] [stdout]     |     ------ ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 140 -     FnCall(BoxedSpan<Expr>, Vec<BoxedSpan<Expr>>),
[INFO] [stdout] 140 +     FnCall((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read
[INFO] [stdout]    --> src/ast.rs:142:3
[INFO] [stdout]     |
[INFO] [stdout] 141 |     If(
[INFO] [stdout]     |     -- fields in this variant
[INFO] [stdout] 142 |         BoxedSpan<Expr>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 143 |         Block,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 144 |         Vec<(BoxedSpan<Expr>, Block)>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 145 |         Option<Block>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 142 ~         (),
[INFO] [stdout] 143 ~         (),
[INFO] [stdout] 144 ~         (),
[INFO] [stdout] 145 ~         (),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 |     Ident(Vec<Span<String>>),
[INFO] [stdout]     |     ----- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 147 -     Ident(Vec<Span<String>>),
[INFO] [stdout] 147 +     Ident(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 |     Float(f64),
[INFO] [stdout]     |     ----- ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Literal` has a derived impl for the trait `Debug`, but this is 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] 152 -     Float(f64),
[INFO] [stdout] 152 +     Float(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:153:6
[INFO] [stdout]     |
[INFO] [stdout] 153 |     Int(i64),
[INFO] [stdout]     |     --- ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Literal` has a derived impl for the trait `Debug`, but this is 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] 153 -     Int(i64),
[INFO] [stdout] 153 +     Int(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |     String(String),
[INFO] [stdout]     |     ------ ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Literal` has a derived impl for the trait `Debug`, but this is 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] 154 -     String(String),
[INFO] [stdout] 154 +     String(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `eval_expr` is never used
[INFO] [stdout]  --> src/backend/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub trait Backend {
[INFO] [stdout]   |           ------- method in this trait
[INFO] [stdout] 8 |     fn eval_expr(&self, expr: Span<Expr>, options: CodegenOptions) -> Return<String>;
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Codegen` is never constructed
[INFO] [stdout]  --> src/backend/js.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Codegen;
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `externlibs` is never read
[INFO] [stdout]   --> src/modules.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ModuleTree {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 13 |     pub externlibs: HashMap<String, ModuleTree>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree` is never used
[INFO] [stdout]   --> src/parser/mod.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn tree<T: Display>(pairs: Pairs<Rule>, space: T) {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ModulePath` is never used
[INFO] [stdout]  --> src/checker/db.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type ModulePath = Vec<String>;
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeDB` is never constructed
[INFO] [stdout]  --> src/checker/db.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct TypeDB {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_root` is never used
[INFO] [stdout]   --> src/checker/db.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl TypeDB {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 13 |     pub fn new_root() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TypeDBNode` is never used
[INFO] [stdout]   --> src/checker/db.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum TypeDBNode {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Type` is never constructed
[INFO] [stdout]   --> src/checker/db.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Type {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_impl` and `add_trait_impl` are never used
[INFO] [stdout]   --> src/checker/db.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Type {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 34 |     pub fn add_impl(&mut self, i: Impl) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn add_trait_impl(&mut self, path: ModulePath, i: TraitImpl) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NoMainError`, `WarnTest`, and `InfoTest` are never constructed
[INFO] [stdout]   --> src/error.rs:10:2
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum ErrorCode {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 10 |     NoMainError,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 11 |     // Warn
[INFO] [stdout] 12 |     WarnTest,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 13 |     // Info
[INFO] [stdout] 14 |     InfoTest,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ErrorCode` 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: field `span` is never read
[INFO] [stdout]   --> src/error.rs:52:2
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct Error {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 51 |     code: ErrorCode,
[INFO] [stdout] 52 |     span: Span<()>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]   --> src/error.rs:81:2
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct NonLocatedError {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 80 |     code: ErrorCode,
[INFO] [stdout] 81 |     message: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `display` are never used
[INFO] [stdout]   --> src/error.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 84 | impl NonLocatedError {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 85 |     pub fn new(code: ErrorCode, message: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn display(self) -> Result<(), Self> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Repl` is never constructed
[INFO] [stdout]   --> src/fs.rs:14:2
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum File {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] 14 |     Repl(usize),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `File` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `insert_repl_statement` is never used
[INFO] [stdout]   --> src/fs.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Fs {
[INFO] [stdout]    | ------- method in this implementation
[INFO] [stdout] 39 |     pub fn insert_repl_statement(&mut self, statement: String) -> File {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `into_error` is never used
[INFO] [stdout]    --> src/span.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl<T> Span<T> {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn into_error<S: ToString>(self, error_code: ErrorCode, message: S) -> Error {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `lib` and `out` are never read
[INFO] [stdout]   --> src/options.rs:64:6
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct CodegenOptions {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 64 |     pub lib: bool,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 65 |     pub out: Option<PathBuf>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PathBuf, Infallible>
[INFO] [stdout]   --> src/options.rs:11:2
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     /// Path to the entry point for compilation or execution (leave empty for repl)
[INFO] [stdout] 12 | |     pub input_file: Option<PathBuf>,
[INFO] [stdout]    | |___________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PathBuf, Infallible>
[INFO] [stdout]   --> src/options.rs:16:2
[INFO] [stdout]    |
[INFO] [stdout] 16 | /     /// Output file path
[INFO] [stdout] 17 | |     #[structopt(short, required_ifs(&Backend::out_required(&["interpret", "print_ast"], &[])))]
[INFO] [stdout] 18 | |     out: Option<PathBuf>,
[INFO] [stdout]    | |________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `lamalang` (bin "lamalang") due to 2 previous errors; 50 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: fields `fns`, `trait_defs`, `trait_impls`, and `impls` are never read
[INFO] [stdout]  --> src/ast.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct AstModule {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 5 |     pub mods: Vec<Mod>,
[INFO] [stdout] 6 |     pub fns: Vec<FnDef>,
[INFO] [stdout]   |         ^^^
[INFO] [stdout] 7 |     pub trait_defs: Vec<TraitDef>,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 8 |     pub trait_impls: Vec<TraitImpl>,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 9 |     pub impls: Vec<Impl>
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AstModule` has a derived impl for the trait `Debug`, but this is 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: multiple fields are never read
[INFO] [stdout]   --> src/ast.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct FnDef {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 26 |     pub pub_kw: Option<Span<()>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 27 |     pub name: Span<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 28 |     pub generics: Option<Generics>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 29 |     pub where_clause: Option<WhereClause>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 30 |     pub args: Vec<FnArg>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 31 |     pub return_type: Span<Type>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 32 |     pub body: Span<Block>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FnDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pub_kw`, `name`, `generics`, `where_clause`, `args`, and `return_type` are never read
[INFO] [stdout]   --> src/ast.rs:37:6
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct FnSignatureDef {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 37 |     pub pub_kw: Option<Span<()>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 38 |     pub name: Span<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 39 |     pub generics: Option<Generics>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 40 |     pub where_clause: Option<WhereClause>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 41 |     pub args: Vec<FnArg>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 42 |     pub return_type: Span<Type>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FnSignatureDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/ast.rs:47:6
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct TraitDef {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 47 |     pub pub_kw: Option<Span<()>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 48 |     pub name: Span<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 49 |     pub generics: Option<Generics>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 50 |     pub where_clause: Option<WhereClause>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 51 |     pub fn_defs: Vec<FnDef>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 52 |     pub fn_signatures: Vec<FnSignatureDef>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 53 |     pub types: Vec<(Span<TypeInTrait>, Vec<Span<Trait>>)>
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TraitDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `generics`, `trait_`, `type_`, `where_clause`, `fn_defs`, and `types` are never read
[INFO] [stdout]   --> src/ast.rs:58:6
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct TraitImpl {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 58 |     pub generics: Option<Generics>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 59 |     pub trait_: Span<Trait>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 60 |     pub type_: Span<Type>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 61 |     pub where_clause: Option<WhereClause>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 62 |     pub fn_defs: Vec<FnDef>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 63 |     pub types: Vec<(Span<TypeInTrait>, Span<Type>)>
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TraitImpl` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `generics` are never read
[INFO] [stdout]   --> src/ast.rs:95:3
[INFO] [stdout]    |
[INFO] [stdout] 94 |     Other {
[INFO] [stdout]    |     ----- fields in this variant
[INFO] [stdout] 95 |         name: Span<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 96 |         generics: Vec<Span<Type>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Type` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `generics` are never read
[INFO] [stdout]    --> src/ast.rs:108:6
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct Trait {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 108 |     pub name: Span<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 109 |     pub generics: Vec<Span<Type>>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Trait` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `generics` are never read
[INFO] [stdout]    --> src/ast.rs:114:6
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct TypeInTrait {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 114 |     pub name: Span<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 115 |     pub generics: Vec<Span<String>>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeInTrait` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 125 |     Returning(Expr),
[INFO] [stdout]     |     --------- ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Statement` has a derived impl for the trait `Debug`, but this is 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] 125 -     Returning(Expr),
[INFO] [stdout] 125 +     Returning(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:126:15
[INFO] [stdout]     |
[INFO] [stdout] 126 |     NonReturning(Expr),
[INFO] [stdout]     |     ------------ ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Statement` has a derived impl for the trait `Debug`, but this is 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] 126 -     NonReturning(Expr),
[INFO] [stdout] 126 +     NonReturning(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:133:10
[INFO] [stdout]     |
[INFO] [stdout] 133 |     Literal(Literal),
[INFO] [stdout]     |     ------- ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 133 -     Literal(Literal),
[INFO] [stdout] 133 +     Literal(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> src/ast.rs:134:6
[INFO] [stdout]     |
[INFO] [stdout] 134 |     Add(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 134 -     Add(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout] 134 +     Add((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> src/ast.rs:135:6
[INFO] [stdout]     |
[INFO] [stdout] 135 |     Sub(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 135 -     Sub(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout] 135 +     Sub((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> src/ast.rs:136:6
[INFO] [stdout]     |
[INFO] [stdout] 136 |     Mul(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 136 -     Mul(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout] 136 +     Mul((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> src/ast.rs:137:6
[INFO] [stdout]     |
[INFO] [stdout] 137 |     Div(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 137 -     Div(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout] 137 +     Div((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]    --> src/ast.rs:138:6
[INFO] [stdout]     |
[INFO] [stdout] 138 |     Pow(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 138 -     Pow(BoxedSpan<Expr>, Span<()>, BoxedSpan<Expr>),
[INFO] [stdout] 138 +     Pow((), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:139:6
[INFO] [stdout]     |
[INFO] [stdout] 139 |     Not(BoxedSpan<Expr>),
[INFO] [stdout]     |     --- ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 139 -     Not(BoxedSpan<Expr>),
[INFO] [stdout] 139 +     Not(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/ast.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     FnCall(BoxedSpan<Expr>, Vec<BoxedSpan<Expr>>),
[INFO] [stdout]     |     ------ ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 140 -     FnCall(BoxedSpan<Expr>, Vec<BoxedSpan<Expr>>),
[INFO] [stdout] 140 +     FnCall((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read
[INFO] [stdout]    --> src/ast.rs:142:3
[INFO] [stdout]     |
[INFO] [stdout] 141 |     If(
[INFO] [stdout]     |     -- fields in this variant
[INFO] [stdout] 142 |         BoxedSpan<Expr>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 143 |         Block,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 144 |         Vec<(BoxedSpan<Expr>, Block)>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 145 |         Option<Block>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 142 ~         (),
[INFO] [stdout] 143 ~         (),
[INFO] [stdout] 144 ~         (),
[INFO] [stdout] 145 ~         (),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 |     Ident(Vec<Span<String>>),
[INFO] [stdout]     |     ----- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Debug`, but this is 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] 147 -     Ident(Vec<Span<String>>),
[INFO] [stdout] 147 +     Ident(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 |     Float(f64),
[INFO] [stdout]     |     ----- ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Literal` has a derived impl for the trait `Debug`, but this is 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] 152 -     Float(f64),
[INFO] [stdout] 152 +     Float(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:153:6
[INFO] [stdout]     |
[INFO] [stdout] 153 |     Int(i64),
[INFO] [stdout]     |     --- ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Literal` has a derived impl for the trait `Debug`, but this is 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] 153 -     Int(i64),
[INFO] [stdout] 153 +     Int(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ast.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |     String(String),
[INFO] [stdout]     |     ------ ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Literal` has a derived impl for the trait `Debug`, but this is 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] 154 -     String(String),
[INFO] [stdout] 154 +     String(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `eval_expr` is never used
[INFO] [stdout]  --> src/backend/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub trait Backend {
[INFO] [stdout]   |           ------- method in this trait
[INFO] [stdout] 8 |     fn eval_expr(&self, expr: Span<Expr>, options: CodegenOptions) -> Return<String>;
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Codegen` is never constructed
[INFO] [stdout]  --> src/backend/js.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Codegen;
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `externlibs` is never read
[INFO] [stdout]   --> src/modules.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ModuleTree {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 13 |     pub externlibs: HashMap<String, ModuleTree>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree` is never used
[INFO] [stdout]   --> src/parser/mod.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn tree<T: Display>(pairs: Pairs<Rule>, space: T) {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ModulePath` is never used
[INFO] [stdout]  --> src/checker/db.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type ModulePath = Vec<String>;
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeDB` is never constructed
[INFO] [stdout]  --> src/checker/db.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct TypeDB {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_root` is never used
[INFO] [stdout]   --> src/checker/db.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl TypeDB {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 13 |     pub fn new_root() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TypeDBNode` is never used
[INFO] [stdout]   --> src/checker/db.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum TypeDBNode {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Type` is never constructed
[INFO] [stdout]   --> src/checker/db.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Type {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_impl` and `add_trait_impl` are never used
[INFO] [stdout]   --> src/checker/db.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Type {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 34 |     pub fn add_impl(&mut self, i: Impl) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn add_trait_impl(&mut self, path: ModulePath, i: TraitImpl) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NoMainError`, `WarnTest`, and `InfoTest` are never constructed
[INFO] [stdout]   --> src/error.rs:10:2
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum ErrorCode {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 10 |     NoMainError,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 11 |     // Warn
[INFO] [stdout] 12 |     WarnTest,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 13 |     // Info
[INFO] [stdout] 14 |     InfoTest,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ErrorCode` 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: field `span` is never read
[INFO] [stdout]   --> src/error.rs:52:2
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct Error {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 51 |     code: ErrorCode,
[INFO] [stdout] 52 |     span: Span<()>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]   --> src/error.rs:81:2
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct NonLocatedError {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 80 |     code: ErrorCode,
[INFO] [stdout] 81 |     message: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `display` are never used
[INFO] [stdout]   --> src/error.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 84 | impl NonLocatedError {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 85 |     pub fn new(code: ErrorCode, message: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn display(self) -> Result<(), Self> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Repl` is never constructed
[INFO] [stdout]   --> src/fs.rs:14:2
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum File {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] 14 |     Repl(usize),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `File` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `insert_repl_statement` is never used
[INFO] [stdout]   --> src/fs.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Fs {
[INFO] [stdout]    | ------- method in this implementation
[INFO] [stdout] 39 |     pub fn insert_repl_statement(&mut self, statement: String) -> File {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `into_error` is never used
[INFO] [stdout]    --> src/span.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl<T> Span<T> {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn into_error<S: ToString>(self, error_code: ErrorCode, message: S) -> Error {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `lib` and `out` are never read
[INFO] [stdout]   --> src/options.rs:64:6
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct CodegenOptions {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 64 |     pub lib: bool,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 65 |     pub out: Option<PathBuf>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PathBuf, Infallible>
[INFO] [stdout]   --> src/options.rs:11:2
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     /// Path to the entry point for compilation or execution (leave empty for repl)
[INFO] [stdout] 12 | |     pub input_file: Option<PathBuf>,
[INFO] [stdout]    | |___________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PathBuf, Infallible>
[INFO] [stdout]   --> src/options.rs:16:2
[INFO] [stdout]    |
[INFO] [stdout] 16 | /     /// Output file path
[INFO] [stdout] 17 | |     #[structopt(short, required_ifs(&Backend::out_required(&["interpret", "print_ast"], &[])))]
[INFO] [stdout] 18 | |     out: Option<PathBuf>,
[INFO] [stdout]    | |________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `lamalang` (bin "lamalang" test) due to 2 previous errors; 50 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6f0b887f6c53554878cd705747413c52f923fa56675729dc1b26b6e0029bffa2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6f0b887f6c53554878cd705747413c52f923fa56675729dc1b26b6e0029bffa2", kill_on_drop: false }`
[INFO] [stdout] 6f0b887f6c53554878cd705747413c52f923fa56675729dc1b26b6e0029bffa2
