[INFO] cloning repository https://github.com/jaynagpaul/nov [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jaynagpaul/nov" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjaynagpaul%2Fnov", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjaynagpaul%2Fnov'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4ba37c4805483abbac48747136a3bbe51e770473 [INFO] checking jaynagpaul/nov against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjaynagpaul%2Fnov" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/jaynagpaul/nov on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/jaynagpaul/nov [INFO] finished tweaking git repo https://github.com/jaynagpaul/nov [INFO] tweaked toml for git repo https://github.com/jaynagpaul/nov written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/jaynagpaul/nov 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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded dissimilar v1.0.7 [INFO] [stderr] Downloaded expect-test v1.4.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 41989c949bdde429c0fc445bf3dc3b7e6389c43ad178c5d7fea125190f26e609 [INFO] running `Command { std: "docker" "start" "-a" "41989c949bdde429c0fc445bf3dc3b7e6389c43ad178c5d7fea125190f26e609", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "41989c949bdde429c0fc445bf3dc3b7e6389c43ad178c5d7fea125190f26e609", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "41989c949bdde429c0fc445bf3dc3b7e6389c43ad178c5d7fea125190f26e609", kill_on_drop: false }` [INFO] [stdout] 41989c949bdde429c0fc445bf3dc3b7e6389c43ad178c5d7fea125190f26e609 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ef65b97e230ae283ae5f611d99226e8eb6e8129cd927584ebdb304b5ebb019f6 [INFO] running `Command { std: "docker" "start" "-a" "ef65b97e230ae283ae5f611d99226e8eb6e8129cd927584ebdb304b5ebb019f6", kill_on_drop: false }` [INFO] [stderr] Checking dissimilar v1.0.7 [INFO] [stderr] Checking expect-test v1.4.1 [INFO] [stderr] Checking nov v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `parser::decl::fn_decl` and `tokenize` [INFO] [stdout] --> src/parser/mod.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::{parser::decl::fn_decl, tokenize, TokenKind}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Expr`, `atom_exprs`, and `expr` [INFO] [stdout] --> src/parser/mod.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | expr::{atom_exprs, expr, Expr}, [INFO] [stdout] | ^^^^^^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::program` [INFO] [stdout] --> src/parser/stmt.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | use crate::parser::program; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Expr` and `atom_exprs` [INFO] [stdout] --> src/parser/mod.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | expr::{atom_exprs, expr, Expr}, [INFO] [stdout] | ^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `errs` [INFO] [stdout] --> src/parser/stmt.rs:73:22 [INFO] [stdout] | [INFO] [stdout] 73 | let (tokens, errs) = tokenize(content); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_errs` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `BinOpExpr` is more private than the item `Expr::BinaryOp::0` [INFO] [stdout] --> src/parser/expr.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | BinaryOp(BinOpExpr), [INFO] [stdout] | ^^^^^^^^^ field `Expr::BinaryOp::0` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `BinOpExpr` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/parser/expr.rs:106:1 [INFO] [stdout] | [INFO] [stdout] 106 | struct BinOpExpr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `UnexpectedToken`, `MissingExpr`, and `UnexpectedEof` are never constructed [INFO] [stdout] --> src/parser/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub enum Error { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 16 | UnexpectedToken { actual: TokenKind }, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | [INFO] [stdout] 18 | MissingExpr, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 19 | [INFO] [stdout] 20 | UnexpectedEof, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `unexpected_token` is never used [INFO] [stdout] --> src/parser/mod.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl Error { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 24 | pub fn unexpected_token(actual: &TokenKind) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> src/parser/mod.rs:45:10 [INFO] [stdout] | [INFO] [stdout] 45 | pub type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Program` is never constructed [INFO] [stdout] --> src/parser/mod.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct Program { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Program` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `program` is never used [INFO] [stdout] --> src/parser/mod.rs:54:4 [INFO] [stdout] | [INFO] [stdout] 54 | fn program(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Decl` is never used [INFO] [stdout] --> src/parser/decl.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum Decl { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Decl` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decl` is never used [INFO] [stdout] --> src/parser/decl.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn decl(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FnDecl` is never constructed [INFO] [stdout] --> src/parser/decl.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct FnDecl { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FnDecl` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fn_decl` is never used [INFO] [stdout] --> src/parser/decl.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn fn_decl(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Block` is never constructed [INFO] [stdout] --> src/parser/decl.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct Block { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Block` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `block` is never used [INFO] [stdout] --> src/parser/decl.rs:52:4 [INFO] [stdout] | [INFO] [stdout] 52 | fn block(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `atom_exprs` is never used [INFO] [stdout] --> src/parser/expr.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn atom_exprs(s: &mut Scanner) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Expr` is never used [INFO] [stdout] --> src/parser/expr.rs:21:10 [INFO] [stdout] | [INFO] [stdout] 21 | pub enum Expr { [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] [INFO] [stdout] [INFO] [stdout] warning: function `expr` is never used [INFO] [stdout] --> src/parser/expr.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn expr(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expr_bp` is never used [INFO] [stdout] --> src/parser/expr.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn expr_bp(s: &mut Scanner, min_bp: u8) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `atom_expr` is never used [INFO] [stdout] --> src/parser/expr.rs:64:4 [INFO] [stdout] | [INFO] [stdout] 64 | fn atom_expr(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FnCall` is never constructed [INFO] [stdout] --> src/parser/expr.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct FnCall { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FnCall` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `paren_fn_call` is never used [INFO] [stdout] --> src/parser/expr.rs:81:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn paren_fn_call(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `string_lit` is never used [INFO] [stdout] --> src/parser/expr.rs:91:4 [INFO] [stdout] | [INFO] [stdout] 91 | fn string_lit(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `int_lit` is never used [INFO] [stdout] --> src/parser/expr.rs:98:4 [INFO] [stdout] | [INFO] [stdout] 98 | fn int_lit(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BinOpExpr` is never constructed [INFO] [stdout] --> src/parser/expr.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 106 | struct BinOpExpr { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `BinOp` is never used [INFO] [stdout] --> src/parser/expr.rs:113:6 [INFO] [stdout] | [INFO] [stdout] 113 | enum BinOp { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from_token_kind` and `infix_binding_power` are never used [INFO] [stdout] --> src/parser/expr.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 120 | impl BinOp { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 121 | pub fn from_token_kind(kind: &TokenKind) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn infix_binding_power(&self) -> (u8, u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Scanner` is never constructed [INFO] [stdout] --> src/parser/scanner.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Scanner { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/parser/scanner.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Scanner { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 10 | pub fn new(tokens: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | pub fn attempt(&mut self, closure: impl Fn(&mut Scanner) -> Result) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn attempt_all(&mut self, closures: &[F]) -> Result [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn at_end(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn skip_newlines(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn peek(&self) -> Result<&Token> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn advance(&mut self) -> Result<&Token> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn advance_if(&mut self, closure: impl FnOnce(&Token) -> Result<()>) -> Result<&Token> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn match_kind(&mut self, expected: &TokenKind) -> Result<&Token> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Stmt` is never used [INFO] [stdout] --> src/parser/stmt.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum Stmt { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Stmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `stmt` is never used [INFO] [stdout] --> src/parser/stmt.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn stmt(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `naked_fn_call` is never used [INFO] [stdout] --> src/parser/stmt.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn naked_fn_call(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LetStmt` is never constructed [INFO] [stdout] --> src/parser/stmt.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct LetStmt { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LetStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `let_stmt` is never used [INFO] [stdout] --> src/parser/stmt.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn let_stmt(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `loc` is never read [INFO] [stdout] --> src/token.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Token { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 15 | loc: Loc, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` 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 `loc` is never read [INFO] [stdout] --> src/token.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct Error { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 53 | kind: ErrorKind, [INFO] [stdout] 54 | loc: Loc, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `at_end` is never used [INFO] [stdout] --> src/token.rs:216:8 [INFO] [stdout] | [INFO] [stdout] 75 | impl Tokenizer { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 216 | fn at_end(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 36 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `BinOpExpr` is more private than the item `Expr::BinaryOp::0` [INFO] [stdout] --> src/parser/expr.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | BinaryOp(BinOpExpr), [INFO] [stdout] | ^^^^^^^^^ field `Expr::BinaryOp::0` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `BinOpExpr` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/parser/expr.rs:106:1 [INFO] [stdout] | [INFO] [stdout] 106 | struct BinOpExpr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `decls` is never read [INFO] [stdout] --> src/parser/mod.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct Program { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 52 | pub decls: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Program` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/decl.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | Fn(FnDecl), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Decl` 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] 11 | Fn(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `block` is never read [INFO] [stdout] --> src/parser/decl.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct FnDecl { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 22 | pub block: Block, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FnDecl` 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 `stmts` is never read [INFO] [stdout] --> src/parser/decl.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct Block { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 50 | pub stmts: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Block` 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/parser/expr.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | BinaryOp(BinOpExpr), [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] 22 | BinaryOp(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/expr.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | FnCall(FnCall), [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] 23 | FnCall(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/expr.rs:24:15 [INFO] [stdout] | [INFO] [stdout] 24 | StringLit(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] 24 | StringLit(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/expr.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | IntLit(i64), [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] 25 | IntLit(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `args` are never read [INFO] [stdout] --> src/parser/expr.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct FnCall { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 76 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 77 | [INFO] [stdout] 78 | pub args: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FnCall` 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 `left`, `op`, and `right` are never read [INFO] [stdout] --> src/parser/expr.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 106 | struct BinOpExpr { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 107 | left: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] 108 | op: BinOp, [INFO] [stdout] | ^^ [INFO] [stdout] 109 | right: Box, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinOpExpr` 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/parser/stmt.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | Expr(Expr), [INFO] [stdout] | ---- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Stmt` 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] 12 | Expr(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/stmt.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | Let(LetStmt), [INFO] [stdout] | --- ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Stmt` 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] 13 | Let(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `var_name` and `rhs` are never read [INFO] [stdout] --> src/parser/stmt.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct LetStmt { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 40 | var_name: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 41 | rhs: Expr, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LetStmt` 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 `loc` is never read [INFO] [stdout] --> src/token.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Token { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 15 | loc: Loc, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` 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 `loc` is never read [INFO] [stdout] --> src/token.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct Error { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 53 | kind: ErrorKind, [INFO] [stdout] 54 | loc: Loc, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `at_end` is never used [INFO] [stdout] --> src/token.rs:216:8 [INFO] [stdout] | [INFO] [stdout] 75 | impl Tokenizer { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 216 | fn at_end(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 20 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.30s [INFO] running `Command { std: "docker" "inspect" "ef65b97e230ae283ae5f611d99226e8eb6e8129cd927584ebdb304b5ebb019f6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ef65b97e230ae283ae5f611d99226e8eb6e8129cd927584ebdb304b5ebb019f6", kill_on_drop: false }` [INFO] [stdout] ef65b97e230ae283ae5f611d99226e8eb6e8129cd927584ebdb304b5ebb019f6 [INFO] checking jaynagpaul/nov against try#f9935d29d867449445ee008640ccca1bf1ae0889+rustflags=-Dtail_expr_drop_order for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjaynagpaul%2Fnov" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/jaynagpaul/nov on toolchain f9935d29d867449445ee008640ccca1bf1ae0889 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9935d29d867449445ee008640ccca1bf1ae0889" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/jaynagpaul/nov [INFO] finished tweaking git repo https://github.com/jaynagpaul/nov [INFO] tweaked toml for git repo https://github.com/jaynagpaul/nov written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/jaynagpaul/nov 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" "+f9935d29d867449445ee008640ccca1bf1ae0889" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+f9935d29d867449445ee008640ccca1bf1ae0889" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 55a8ff89334386cc0f61b52f3bff8b7e0967e2b6ab41d399fd51dd713f806433 [INFO] running `Command { std: "docker" "start" "-a" "55a8ff89334386cc0f61b52f3bff8b7e0967e2b6ab41d399fd51dd713f806433", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "55a8ff89334386cc0f61b52f3bff8b7e0967e2b6ab41d399fd51dd713f806433", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "55a8ff89334386cc0f61b52f3bff8b7e0967e2b6ab41d399fd51dd713f806433", kill_on_drop: false }` [INFO] [stdout] 55a8ff89334386cc0f61b52f3bff8b7e0967e2b6ab41d399fd51dd713f806433 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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 -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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+f9935d29d867449445ee008640ccca1bf1ae0889" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f88d539cfc8059cdf04eae2cbe530ed0a1e34caaf78c6044e1947f55955db034 [INFO] running `Command { std: "docker" "start" "-a" "f88d539cfc8059cdf04eae2cbe530ed0a1e34caaf78c6044e1947f55955db034", kill_on_drop: false }` [INFO] [stderr] Checking dissimilar v1.0.7 [INFO] [stderr] Checking expect-test v1.4.1 [INFO] [stderr] Checking nov v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `parser::decl::fn_decl` and `tokenize` [INFO] [stdout] --> src/parser/mod.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::{parser::decl::fn_decl, tokenize, TokenKind}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Expr`, `atom_exprs`, and `expr` [INFO] [stdout] --> src/parser/mod.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | expr::{atom_exprs, expr, Expr}, [INFO] [stdout] | ^^^^^^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::program` [INFO] [stdout] --> src/parser/stmt.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | use crate::parser::program; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Expr` and `atom_exprs` [INFO] [stdout] --> src/parser/mod.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | expr::{atom_exprs, expr, Expr}, [INFO] [stdout] | ^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `errs` [INFO] [stdout] --> src/parser/stmt.rs:73:22 [INFO] [stdout] | [INFO] [stdout] 73 | let (tokens, errs) = tokenize(content); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_errs` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `BinOpExpr` is more private than the item `Expr::BinaryOp::0` [INFO] [stdout] --> src/parser/expr.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | BinaryOp(BinOpExpr), [INFO] [stdout] | ^^^^^^^^^ field `Expr::BinaryOp::0` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `BinOpExpr` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/parser/expr.rs:106:1 [INFO] [stdout] | [INFO] [stdout] 106 | struct BinOpExpr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `UnexpectedToken`, `MissingExpr`, and `UnexpectedEof` are never constructed [INFO] [stdout] --> src/parser/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub enum Error { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 16 | UnexpectedToken { actual: TokenKind }, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | [INFO] [stdout] 18 | MissingExpr, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 19 | [INFO] [stdout] 20 | UnexpectedEof, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `unexpected_token` is never used [INFO] [stdout] --> src/parser/mod.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl Error { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 24 | pub fn unexpected_token(actual: &TokenKind) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> src/parser/mod.rs:45:10 [INFO] [stdout] | [INFO] [stdout] 45 | pub type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Program` is never constructed [INFO] [stdout] --> src/parser/mod.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct Program { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Program` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `program` is never used [INFO] [stdout] --> src/parser/mod.rs:54:4 [INFO] [stdout] | [INFO] [stdout] 54 | fn program(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Decl` is never used [INFO] [stdout] --> src/parser/decl.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum Decl { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Decl` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decl` is never used [INFO] [stdout] --> src/parser/decl.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn decl(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FnDecl` is never constructed [INFO] [stdout] --> src/parser/decl.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct FnDecl { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FnDecl` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fn_decl` is never used [INFO] [stdout] --> src/parser/decl.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn fn_decl(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Block` is never constructed [INFO] [stdout] --> src/parser/decl.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct Block { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Block` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `block` is never used [INFO] [stdout] --> src/parser/decl.rs:52:4 [INFO] [stdout] | [INFO] [stdout] 52 | fn block(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `atom_exprs` is never used [INFO] [stdout] --> src/parser/expr.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn atom_exprs(s: &mut Scanner) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Expr` is never used [INFO] [stdout] --> src/parser/expr.rs:21:10 [INFO] [stdout] | [INFO] [stdout] 21 | pub enum Expr { [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] [INFO] [stdout] [INFO] [stdout] warning: function `expr` is never used [INFO] [stdout] --> src/parser/expr.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn expr(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expr_bp` is never used [INFO] [stdout] --> src/parser/expr.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn expr_bp(s: &mut Scanner, min_bp: u8) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `atom_expr` is never used [INFO] [stdout] --> src/parser/expr.rs:64:4 [INFO] [stdout] | [INFO] [stdout] 64 | fn atom_expr(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FnCall` is never constructed [INFO] [stdout] --> src/parser/expr.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct FnCall { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FnCall` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `paren_fn_call` is never used [INFO] [stdout] --> src/parser/expr.rs:81:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn paren_fn_call(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `string_lit` is never used [INFO] [stdout] --> src/parser/expr.rs:91:4 [INFO] [stdout] | [INFO] [stdout] 91 | fn string_lit(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `int_lit` is never used [INFO] [stdout] --> src/parser/expr.rs:98:4 [INFO] [stdout] | [INFO] [stdout] 98 | fn int_lit(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BinOpExpr` is never constructed [INFO] [stdout] --> src/parser/expr.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 106 | struct BinOpExpr { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `BinOp` is never used [INFO] [stdout] --> src/parser/expr.rs:113:6 [INFO] [stdout] | [INFO] [stdout] 113 | enum BinOp { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from_token_kind` and `infix_binding_power` are never used [INFO] [stdout] --> src/parser/expr.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 120 | impl BinOp { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 121 | pub fn from_token_kind(kind: &TokenKind) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn infix_binding_power(&self) -> (u8, u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Scanner` is never constructed [INFO] [stdout] --> src/parser/scanner.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Scanner { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/parser/scanner.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Scanner { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 10 | pub fn new(tokens: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | pub fn attempt(&mut self, closure: impl Fn(&mut Scanner) -> Result) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn attempt_all(&mut self, closures: &[F]) -> Result [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn at_end(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn skip_newlines(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn peek(&self) -> Result<&Token> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn advance(&mut self) -> Result<&Token> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn advance_if(&mut self, closure: impl FnOnce(&Token) -> Result<()>) -> Result<&Token> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn match_kind(&mut self, expected: &TokenKind) -> Result<&Token> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Stmt` is never used [INFO] [stdout] --> src/parser/stmt.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum Stmt { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Stmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `stmt` is never used [INFO] [stdout] --> src/parser/stmt.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn stmt(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `naked_fn_call` is never used [INFO] [stdout] --> src/parser/stmt.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn naked_fn_call(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LetStmt` is never constructed [INFO] [stdout] --> src/parser/stmt.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct LetStmt { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LetStmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `let_stmt` is never used [INFO] [stdout] --> src/parser/stmt.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn let_stmt(s: &mut Scanner) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `loc` is never read [INFO] [stdout] --> src/token.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Token { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 15 | loc: Loc, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` 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 `loc` is never read [INFO] [stdout] --> src/token.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct Error { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 53 | kind: ErrorKind, [INFO] [stdout] 54 | loc: Loc, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `at_end` is never used [INFO] [stdout] --> src/token.rs:216:8 [INFO] [stdout] | [INFO] [stdout] 75 | impl Tokenizer { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 216 | fn at_end(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/mod.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 55 | let mut decls = Vec::new(); [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 62 | Ok(Program { decls }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/decl.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | s.attempt(|s| fn_decl(s).map(Decl::Fn)) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/decl.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 42 | let block = block(s)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 43 | [INFO] [stdout] 44 | Ok(FnDecl { name, block }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/decl.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 56 | let mut stmts = Vec::new(); [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 67 | Ok(Block { stmts }) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/scanner.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn attempt(&mut self, closure: impl Fn(&mut Scanner) -> Result) -> Result { [INFO] [stdout] | ------------------------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 15 | let old_pos = self.pos; [INFO] [stdout] 16 | match closure(self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/stmt.rs:17:46 [INFO] [stdout] | [INFO] [stdout] 17 | let naked_fn_call = |s: &mut Scanner| Ok(Stmt::Expr(naked_fn_call(s)?)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/stmt.rs:18:42 [INFO] [stdout] | [INFO] [stdout] 18 | let expr_stmt = |s: &mut Scanner| Ok(Stmt::Expr(expr(s)?)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/stmt.rs:19:41 [INFO] [stdout] | [INFO] [stdout] 19 | let let_stmt = |s: &mut Scanner| Ok(Stmt::Let(let_stmt(s)?)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/stmt.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 32 | let args = atom_exprs(s)?; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 33 | [INFO] [stdout] 34 | Ok(Expr::FnCall(FnCall { name, args })) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/stmt.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 55 | let rhs = s.attempt_all(&rhs_options)?; [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 56 | [INFO] [stdout] 57 | Ok(LetStmt { var_name, rhs }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 10 previous errors; 36 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `BinOpExpr` is more private than the item `Expr::BinaryOp::0` [INFO] [stdout] --> src/parser/expr.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | BinaryOp(BinOpExpr), [INFO] [stdout] | ^^^^^^^^^ field `Expr::BinaryOp::0` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `BinOpExpr` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/parser/expr.rs:106:1 [INFO] [stdout] | [INFO] [stdout] 106 | struct BinOpExpr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `decls` is never read [INFO] [stdout] --> src/parser/mod.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct Program { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 52 | pub decls: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Program` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/decl.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | Fn(FnDecl), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Decl` 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] 11 | Fn(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `block` is never read [INFO] [stdout] --> src/parser/decl.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct FnDecl { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 22 | pub block: Block, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FnDecl` 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 `stmts` is never read [INFO] [stdout] --> src/parser/decl.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct Block { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 50 | pub stmts: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Block` 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/parser/expr.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | BinaryOp(BinOpExpr), [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] 22 | BinaryOp(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/expr.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | FnCall(FnCall), [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] 23 | FnCall(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/expr.rs:24:15 [INFO] [stdout] | [INFO] [stdout] 24 | StringLit(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] 24 | StringLit(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/expr.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | IntLit(i64), [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] 25 | IntLit(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `args` are never read [INFO] [stdout] --> src/parser/expr.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct FnCall { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 76 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 77 | [INFO] [stdout] 78 | pub args: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FnCall` 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 `left`, `op`, and `right` are never read [INFO] [stdout] --> src/parser/expr.rs:107:5 [INFO] [stdout] | [INFO] [stdout] 106 | struct BinOpExpr { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 107 | left: Box, [INFO] [stdout] | ^^^^ [INFO] [stdout] 108 | op: BinOp, [INFO] [stdout] | ^^ [INFO] [stdout] 109 | right: Box, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinOpExpr` 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/parser/stmt.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | Expr(Expr), [INFO] [stdout] | ---- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Stmt` 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] 12 | Expr(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/stmt.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | Let(LetStmt), [INFO] [stdout] | --- ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Stmt` 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] 13 | Let(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `var_name` and `rhs` are never read [INFO] [stdout] --> src/parser/stmt.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct LetStmt { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 40 | var_name: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 41 | rhs: Expr, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LetStmt` 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 `loc` is never read [INFO] [stdout] --> src/token.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Token { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 15 | loc: Loc, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Token` 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 `loc` is never read [INFO] [stdout] --> src/token.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct Error { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 53 | kind: ErrorKind, [INFO] [stdout] 54 | loc: Loc, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `at_end` is never used [INFO] [stdout] --> src/token.rs:216:8 [INFO] [stdout] | [INFO] [stdout] 75 | impl Tokenizer { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 216 | fn at_end(&self) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/mod.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 55 | let mut decls = Vec::new(); [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 62 | Ok(Program { decls }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/decl.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | s.attempt(|s| fn_decl(s).map(Decl::Fn)) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/decl.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 42 | let block = block(s)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 43 | [INFO] [stdout] 44 | Ok(FnDecl { name, block }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/decl.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 56 | let mut stmts = Vec::new(); [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 67 | Ok(Block { stmts }) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/scanner.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn attempt(&mut self, closure: impl Fn(&mut Scanner) -> Result) -> Result { [INFO] [stdout] | ------------------------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 15 | let old_pos = self.pos; [INFO] [stdout] 16 | match closure(self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/stmt.rs:17:46 [INFO] [stdout] | [INFO] [stdout] 17 | let naked_fn_call = |s: &mut Scanner| Ok(Stmt::Expr(naked_fn_call(s)?)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/stmt.rs:18:42 [INFO] [stdout] | [INFO] [stdout] 18 | let expr_stmt = |s: &mut Scanner| Ok(Stmt::Expr(expr(s)?)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/stmt.rs:19:41 [INFO] [stdout] | [INFO] [stdout] 19 | let let_stmt = |s: &mut Scanner| Ok(Stmt::Let(let_stmt(s)?)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/stmt.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 32 | let args = atom_exprs(s)?; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 33 | [INFO] [stdout] 34 | Ok(Expr::FnCall(FnCall { name, args })) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/parser/stmt.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 55 | let rhs = s.attempt_all(&rhs_options)?; [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 56 | [INFO] [stdout] 57 | Ok(LetStmt { var_name, rhs }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `nov` (bin "nov") due to 11 previous errors; 36 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 10 previous errors; 20 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `nov` (bin "nov" test) due to 11 previous errors; 20 warnings emitted [INFO] running `Command { std: "docker" "inspect" "f88d539cfc8059cdf04eae2cbe530ed0a1e34caaf78c6044e1947f55955db034", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f88d539cfc8059cdf04eae2cbe530ed0a1e34caaf78c6044e1947f55955db034", kill_on_drop: false }` [INFO] [stdout] f88d539cfc8059cdf04eae2cbe530ed0a1e34caaf78c6044e1947f55955db034