[INFO] cloning repository https://github.com/Jengamon/cattail
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Jengamon/cattail" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJengamon%2Fcattail", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJengamon%2Fcattail'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4b162e7b837348af9c3def198c4d598be1173a90
[INFO] checking Jengamon/cattail against try#5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db for pr-143717
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJengamon%2Fcattail" "/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/Jengamon/cattail
[INFO] finished tweaking git repo https://github.com/Jengamon/cattail
[INFO] tweaked toml for git repo https://github.com/Jengamon/cattail written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Jengamon/cattail on toolchain 5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Jengamon/cattail 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" "+5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db" "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
[ERROR] error running command: no output for 300 seconds
[INFO] checking Jengamon/cattail against try#5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db for pr-143717
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJengamon%2Fcattail" "/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/Jengamon/cattail
[INFO] finished tweaking git repo https://github.com/Jengamon/cattail
[INFO] tweaked toml for git repo https://github.com/Jengamon/cattail written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Jengamon/cattail on toolchain 5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Jengamon/cattail 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" "+5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db" "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] [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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dc4acb1654928e7acb7c788de31859acc8c75bfa5a2c07c5380f65c7a93f2b82
[INFO] running `Command { std: "docker" "start" "-a" "dc4acb1654928e7acb7c788de31859acc8c75bfa5a2c07c5380f65c7a93f2b82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dc4acb1654928e7acb7c788de31859acc8c75bfa5a2c07c5380f65c7a93f2b82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dc4acb1654928e7acb7c788de31859acc8c75bfa5a2c07c5380f65c7a93f2b82", kill_on_drop: false }`
[INFO] [stdout] dc4acb1654928e7acb7c788de31859acc8c75bfa5a2c07c5380f65c7a93f2b82
[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" "-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+5ef65a4ed75279dc1b7a26cedc27293a9f4ca8db" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8d1b0caaf190fb8039f73e3268b44ef9309b3f536dc7868161f8868a6b85f199
[INFO] running `Command { std: "docker" "start" "-a" "8d1b0caaf190fb8039f73e3268b44ef9309b3f536dc7868161f8868a6b85f199", kill_on_drop: false }`
[INFO] [stderr]     Checking cattail v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:19:27
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub type PrefixParselet = Fn(&mut Parser, Token) -> ParserResult<Expr>;
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub type PrefixParselet = dyn Fn(&mut Parser, Token) -> ParserResult<Expr>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type InfixParselet = Fn(&mut Parser, Token, Expr) -> ParserResult<Expr>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type InfixParselet = dyn Fn(&mut Parser, Token, Expr) -> ParserResult<Expr>;
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:19:27
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub type PrefixParselet = Fn(&mut Parser, Token) -> ParserResult<Expr>;
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub type PrefixParselet = dyn Fn(&mut Parser, Token) -> ParserResult<Expr>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type InfixParselet = Fn(&mut Parser, Token, Expr) -> ParserResult<Expr>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type InfixParselet = dyn Fn(&mut Parser, Token, Expr) -> ParserResult<Expr>;
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/parser.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn new_object_prslt(p: &mut Parser, t: Token) -> ParserResult<Expr> {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/parser.rs:22:37
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn new_object_prslt(p: &mut Parser, t: Token) -> ParserResult<Expr> {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/parser.rs:26:29
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn variable_reference_prslt(p: &mut Parser, t: Token) -> ParserResult<Expr> {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/parser.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn number_prslt(p: &mut Parser, t: Token) -> ParserResult<Expr> {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut lexer = Lexer::new(test_text.chars());
[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: multiple variants are never constructed
[INFO] [stdout]   --> src/token.rs:3:5
[INFO] [stdout]    |
[INFO] [stdout] 2  | pub enum Keyword {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 3  |     Null,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 4  |     New,
[INFO] [stdout] 5  |     And,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 6  |     Or,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 7  |     True,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 8  |     False,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 9  |     Function,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 10 |     FunctionAt,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Keyword` has derived impls for the traits `Clone` and `Debug`, 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: variants `Not` and `NotEqual` are never constructed
[INFO] [stdout]   --> src/token.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum Symbol {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 38 |     Not, NotEqual, Caret,
[INFO] [stdout]    |     ^^^  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Symbol` 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 `0` is never read
[INFO] [stdout]   --> src/token.rs:49:14
[INFO] [stdout]    |
[INFO] [stdout] 49 |     Typename(String),
[INFO] [stdout]    |     -------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LexerToken` 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] 49 -     Typename(String),
[INFO] [stdout] 49 +     Typename(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Hex`, `Octal`, `Base36`, and `EOF` are never constructed
[INFO] [stdout]   --> src/token.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum LexerToken {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 46 |     Hex(String),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 47 |     Octal(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 48 |     Base36(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     EOF
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LexerToken` 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: fields `ln` and `col` are never read
[INFO] [stdout]   --> src/lexer.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct LexerError {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 14 |     ln: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 15 |     col: usize,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LexerError` 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: methods `line`, `start`, and `end` are never used
[INFO] [stdout]   --> src/lexer.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Span {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 50 |     pub fn line(&self) -> usize { self.ln }
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 51 |     pub fn start(&self) -> usize { self.col }
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 52 |     pub fn end(&self) -> usize { self.ecol }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/ast.rs:9:2
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub enum Type {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] 9  |     Any,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 10 |     Interface(String),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 11 |     Object,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 12 |     Function {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     Matrix {
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     Null,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 22 |     Integer,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 23 |     Float,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Type` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Expression`, `Assignment`, and `Return` are never constructed
[INFO] [stdout]   --> src/ast.rs:28:2
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum Stat {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] 28 |     Expression(Expr),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 29 |     Assignment(Assignment),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 30 |     Return(Return),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stat` 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 `expr` is never read
[INFO] [stdout]   --> src/ast.rs:35:2
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Return {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 35 |     expr: Option<Expr>
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Return` 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: fields `target` and `value` are never read
[INFO] [stdout]   --> src/ast.rs:40:2
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Assignment {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 40 |     target: Path,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 41 |     value: Expr,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Assignment` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_stat` is never used
[INFO] [stdout]   --> src/ast.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl Assignment {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 45 |     pub fn new_stat(target: Path, value: Expr) -> Stat {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Identifier(Identifier),
[INFO] [stdout]    |     ---------- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 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] 54 -     Identifier(Identifier),
[INFO] [stdout] 54 +     Identifier(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/parser.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn new_object_prslt(p: &mut Parser, t: Token) -> ParserResult<Expr> {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     Number(Number),
[INFO] [stdout]    |     ------ ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 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] 55 -     Number(Number),
[INFO] [stdout] 55 +     Number(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/parser.rs:22:37
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn new_object_prslt(p: &mut Parser, t: Token) -> ParserResult<Expr> {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Binary(Binary),
[INFO] [stdout]    |     ------ ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 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] 60 -     Binary(Binary),
[INFO] [stdout] 60 +     Binary(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SubAccess`, `Call`, `NewObject`, `Function`, and `Path` are never constructed
[INFO] [stdout]   --> src/ast.rs:56:2
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 56 |     SubAccess(SubAccess),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 57 |     Call(Call),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 58 |     NewObject(NewObject),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 59 |     Function(Function),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 60 |     Binary(Binary),
[INFO] [stdout] 61 |     Path(Path),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/parser.rs:26:29
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn variable_reference_prslt(p: &mut Parser, t: Token) -> ParserResult<Expr> {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/parser.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn number_prslt(p: &mut Parser, t: Token) -> ParserResult<Expr> {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_identifier`, `as_identifier`, `is_path`, `as_path`, `is_binary`, and `as_binary` are never used
[INFO] [stdout]   --> src/ast.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl Expr {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 65 |     pub fn is_identifier(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn as_identifier(&self) -> Option<Identifier> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn is_path(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn as_path(&self) -> Option<Path> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn is_binary(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn as_binary(&self) -> Option<Binary> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ident` is never read
[INFO] [stdout]   --> src/ast.rs:94:2
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub struct Identifier {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 94 |     ident: WithSpan<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Identifier` 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: fields `lhs`, `rhs`, and `op` are never read
[INFO] [stdout]    --> src/ast.rs:107:2
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct Binary {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] 107 |     lhs: Box<Expr>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 108 |     rhs: Box<Expr>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 109 |     op: Token,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Binary` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `op` is never used
[INFO] [stdout]    --> src/ast.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl Binary {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn op(&self) -> Token { self.op.clone() }
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `number` is never read
[INFO] [stdout]    --> src/ast.rs:124:2
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct Number {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 124 |     number: WithSpan<f64>
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Number` 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 `elements` is never read
[INFO] [stdout]    --> src/ast.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct Path {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] 137 |     elements: WithSpan<Vec<String>>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Path` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_expr` is never used
[INFO] [stdout]    --> src/ast.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl Path {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 141 |     pub fn new_expr(elements: WithSpan<Vec<String>>) -> Expr {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `target` and `arguments` are never read
[INFO] [stdout]    --> src/ast.rs:151:2
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct Call {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 151 |     target: Box<Expr>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 152 |     arguments: Vec<Expr>
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Call` 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: fields `target` and `name` are never read
[INFO] [stdout]    --> src/ast.rs:157:2
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub struct SubAccess {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 157 |     target: Box<Expr>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 158 |     name: Token
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SubAccess` 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: fields `basis` and `extensions` are never read
[INFO] [stdout]    --> src/ast.rs:163:2
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub struct NewObject {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 163 |     basis: Box<Expr>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 164 |     extensions: HashMap<String, Expr>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewObject` 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: fields `parameters`, `return_type`, and `body` are never read
[INFO] [stdout]    --> src/ast.rs:169:2
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub struct Function {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 169 |     parameters: ParameterList,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 170 |     return_type: Type,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 171 |     body: Vec<Stat>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Function` 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: fields `0` and `1` are never read
[INFO] [stdout]  --> src/parser.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 |     NoParseletFound(String, Token),
[INFO] [stdout]   |     --------------- ^^^^^^  ^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ParserError` 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] 8 -     NoParseletFound(String, Token),
[INFO] [stdout] 8 +     NoParseletFound((), ()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Unspecified` and `InvalidItem` are never constructed
[INFO] [stdout]  --> src/parser.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum ParserError {
[INFO] [stdout]   |          ----------- variants in this enum
[INFO] [stdout] 6 |     Unspecified(String, Span),
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 9 |     InvalidItem(Expr),
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ParserError` 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: methods `file` and `assignment` are never used
[INFO] [stdout]   --> src/parser.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Parser {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn file(&mut self) -> ParserResult<Vec<Stat>> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn assignment(&mut self) -> ParserResult<Stat> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut lexer = Lexer::new(test_text.chars());
[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: multiple variants are never constructed
[INFO] [stdout]   --> src/token.rs:3:5
[INFO] [stdout]    |
[INFO] [stdout] 2  | pub enum Keyword {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 3  |     Null,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 4  |     New,
[INFO] [stdout] 5  |     And,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 6  |     Or,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 7  |     True,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 8  |     False,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 9  |     Function,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 10 |     FunctionAt,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Keyword` has derived impls for the traits `Clone` and `Debug`, 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: variants `Not` and `NotEqual` are never constructed
[INFO] [stdout]   --> src/token.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum Symbol {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 38 |     Not, NotEqual, Caret,
[INFO] [stdout]    |     ^^^  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Symbol` 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 `0` is never read
[INFO] [stdout]   --> src/token.rs:49:14
[INFO] [stdout]    |
[INFO] [stdout] 49 |     Typename(String),
[INFO] [stdout]    |     -------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LexerToken` 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] 49 -     Typename(String),
[INFO] [stdout] 49 +     Typename(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Hex`, `Octal`, `Base36`, and `EOF` are never constructed
[INFO] [stdout]   --> src/token.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum LexerToken {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 46 |     Hex(String),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 47 |     Octal(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 48 |     Base36(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     EOF
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LexerToken` 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: fields `ln` and `col` are never read
[INFO] [stdout]   --> src/lexer.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct LexerError {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 14 |     ln: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 15 |     col: usize,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LexerError` 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: methods `line`, `start`, and `end` are never used
[INFO] [stdout]   --> src/lexer.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Span {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 50 |     pub fn line(&self) -> usize { self.ln }
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 51 |     pub fn start(&self) -> usize { self.col }
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 52 |     pub fn end(&self) -> usize { self.ecol }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/ast.rs:9:2
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub enum Type {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] 9  |     Any,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 10 |     Interface(String),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 11 |     Object,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 12 |     Function {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     Matrix {
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     Null,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 22 |     Integer,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 23 |     Float,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Type` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Expression`, `Assignment`, and `Return` are never constructed
[INFO] [stdout]   --> src/ast.rs:28:2
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum Stat {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] 28 |     Expression(Expr),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 29 |     Assignment(Assignment),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 30 |     Return(Return),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stat` 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 `expr` is never read
[INFO] [stdout]   --> src/ast.rs:35:2
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Return {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 35 |     expr: Option<Expr>
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Return` 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: fields `target` and `value` are never read
[INFO] [stdout]   --> src/ast.rs:40:2
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Assignment {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 40 |     target: Path,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 41 |     value: Expr,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Assignment` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_stat` is never used
[INFO] [stdout]   --> src/ast.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl Assignment {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 45 |     pub fn new_stat(target: Path, value: Expr) -> Stat {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |     Identifier(Identifier),
[INFO] [stdout]    |     ---------- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 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] 54 -     Identifier(Identifier),
[INFO] [stdout] 54 +     Identifier(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     Number(Number),
[INFO] [stdout]    |     ------ ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 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] 55 -     Number(Number),
[INFO] [stdout] 55 +     Number(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Binary(Binary),
[INFO] [stdout]    |     ------ ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 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] 60 -     Binary(Binary),
[INFO] [stdout] 60 +     Binary(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SubAccess`, `Call`, `NewObject`, `Function`, and `Path` are never constructed
[INFO] [stdout]   --> src/ast.rs:56:2
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 56 |     SubAccess(SubAccess),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 57 |     Call(Call),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 58 |     NewObject(NewObject),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 59 |     Function(Function),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 60 |     Binary(Binary),
[INFO] [stdout] 61 |     Path(Path),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_identifier`, `as_identifier`, `is_path`, `as_path`, `is_binary`, and `as_binary` are never used
[INFO] [stdout]   --> src/ast.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl Expr {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 65 |     pub fn is_identifier(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn as_identifier(&self) -> Option<Identifier> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn is_path(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn as_path(&self) -> Option<Path> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn is_binary(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn as_binary(&self) -> Option<Binary> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ident` is never read
[INFO] [stdout]   --> src/ast.rs:94:2
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub struct Identifier {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 94 |     ident: WithSpan<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Identifier` 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: fields `lhs`, `rhs`, and `op` are never read
[INFO] [stdout]    --> src/ast.rs:107:2
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct Binary {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] 107 |     lhs: Box<Expr>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 108 |     rhs: Box<Expr>,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 109 |     op: Token,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Binary` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `op` is never used
[INFO] [stdout]    --> src/ast.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl Binary {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn op(&self) -> Token { self.op.clone() }
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `number` is never read
[INFO] [stdout]    --> src/ast.rs:124:2
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct Number {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 124 |     number: WithSpan<f64>
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Number` 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 `elements` is never read
[INFO] [stdout]    --> src/ast.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct Path {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] 137 |     elements: WithSpan<Vec<String>>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Path` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_expr` is never used
[INFO] [stdout]    --> src/ast.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl Path {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 141 |     pub fn new_expr(elements: WithSpan<Vec<String>>) -> Expr {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `target` and `arguments` are never read
[INFO] [stdout]    --> src/ast.rs:151:2
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct Call {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 151 |     target: Box<Expr>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 152 |     arguments: Vec<Expr>
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Call` 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: fields `target` and `name` are never read
[INFO] [stdout]    --> src/ast.rs:157:2
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub struct SubAccess {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 157 |     target: Box<Expr>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 158 |     name: Token
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SubAccess` 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: fields `basis` and `extensions` are never read
[INFO] [stdout]    --> src/ast.rs:163:2
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub struct NewObject {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 163 |     basis: Box<Expr>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 164 |     extensions: HashMap<String, Expr>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewObject` 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: fields `parameters`, `return_type`, and `body` are never read
[INFO] [stdout]    --> src/ast.rs:169:2
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub struct Function {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 169 |     parameters: ParameterList,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 170 |     return_type: Type,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 171 |     body: Vec<Stat>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Function` 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: fields `0` and `1` are never read
[INFO] [stdout]  --> src/parser.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 |     NoParseletFound(String, Token),
[INFO] [stdout]   |     --------------- ^^^^^^  ^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ParserError` 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] 8 -     NoParseletFound(String, Token),
[INFO] [stdout] 8 +     NoParseletFound((), ()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Unspecified` and `InvalidItem` are never constructed
[INFO] [stdout]  --> src/parser.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum ParserError {
[INFO] [stdout]   |          ----------- variants in this enum
[INFO] [stdout] 6 |     Unspecified(String, Span),
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 9 |     InvalidItem(Expr),
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ParserError` 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: methods `file` and `assignment` are never used
[INFO] [stdout]   --> src/parser.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Parser {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn file(&mut self) -> ParserResult<Vec<Stat>> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn assignment(&mut self) -> ParserResult<Stat> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.37s
[INFO] running `Command { std: "docker" "inspect" "8d1b0caaf190fb8039f73e3268b44ef9309b3f536dc7868161f8868a6b85f199", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8d1b0caaf190fb8039f73e3268b44ef9309b3f536dc7868161f8868a6b85f199", kill_on_drop: false }`
[INFO] [stdout] 8d1b0caaf190fb8039f73e3268b44ef9309b3f536dc7868161f8868a6b85f199
