[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] building Jengamon/cattail against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJengamon%2Fcattail" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Jengamon/cattail on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/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-7-tc1/source/Cargo.toml [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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0c27c4db937724bd03f765e54f34da2eb1c16eff17bb67c9e7afa93631cc2f0c [INFO] running `Command { std: "docker" "start" "-a" "0c27c4db937724bd03f765e54f34da2eb1c16eff17bb67c9e7afa93631cc2f0c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0c27c4db937724bd03f765e54f34da2eb1c16eff17bb67c9e7afa93631cc2f0c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0c27c4db937724bd03f765e54f34da2eb1c16eff17bb67c9e7afa93631cc2f0c", kill_on_drop: false }` [INFO] [stdout] 0c27c4db937724bd03f765e54f34da2eb1c16eff17bb67c9e7afa93631cc2f0c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2ba1b0cdf3849b47b77f143f80626bcf67ced5d05c2bb20d53dc3b64085326c7 [INFO] running `Command { std: "docker" "start" "-a" "2ba1b0cdf3849b47b77f143f80626bcf67ced5d05c2bb20d53dc3b64085326c7", kill_on_drop: false }` [INFO] [stderr] Compiling 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; [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 [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; [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; [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 [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; [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 { [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 { [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 { [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 { [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] error: relative drop order changing in Rust 2024 [INFO] [stdout] --> src/parser.rs:94:46 [INFO] [stdout] | [INFO] [stdout] 94 | while let Some((infix, _prec)) = Parser::get_infix_parselet(&self.peek()?) { [INFO] [stdout] | ----- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#1` [INFO] [stdout] | | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] | `infix` calls a custom destructor [INFO] [stdout] | `infix` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 101 | } [INFO] [stdout] | - now the temporary value is dropped here, before the local variables in the block or statement [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#1` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `infix` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [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(()), [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 [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(()), [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(()), [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(()), [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 { [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 { [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 { [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, [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, [INFO] [stdout] | ^^^ [INFO] [stdout] 108 | rhs: Box, [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 [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>, [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>) -> 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, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 152 | arguments: Vec [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, [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, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 164 | extensions: HashMap, [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, [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((), ()), [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> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn assignment(&mut self) -> ParserResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `cattail` (bin "cattail") due to 1 previous error; 36 warnings emitted [INFO] running `Command { std: "docker" "inspect" "2ba1b0cdf3849b47b77f143f80626bcf67ced5d05c2bb20d53dc3b64085326c7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2ba1b0cdf3849b47b77f143f80626bcf67ced5d05c2bb20d53dc3b64085326c7", kill_on_drop: false }` [INFO] [stdout] 2ba1b0cdf3849b47b77f143f80626bcf67ced5d05c2bb20d53dc3b64085326c7