[INFO] cloning repository https://github.com/jjszaniszlo/jace [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jjszaniszlo/jace" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjjszaniszlo%2Fjace", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjjszaniszlo%2Fjace'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 317514c15a3d0e92db586f88f7734db9573c65ba [INFO] testing jjszaniszlo/jace against master#cdb45c87e2cd43495379f7e867e3cc15dcee9f93 for pr-145838-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjjszaniszlo%2Fjace" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/jjszaniszlo/jace [INFO] finished tweaking git repo https://github.com/jjszaniszlo/jace [INFO] tweaked toml for git repo https://github.com/jjszaniszlo/jace written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jjszaniszlo/jace on toolchain cdb45c87e2cd43495379f7e867e3cc15dcee9f93 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/jjszaniszlo/jace 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" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded mlua-sys v0.6.7 [INFO] [stderr] Downloaded mlua v0.10.3 [INFO] [stderr] Downloaded lua-src v547.0.0 [INFO] [stderr] Downloaded luajit-src v210.5.12+a4f56a4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 024b2f433d1d52eff76e695c2ee7b6980a78c1970ae2bb3b53aed87ff9104d31 [INFO] running `Command { std: "docker" "start" "-a" "024b2f433d1d52eff76e695c2ee7b6980a78c1970ae2bb3b53aed87ff9104d31", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "024b2f433d1d52eff76e695c2ee7b6980a78c1970ae2bb3b53aed87ff9104d31", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "024b2f433d1d52eff76e695c2ee7b6980a78c1970ae2bb3b53aed87ff9104d31", kill_on_drop: false }` [INFO] [stdout] 024b2f433d1d52eff76e695c2ee7b6980a78c1970ae2bb3b53aed87ff9104d31 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7505e5e82f231a1d12dffab85c00ecdea4b9f351f3640e0ef96162544d352e93 [INFO] running `Command { std: "docker" "start" "-a" "7505e5e82f231a1d12dffab85c00ecdea4b9f351f3640e0ef96162544d352e93", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.93 [INFO] [stderr] Compiling unicode-ident v1.0.16 [INFO] [stderr] Compiling bitflags v2.8.0 [INFO] [stderr] Compiling libc v0.2.169 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Compiling cc v1.2.12 [INFO] [stderr] Compiling env_home v0.1.0 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling miniz_oxide v0.8.3 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling owo-colors v4.1.0 [INFO] [stderr] Compiling anstyle v1.0.10 [INFO] [stderr] Compiling is_ci v1.2.0 [INFO] [stderr] Compiling quote v1.0.38 [INFO] [stderr] Compiling lua-src v547.0.0 [INFO] [stderr] Compiling syn v2.0.98 [INFO] [stderr] Compiling anstream v0.6.18 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling thiserror v2.0.11 [INFO] [stderr] Compiling unicode-linebreak v0.1.5 [INFO] [stderr] Compiling clap_lex v0.7.4 [INFO] [stderr] Compiling textwrap v0.16.1 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling clap_builder v4.5.27 [INFO] [stderr] Compiling terminal_size v0.4.1 [INFO] [stderr] Compiling supports-color v3.0.2 [INFO] [stderr] Compiling bstr v1.11.3 [INFO] [stderr] Compiling rustc-hash v2.1.1 [INFO] [stderr] Compiling supports-hyperlinks v3.1.0 [INFO] [stderr] Compiling supports-unicode v3.0.0 [INFO] [stderr] Compiling which v7.0.2 [INFO] [stderr] Compiling luajit-src v210.5.12+a4f56a4 [INFO] [stderr] Compiling mlua-sys v0.6.7 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling clap_derive v4.5.28 [INFO] [stderr] Compiling miette-derive v7.5.0 [INFO] [stderr] Compiling thiserror-impl v2.0.11 [INFO] [stderr] Compiling backtrace v0.3.74 [INFO] [stderr] Compiling backtrace-ext v0.2.1 [INFO] [stderr] Compiling miette v7.5.0 [INFO] [stderr] Compiling clap v4.5.28 [INFO] [stderr] Compiling mlua v0.10.3 [INFO] [stderr] Compiling jace v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `super::def::parse_fn_body` [INFO] [stdout] --> src/parser/expr.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use super::def::parse_fn_body; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/parser/expr.rs:226:33 [INFO] [stdout] | [INFO] [stdout] 226 | parse_identifier().map(|(i), span| Expr::IdentExpr(i, span)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 226 - parse_identifier().map(|(i), span| Expr::IdentExpr(i, span)), [INFO] [stdout] 226 + parse_identifier().map(|i, span| Expr::IdentExpr(i, span)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/parser/def.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | .map(|(defs), span| Module(defs, span)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 16 - .map(|(defs), span| Module(defs, span)) [INFO] [stdout] 16 + .map(|defs, span| Module(defs, span)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `left` and `not` [INFO] [stdout] --> src/parser/typeparam.rs:11:25 [INFO] [stdout] | [INFO] [stdout] 11 | use super::combinator::{left, not, zero_or_more}; [INFO] [stdout] | ^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `codegen::emitter` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use codegen::emitter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `miette::Report` [INFO] [stdout] --> src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use miette::Report; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/parser/combinator.rs:67:34 [INFO] [stdout] | [INFO] [stdout] 67 | pair(p1, p2).map(|(left, _), s| left) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/parser/combinator.rs:77:31 [INFO] [stdout] | [INFO] [stdout] 77 | pair(p1, p2).map(|(_, r), s| r) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err1` [INFO] [stdout] --> src/parser/combinator.rs:89:17 [INFO] [stdout] | [INFO] [stdout] 89 | Err(err1) => match p2.parse_next(input) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_err1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `next` [INFO] [stdout] --> src/parser/combinator.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | Ok((next, a, s)) => [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_next` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bytes` [INFO] [stdout] --> src/lexer/lexer.rs:263:13 [INFO] [stdout] | [INFO] [stdout] 263 | let bytes = operator.len(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/lexer/lexer.rs:265:18 [INFO] [stdout] | [INFO] [stdout] 265 | Some(c @ ('=' | '!' | '<' | '>' | '+' | '-' | '/' | '*')) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/parser/def.rs:241:18 [INFO] [stdout] | [INFO] [stdout] 241 | .map(|t, s | [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `literal` [INFO] [stdout] --> src/codegen/emitter.rs:149:48 [INFO] [stdout] | [INFO] [stdout] 149 | FnPatternParam::BindToLiteralParam(literal, _) => todo!(), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literal` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifiers` [INFO] [stdout] --> src/codegen/emitter.rs:151:55 [INFO] [stdout] | [INFO] [stdout] 151 | FnPatternParam::BindToSetDeconstructParam(identifiers, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier` [INFO] [stdout] --> src/codegen/emitter.rs:152:52 [INFO] [stdout] | [INFO] [stdout] 152 | FnPatternParam::BindToSetSelectorParam(identifier, identifier1, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier1` [INFO] [stdout] --> src/codegen/emitter.rs:152:64 [INFO] [stdout] | [INFO] [stdout] 152 | FnPatternParam::BindToSetSelectorParam(identifier, identifier1, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier` [INFO] [stdout] --> src/codegen/emitter.rs:153:56 [INFO] [stdout] | [INFO] [stdout] 153 | FnPatternParam::BindToTypeConstructorParam(identifier, fn_pattern_params, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fn_pattern_params` [INFO] [stdout] --> src/codegen/emitter.rs:153:68 [INFO] [stdout] | [INFO] [stdout] 153 | FnPatternParam::BindToTypeConstructorParam(identifier, fn_pattern_params, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_pattern_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:170:34 [INFO] [stdout] | [INFO] [stdout] 170 | Expr::SetExpr(items, range) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `exprs` [INFO] [stdout] --> src/codegen/emitter.rs:190:29 [INFO] [stdout] | [INFO] [stdout] 190 | Expr::TupleExpr(exprs, _) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_exprs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier` [INFO] [stdout] --> src/codegen/emitter.rs:232:28 [INFO] [stdout] | [INFO] [stdout] 232 | Expr::CaseExpr(identifier, items, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `items` [INFO] [stdout] --> src/codegen/emitter.rs:232:40 [INFO] [stdout] | [INFO] [stdout] 232 | Expr::CaseExpr(identifier, items, _) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `member_expr` [INFO] [stdout] --> src/codegen/emitter.rs:259:30 [INFO] [stdout] | [INFO] [stdout] 259 | Expr::MemberExpr(member_expr, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_member_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:446:25 [INFO] [stdout] | [INFO] [stdout] 446 | Stmt::Empty(range) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier1` [INFO] [stdout] --> src/codegen/emitter.rs:447:42 [INFO] [stdout] | [INFO] [stdout] 447 | Stmt::AssignStmt(identifier, identifier1, expr, range) => { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:447:61 [INFO] [stdout] | [INFO] [stdout] 447 | Stmt::AssignStmt(identifier, identifier1, expr, range) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:450:44 [INFO] [stdout] | [INFO] [stdout] 450 | Stmt::ProcCallStmt(identifier, range) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/codegen/emitter.rs:453:28 [INFO] [stdout] | [INFO] [stdout] 453 | Stmt::CaseStmt(expr, items, range) => todo!(), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `items` [INFO] [stdout] --> src/codegen/emitter.rs:453:34 [INFO] [stdout] | [INFO] [stdout] 453 | Stmt::CaseStmt(expr, items, range) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:453:41 [INFO] [stdout] | [INFO] [stdout] 453 | Stmt::CaseStmt(expr, items, range) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifiers` [INFO] [stdout] --> src/codegen/emitter.rs:454:35 [INFO] [stdout] | [INFO] [stdout] 454 | Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifiers1` [INFO] [stdout] --> src/codegen/emitter.rs:454:48 [INFO] [stdout] | [INFO] [stdout] 454 | Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/codegen/emitter.rs:454:62 [INFO] [stdout] | [INFO] [stdout] 454 | Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:454:68 [INFO] [stdout] | [INFO] [stdout] 454 | Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifiers` [INFO] [stdout] --> src/codegen/emitter.rs:455:44 [INFO] [stdout] | [INFO] [stdout] 455 | Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/codegen/emitter.rs:455:57 [INFO] [stdout] | [INFO] [stdout] 455 | Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:455:63 [INFO] [stdout] | [INFO] [stdout] 455 | Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/main.rs:65:17 [INFO] [stdout] | [INFO] [stdout] 65 | Err(e) => todo!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:44:13 [INFO] [stdout] | [INFO] [stdout] 44 | let mut lexer = Lexer::new(jcf).into_iter(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/main.rs:104:17 [INFO] [stdout] | [INFO] [stdout] 104 | Err(e) => todo!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | let mut lexer = Lexer::new(jcf).into_iter(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `CombineSourceSpan` is never used [INFO] [stdout] --> src/err.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub trait CombineSourceSpan { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JaceFileMap` is never constructed [INFO] [stdout] --> src/jace_file.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct JaceFileMap<'a> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add`, and `get` are never used [INFO] [stdout] --> src/jace_file.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl<'a> JaceFileMap<'a> { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 55 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn add(&mut self, jace_file: JaceFile<'a>) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn get(&self, id: usize) -> Option<&JaceFile> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `kind` and `span` are never used [INFO] [stdout] --> src/lexer/token.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl Token { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 12 | pub fn kind(&self) -> TokenKind { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn span(&self) -> Range { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `bool`, `integer`, `float`, and `identifier` are never used [INFO] [stdout] --> src/lexer/token.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 98 | impl TokenKind { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 99 | pub fn bool(self) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn integer(self) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn float(self) -> f64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn identifier(self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `RecordType` is never constructed [INFO] [stdout] --> src/parser/ast.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 39 | pub enum TypeParam { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 57 | RecordType(Identifier, Vec<(Identifier, TypeParam)>, Range), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TypeParam` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MethodDef` is never used [INFO] [stdout] --> src/parser/ast.rs:79:10 [INFO] [stdout] | [INFO] [stdout] 79 | pub enum MethodDef { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MethodOperator` is never used [INFO] [stdout] --> src/parser/ast.rs:89:10 [INFO] [stdout] | [INFO] [stdout] 89 | pub enum MethodOperator { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `terminated` is never used [INFO] [stdout] --> src/parser/combinator.rs:179:8 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn terminated<'a, P, A>(parser_take: P, parser_terminator: P) -> impl Parser<'a, A> [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `unrecoverable`, `recoverable`, and `inner` are never used [INFO] [stdout] --> src/parser/error.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl ErrorType { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 21 | pub fn unrecoverable(self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn recoverable(self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn inner(err: ErrorType) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `label`, `help`, and `severity` are never used [INFO] [stdout] --> src/parser/error.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl ParserError { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn label(&mut self, label: String) -> &mut Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn help(&mut self, help: String) -> &mut Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn severity(&mut self, severity: Severity) -> &mut Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `peek` is never used [INFO] [stdout] --> src/parser/tokenstream.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl<'a> TokenStream<'a> { [INFO] [stdout] | ------------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn peek(&self) -> Option<(TokenKind, Range)> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TypeCheckerError` is never used [INFO] [stdout] --> src/typecheck/mod.rs:1:10 [INFO] [stdout] | [INFO] [stdout] 1 | pub enum TypeCheckerError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/jace_file.rs:67:16 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn get(&self, id: usize) -> Option<&JaceFile> { [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] | | || [INFO] [stdout] | | |the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 67 | pub fn get(&self, id: usize) -> Option<&JaceFile<'_>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/parser/tokenstream.rs:26:38 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new(toks: &'a [Token]) -> TokenStream { [INFO] [stdout] | -- ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new(toks: &'a [Token]) -> TokenStream<'a> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 22s [INFO] running `Command { std: "docker" "inspect" "7505e5e82f231a1d12dffab85c00ecdea4b9f351f3640e0ef96162544d352e93", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7505e5e82f231a1d12dffab85c00ecdea4b9f351f3640e0ef96162544d352e93", kill_on_drop: false }` [INFO] [stdout] 7505e5e82f231a1d12dffab85c00ecdea4b9f351f3640e0ef96162544d352e93 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] daf83941400c2d32bc17f1cee68eac54a413a9f05b0565cb41b4e651ee0c8fbb [INFO] running `Command { std: "docker" "start" "-a" "daf83941400c2d32bc17f1cee68eac54a413a9f05b0565cb41b4e651ee0c8fbb", kill_on_drop: false }` [INFO] [stderr] Compiling jace v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::ops::Range` [INFO] [stdout] --> src/parser/combinator.rs:246:5 [INFO] [stdout] | [INFO] [stdout] 246 | use std::ops::Range; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::def::parse_fn_body` [INFO] [stdout] --> src/parser/expr.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use super::def::parse_fn_body; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/parser/expr.rs:226:33 [INFO] [stdout] | [INFO] [stdout] 226 | parse_identifier().map(|(i), span| Expr::IdentExpr(i, span)), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 226 - parse_identifier().map(|(i), span| Expr::IdentExpr(i, span)), [INFO] [stdout] 226 + parse_identifier().map(|i, span| Expr::IdentExpr(i, span)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/parser/def.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | .map(|(defs), span| Module(defs, span)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 16 - .map(|(defs), span| Module(defs, span)) [INFO] [stdout] 16 + .map(|defs, span| Module(defs, span)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `left` and `not` [INFO] [stdout] --> src/parser/typeparam.rs:11:25 [INFO] [stdout] | [INFO] [stdout] 11 | use super::combinator::{left, not, zero_or_more}; [INFO] [stdout] | ^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::ast::*` [INFO] [stdout] --> src/codegen/emitter.rs:463:9 [INFO] [stdout] | [INFO] [stdout] 463 | use crate::parser::ast::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::prelude::*` [INFO] [stdout] --> src/codegen/emitter.rs:464:9 [INFO] [stdout] | [INFO] [stdout] 464 | use crate::parser::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TokenKind` and `Token` [INFO] [stdout] --> src/codegen/emitter.rs:465:31 [INFO] [stdout] | [INFO] [stdout] 465 | use crate::lexer::token::{Token, TokenKind}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parser::tokenstream::TokenStream` [INFO] [stdout] --> src/codegen/emitter.rs:467:9 [INFO] [stdout] | [INFO] [stdout] 467 | use crate::parser::tokenstream::TokenStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `codegen::emitter` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use codegen::emitter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `miette::Report` [INFO] [stdout] --> src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use miette::Report; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/parser/combinator.rs:67:34 [INFO] [stdout] | [INFO] [stdout] 67 | pair(p1, p2).map(|(left, _), s| left) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/parser/combinator.rs:77:31 [INFO] [stdout] | [INFO] [stdout] 77 | pair(p1, p2).map(|(_, r), s| r) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err1` [INFO] [stdout] --> src/parser/combinator.rs:89:17 [INFO] [stdout] | [INFO] [stdout] 89 | Err(err1) => match p2.parse_next(input) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_err1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `next` [INFO] [stdout] --> src/parser/combinator.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | Ok((next, a, s)) => [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_next` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bytes` [INFO] [stdout] --> src/lexer/lexer.rs:263:13 [INFO] [stdout] | [INFO] [stdout] 263 | let bytes = operator.len(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/lexer/lexer.rs:265:18 [INFO] [stdout] | [INFO] [stdout] 265 | Some(c @ ('=' | '!' | '<' | '>' | '+' | '-' | '/' | '*')) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/parser/def.rs:241:18 [INFO] [stdout] | [INFO] [stdout] 241 | .map(|t, s | [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `literal` [INFO] [stdout] --> src/codegen/emitter.rs:149:48 [INFO] [stdout] | [INFO] [stdout] 149 | FnPatternParam::BindToLiteralParam(literal, _) => todo!(), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literal` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifiers` [INFO] [stdout] --> src/codegen/emitter.rs:151:55 [INFO] [stdout] | [INFO] [stdout] 151 | FnPatternParam::BindToSetDeconstructParam(identifiers, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier` [INFO] [stdout] --> src/codegen/emitter.rs:152:52 [INFO] [stdout] | [INFO] [stdout] 152 | FnPatternParam::BindToSetSelectorParam(identifier, identifier1, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier1` [INFO] [stdout] --> src/codegen/emitter.rs:152:64 [INFO] [stdout] | [INFO] [stdout] 152 | FnPatternParam::BindToSetSelectorParam(identifier, identifier1, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier` [INFO] [stdout] --> src/codegen/emitter.rs:153:56 [INFO] [stdout] | [INFO] [stdout] 153 | FnPatternParam::BindToTypeConstructorParam(identifier, fn_pattern_params, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `fn_pattern_params` [INFO] [stdout] --> src/codegen/emitter.rs:153:68 [INFO] [stdout] | [INFO] [stdout] 153 | FnPatternParam::BindToTypeConstructorParam(identifier, fn_pattern_params, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_pattern_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:170:34 [INFO] [stdout] | [INFO] [stdout] 170 | Expr::SetExpr(items, range) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `exprs` [INFO] [stdout] --> src/codegen/emitter.rs:190:29 [INFO] [stdout] | [INFO] [stdout] 190 | Expr::TupleExpr(exprs, _) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_exprs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier` [INFO] [stdout] --> src/codegen/emitter.rs:232:28 [INFO] [stdout] | [INFO] [stdout] 232 | Expr::CaseExpr(identifier, items, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `items` [INFO] [stdout] --> src/codegen/emitter.rs:232:40 [INFO] [stdout] | [INFO] [stdout] 232 | Expr::CaseExpr(identifier, items, _) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `member_expr` [INFO] [stdout] --> src/codegen/emitter.rs:259:30 [INFO] [stdout] | [INFO] [stdout] 259 | Expr::MemberExpr(member_expr, _) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_member_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:446:25 [INFO] [stdout] | [INFO] [stdout] 446 | Stmt::Empty(range) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifier1` [INFO] [stdout] --> src/codegen/emitter.rs:447:42 [INFO] [stdout] | [INFO] [stdout] 447 | Stmt::AssignStmt(identifier, identifier1, expr, range) => { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:447:61 [INFO] [stdout] | [INFO] [stdout] 447 | Stmt::AssignStmt(identifier, identifier1, expr, range) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:450:44 [INFO] [stdout] | [INFO] [stdout] 450 | Stmt::ProcCallStmt(identifier, range) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/codegen/emitter.rs:453:28 [INFO] [stdout] | [INFO] [stdout] 453 | Stmt::CaseStmt(expr, items, range) => todo!(), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `items` [INFO] [stdout] --> src/codegen/emitter.rs:453:34 [INFO] [stdout] | [INFO] [stdout] 453 | Stmt::CaseStmt(expr, items, range) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_items` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:453:41 [INFO] [stdout] | [INFO] [stdout] 453 | Stmt::CaseStmt(expr, items, range) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifiers` [INFO] [stdout] --> src/codegen/emitter.rs:454:35 [INFO] [stdout] | [INFO] [stdout] 454 | Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifiers1` [INFO] [stdout] --> src/codegen/emitter.rs:454:48 [INFO] [stdout] | [INFO] [stdout] 454 | Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/codegen/emitter.rs:454:62 [INFO] [stdout] | [INFO] [stdout] 454 | Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:454:68 [INFO] [stdout] | [INFO] [stdout] 454 | Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `identifiers` [INFO] [stdout] --> src/codegen/emitter.rs:455:44 [INFO] [stdout] | [INFO] [stdout] 455 | Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> src/codegen/emitter.rs:455:57 [INFO] [stdout] | [INFO] [stdout] 455 | Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `range` [INFO] [stdout] --> src/codegen/emitter.rs:455:63 [INFO] [stdout] | [INFO] [stdout] 455 | Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/main.rs:65:17 [INFO] [stdout] | [INFO] [stdout] 65 | Err(e) => todo!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:44:13 [INFO] [stdout] | [INFO] [stdout] 44 | let mut lexer = Lexer::new(jcf).into_iter(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/main.rs:104:17 [INFO] [stdout] | [INFO] [stdout] 104 | Err(e) => todo!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | let mut lexer = Lexer::new(jcf).into_iter(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `CombineSourceSpan` is never used [INFO] [stdout] --> src/err.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub trait CombineSourceSpan { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JaceFileMap` is never constructed [INFO] [stdout] --> src/jace_file.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct JaceFileMap<'a> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add`, and `get` are never used [INFO] [stdout] --> src/jace_file.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl<'a> JaceFileMap<'a> { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 55 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn add(&mut self, jace_file: JaceFile<'a>) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn get(&self, id: usize) -> Option<&JaceFile> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `kind` and `span` are never used [INFO] [stdout] --> src/lexer/token.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl Token { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 12 | pub fn kind(&self) -> TokenKind { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn span(&self) -> Range { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `bool`, `integer`, `float`, and `identifier` are never used [INFO] [stdout] --> src/lexer/token.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 98 | impl TokenKind { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 99 | pub fn bool(self) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn integer(self) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn float(self) -> f64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn identifier(self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `RecordType` is never constructed [INFO] [stdout] --> src/parser/ast.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 39 | pub enum TypeParam { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 57 | RecordType(Identifier, Vec<(Identifier, TypeParam)>, Range), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TypeParam` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MethodDef` is never used [INFO] [stdout] --> src/parser/ast.rs:79:10 [INFO] [stdout] | [INFO] [stdout] 79 | pub enum MethodDef { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MethodOperator` is never used [INFO] [stdout] --> src/parser/ast.rs:89:10 [INFO] [stdout] | [INFO] [stdout] 89 | pub enum MethodOperator { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `terminated` is never used [INFO] [stdout] --> src/parser/combinator.rs:179:8 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn terminated<'a, P, A>(parser_take: P, parser_terminator: P) -> impl Parser<'a, A> [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `unrecoverable`, `recoverable`, and `inner` are never used [INFO] [stdout] --> src/parser/error.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl ErrorType { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 21 | pub fn unrecoverable(self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn recoverable(self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn inner(err: ErrorType) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `label`, `help`, and `severity` are never used [INFO] [stdout] --> src/parser/error.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl ParserError { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn label(&mut self, label: String) -> &mut Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn help(&mut self, help: String) -> &mut Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn severity(&mut self, severity: Severity) -> &mut Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `peek` is never used [INFO] [stdout] --> src/parser/tokenstream.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl<'a> TokenStream<'a> { [INFO] [stdout] | ------------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn peek(&self) -> Option<(TokenKind, Range)> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TypeCheckerError` is never used [INFO] [stdout] --> src/typecheck/mod.rs:1:10 [INFO] [stdout] | [INFO] [stdout] 1 | pub enum TypeCheckerError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/jace_file.rs:67:16 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn get(&self, id: usize) -> Option<&JaceFile> { [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] | | || [INFO] [stdout] | | |the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 67 | pub fn get(&self, id: usize) -> Option<&JaceFile<'_>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/parser/expr.rs:411:34 [INFO] [stdout] | [INFO] [stdout] 411 | fn mock_token_stream(tokens: &[Token]) -> TokenStream { [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 411 | fn mock_token_stream(tokens: &[Token]) -> TokenStream<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/parser/def.rs:266:34 [INFO] [stdout] | [INFO] [stdout] 266 | fn mock_token_stream(tokens: &[Token]) -> TokenStream { [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 266 | fn mock_token_stream(tokens: &[Token]) -> TokenStream<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/parser/stmt.rs:160:34 [INFO] [stdout] | [INFO] [stdout] 160 | fn mock_token_stream(tokens: &[Token]) -> TokenStream { [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 160 | fn mock_token_stream(tokens: &[Token]) -> TokenStream<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/parser/tokenstream.rs:26:38 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new(toks: &'a [Token]) -> TokenStream { [INFO] [stdout] | -- ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new(toks: &'a [Token]) -> TokenStream<'a> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 4.11s [INFO] running `Command { std: "docker" "inspect" "daf83941400c2d32bc17f1cee68eac54a413a9f05b0565cb41b4e651ee0c8fbb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "daf83941400c2d32bc17f1cee68eac54a413a9f05b0565cb41b4e651ee0c8fbb", kill_on_drop: false }` [INFO] [stdout] daf83941400c2d32bc17f1cee68eac54a413a9f05b0565cb41b4e651ee0c8fbb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 949192c6848b7114778ec64bdcd352882f49c1471864b305727612120b7b87d9 [INFO] running `Command { std: "docker" "start" "-a" "949192c6848b7114778ec64bdcd352882f49c1471864b305727612120b7b87d9", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `std::ops::Range` [INFO] [stderr] --> src/parser/combinator.rs:246:5 [INFO] [stderr] | [INFO] [stderr] 246 | use std::ops::Range; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::def::parse_fn_body` [INFO] [stderr] --> src/parser/expr.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use super::def::parse_fn_body; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around pattern [INFO] [stderr] --> src/parser/expr.rs:226:33 [INFO] [stderr] | [INFO] [stderr] 226 | parse_identifier().map(|(i), span| Expr::IdentExpr(i, span)), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 226 - parse_identifier().map(|(i), span| Expr::IdentExpr(i, span)), [INFO] [stderr] 226 + parse_identifier().map(|i, span| Expr::IdentExpr(i, span)), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around pattern [INFO] [stderr] --> src/parser/def.rs:16:15 [INFO] [stderr] | [INFO] [stderr] 16 | .map(|(defs), span| Module(defs, span)) [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 16 - .map(|(defs), span| Module(defs, span)) [INFO] [stderr] 16 + .map(|defs, span| Module(defs, span)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused imports: `left` and `not` [INFO] [stderr] --> src/parser/typeparam.rs:11:25 [INFO] [stderr] | [INFO] [stderr] 11 | use super::combinator::{left, not, zero_or_more}; [INFO] [stderr] | ^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::parser::ast::*` [INFO] [stderr] --> src/codegen/emitter.rs:463:9 [INFO] [stderr] | [INFO] [stderr] 463 | use crate::parser::ast::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::parser::prelude::*` [INFO] [stderr] --> src/codegen/emitter.rs:464:9 [INFO] [stderr] | [INFO] [stderr] 464 | use crate::parser::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `TokenKind` and `Token` [INFO] [stderr] --> src/codegen/emitter.rs:465:31 [INFO] [stderr] | [INFO] [stderr] 465 | use crate::lexer::token::{Token, TokenKind}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::parser::tokenstream::TokenStream` [INFO] [stderr] --> src/codegen/emitter.rs:467:9 [INFO] [stderr] | [INFO] [stderr] 467 | use crate::parser::tokenstream::TokenStream; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `codegen::emitter` [INFO] [stderr] --> src/main.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use codegen::emitter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `miette::Report` [INFO] [stderr] --> src/main.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use miette::Report; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/parser/combinator.rs:67:34 [INFO] [stderr] | [INFO] [stderr] 67 | pair(p1, p2).map(|(left, _), s| left) [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/parser/combinator.rs:77:31 [INFO] [stderr] | [INFO] [stderr] 77 | pair(p1, p2).map(|(_, r), s| r) [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err1` [INFO] [stderr] --> src/parser/combinator.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | Err(err1) => match p2.parse_next(input) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_err1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `next` [INFO] [stderr] --> src/parser/combinator.rs:213:17 [INFO] [stderr] | [INFO] [stderr] 213 | Ok((next, a, s)) => [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_next` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bytes` [INFO] [stderr] --> src/lexer/lexer.rs:263:13 [INFO] [stderr] | [INFO] [stderr] 263 | let bytes = operator.len(); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/lexer/lexer.rs:265:18 [INFO] [stderr] | [INFO] [stderr] 265 | Some(c @ ('=' | '!' | '<' | '>' | '+' | '-' | '/' | '*')) => { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/parser/def.rs:241:18 [INFO] [stderr] | [INFO] [stderr] 241 | .map(|t, s | [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `literal` [INFO] [stderr] --> src/codegen/emitter.rs:149:48 [INFO] [stderr] | [INFO] [stderr] 149 | FnPatternParam::BindToLiteralParam(literal, _) => todo!(), [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literal` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `identifiers` [INFO] [stderr] --> src/codegen/emitter.rs:151:55 [INFO] [stderr] | [INFO] [stderr] 151 | FnPatternParam::BindToSetDeconstructParam(identifiers, _) => todo!(), [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `identifier` [INFO] [stderr] --> src/codegen/emitter.rs:152:52 [INFO] [stderr] | [INFO] [stderr] 152 | FnPatternParam::BindToSetSelectorParam(identifier, identifier1, _) => todo!(), [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `identifier1` [INFO] [stderr] --> src/codegen/emitter.rs:152:64 [INFO] [stderr] | [INFO] [stderr] 152 | FnPatternParam::BindToSetSelectorParam(identifier, identifier1, _) => todo!(), [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `identifier` [INFO] [stderr] --> src/codegen/emitter.rs:153:56 [INFO] [stderr] | [INFO] [stderr] 153 | FnPatternParam::BindToTypeConstructorParam(identifier, fn_pattern_params, _) => todo!(), [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `fn_pattern_params` [INFO] [stderr] --> src/codegen/emitter.rs:153:68 [INFO] [stderr] | [INFO] [stderr] 153 | FnPatternParam::BindToTypeConstructorParam(identifier, fn_pattern_params, _) => todo!(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_pattern_params` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `range` [INFO] [stderr] --> src/codegen/emitter.rs:170:34 [INFO] [stderr] | [INFO] [stderr] 170 | Expr::SetExpr(items, range) => { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `exprs` [INFO] [stderr] --> src/codegen/emitter.rs:190:29 [INFO] [stderr] | [INFO] [stderr] 190 | Expr::TupleExpr(exprs, _) => todo!(), [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_exprs` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `identifier` [INFO] [stderr] --> src/codegen/emitter.rs:232:28 [INFO] [stderr] | [INFO] [stderr] 232 | Expr::CaseExpr(identifier, items, _) => todo!(), [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `items` [INFO] [stderr] --> src/codegen/emitter.rs:232:40 [INFO] [stderr] | [INFO] [stderr] 232 | Expr::CaseExpr(identifier, items, _) => todo!(), [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_items` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `member_expr` [INFO] [stderr] --> src/codegen/emitter.rs:259:30 [INFO] [stderr] | [INFO] [stderr] 259 | Expr::MemberExpr(member_expr, _) => todo!(), [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_member_expr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `range` [INFO] [stderr] --> src/codegen/emitter.rs:446:25 [INFO] [stderr] | [INFO] [stderr] 446 | Stmt::Empty(range) => todo!(), [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `identifier1` [INFO] [stderr] --> src/codegen/emitter.rs:447:42 [INFO] [stderr] | [INFO] [stderr] 447 | Stmt::AssignStmt(identifier, identifier1, expr, range) => { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `range` [INFO] [stderr] --> src/codegen/emitter.rs:447:61 [INFO] [stderr] | [INFO] [stderr] 447 | Stmt::AssignStmt(identifier, identifier1, expr, range) => { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `range` [INFO] [stderr] --> src/codegen/emitter.rs:450:44 [INFO] [stderr] | [INFO] [stderr] 450 | Stmt::ProcCallStmt(identifier, range) => { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expr` [INFO] [stderr] --> src/codegen/emitter.rs:453:28 [INFO] [stderr] | [INFO] [stderr] 453 | Stmt::CaseStmt(expr, items, range) => todo!(), [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `items` [INFO] [stderr] --> src/codegen/emitter.rs:453:34 [INFO] [stderr] | [INFO] [stderr] 453 | Stmt::CaseStmt(expr, items, range) => todo!(), [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_items` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `range` [INFO] [stderr] --> src/codegen/emitter.rs:453:41 [INFO] [stderr] | [INFO] [stderr] 453 | Stmt::CaseStmt(expr, items, range) => todo!(), [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `identifiers` [INFO] [stderr] --> src/codegen/emitter.rs:454:35 [INFO] [stderr] | [INFO] [stderr] 454 | Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(), [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `identifiers1` [INFO] [stderr] --> src/codegen/emitter.rs:454:48 [INFO] [stderr] | [INFO] [stderr] 454 | Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(), [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expr` [INFO] [stderr] --> src/codegen/emitter.rs:454:62 [INFO] [stderr] | [INFO] [stderr] 454 | Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(), [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `range` [INFO] [stderr] --> src/codegen/emitter.rs:454:68 [INFO] [stderr] | [INFO] [stderr] 454 | Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(), [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `identifiers` [INFO] [stderr] --> src/codegen/emitter.rs:455:44 [INFO] [stderr] | [INFO] [stderr] 455 | Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(), [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expr` [INFO] [stderr] --> src/codegen/emitter.rs:455:57 [INFO] [stderr] | [INFO] [stderr] 455 | Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(), [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `range` [INFO] [stderr] --> src/codegen/emitter.rs:455:63 [INFO] [stderr] | [INFO] [stderr] 455 | Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(), [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_range` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:65:17 [INFO] [stderr] | [INFO] [stderr] 65 | Err(e) => todo!(), [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | let mut lexer = Lexer::new(jcf).into_iter(); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:104:17 [INFO] [stderr] | [INFO] [stderr] 104 | Err(e) => todo!(), [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | let mut lexer = Lexer::new(jcf).into_iter(); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: trait `CombineSourceSpan` is never used [INFO] [stderr] --> src/err.rs:6:11 [INFO] [stderr] | [INFO] [stderr] 6 | pub trait CombineSourceSpan { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: struct `JaceFileMap` is never constructed [INFO] [stderr] --> src/jace_file.rs:50:12 [INFO] [stderr] | [INFO] [stderr] 50 | pub struct JaceFileMap<'a> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `add`, and `get` are never used [INFO] [stderr] --> src/jace_file.rs:55:12 [INFO] [stderr] | [INFO] [stderr] 54 | impl<'a> JaceFileMap<'a> { [INFO] [stderr] | ------------------------ associated items in this implementation [INFO] [stderr] 55 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 61 | pub fn add(&mut self, jace_file: JaceFile<'a>) -> usize { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 67 | pub fn get(&self, id: usize) -> Option<&JaceFile> { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `kind` and `span` are never used [INFO] [stderr] --> src/lexer/token.rs:12:12 [INFO] [stderr] | [INFO] [stderr] 7 | impl Token { [INFO] [stderr] | ---------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 12 | pub fn kind(&self) -> TokenKind { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 16 | pub fn span(&self) -> Range { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `bool`, `integer`, `float`, and `identifier` are never used [INFO] [stderr] --> src/lexer/token.rs:99:12 [INFO] [stderr] | [INFO] [stderr] 98 | impl TokenKind { [INFO] [stderr] | -------------- methods in this implementation [INFO] [stderr] 99 | pub fn bool(self) -> bool { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 106 | pub fn integer(self) -> usize { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 113 | pub fn float(self) -> f64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 120 | pub fn identifier(self) -> String { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `RecordType` is never constructed [INFO] [stderr] --> src/parser/ast.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 39 | pub enum TypeParam { [INFO] [stderr] | --------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 57 | RecordType(Identifier, Vec<(Identifier, TypeParam)>, Range), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `TypeParam` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: enum `MethodDef` is never used [INFO] [stderr] --> src/parser/ast.rs:79:10 [INFO] [stderr] | [INFO] [stderr] 79 | pub enum MethodDef { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `MethodOperator` is never used [INFO] [stderr] --> src/parser/ast.rs:89:10 [INFO] [stderr] | [INFO] [stderr] 89 | pub enum MethodOperator { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `terminated` is never used [INFO] [stderr] --> src/parser/combinator.rs:179:8 [INFO] [stderr] | [INFO] [stderr] 179 | pub fn terminated<'a, P, A>(parser_take: P, parser_terminator: P) -> impl Parser<'a, A> [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `unrecoverable`, `recoverable`, and `inner` are never used [INFO] [stderr] --> src/parser/error.rs:21:12 [INFO] [stderr] | [INFO] [stderr] 20 | impl ErrorType { [INFO] [stderr] | -------------- associated items in this implementation [INFO] [stderr] 21 | pub fn unrecoverable(self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 28 | pub fn recoverable(self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 35 | pub fn inner(err: ErrorType) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `label`, `help`, and `severity` are never used [INFO] [stderr] --> src/parser/error.rs:68:12 [INFO] [stderr] | [INFO] [stderr] 52 | impl ParserError { [INFO] [stderr] | ---------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 68 | pub fn label(&mut self, label: String) -> &mut Self { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 73 | pub fn help(&mut self, help: String) -> &mut Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 78 | pub fn severity(&mut self, severity: Severity) -> &mut Self { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `peek` is never used [INFO] [stderr] --> src/parser/tokenstream.rs:42:12 [INFO] [stderr] | [INFO] [stderr] 25 | impl<'a> TokenStream<'a> { [INFO] [stderr] | ------------------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 42 | pub fn peek(&self) -> Option<(TokenKind, Range)> { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `TypeCheckerError` is never used [INFO] [stderr] --> src/typecheck/mod.rs:1:10 [INFO] [stderr] | [INFO] [stderr] 1 | pub enum TypeCheckerError {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/jace_file.rs:67:16 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn get(&self, id: usize) -> Option<&JaceFile> { [INFO] [stderr] | ^^^^^ ^^^^^^^^^ [INFO] [stderr] | | || [INFO] [stderr] | | |the same lifetime is hidden here [INFO] [stderr] | | the same lifetime is elided here [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 67 | pub fn get(&self, id: usize) -> Option<&JaceFile<'_>> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/parser/expr.rs:411:34 [INFO] [stderr] | [INFO] [stderr] 411 | fn mock_token_stream(tokens: &[Token]) -> TokenStream { [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 411 | fn mock_token_stream(tokens: &[Token]) -> TokenStream<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/parser/def.rs:266:34 [INFO] [stderr] | [INFO] [stderr] 266 | fn mock_token_stream(tokens: &[Token]) -> TokenStream { [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 266 | fn mock_token_stream(tokens: &[Token]) -> TokenStream<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/parser/stmt.rs:160:34 [INFO] [stderr] | [INFO] [stderr] 160 | fn mock_token_stream(tokens: &[Token]) -> TokenStream { [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 160 | fn mock_token_stream(tokens: &[Token]) -> TokenStream<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/parser/tokenstream.rs:26:38 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn new(toks: &'a [Token]) -> TokenStream { [INFO] [stderr] | -- ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is named here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 26 | pub fn new(toks: &'a [Token]) -> TokenStream<'a> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: `jace` (bin "jace" test) generated 65 warnings (run `cargo fix --bin "jace" --tests` to apply 18 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/jace-448098f5e4243fe0) [INFO] [stdout] [INFO] [stdout] running 89 tests [INFO] [stdout] test codegen::emitter::tests::test_visit_expr_bin_op ... ok [INFO] [stdout] test codegen::emitter::tests::test_visit_def_type ... ok [INFO] [stdout] test codegen::emitter::tests::test_visit_expr_ident ... ok [INFO] [stdout] test codegen::emitter::tests::test_visit_def_fn ... ok [INFO] [stdout] test codegen::emitter::tests::test_visit_expr_fn_call ... ok [INFO] [stdout] test codegen::emitter::tests::test_visit_expr_lit ... ok [INFO] [stdout] test codegen::emitter::tests::test_visit_stmt_proc_call ... ok [INFO] [stdout] test codegen::emitter::tests::test_visit_fn_expr ... ok [INFO] [stdout] test codegen::emitter::tests::test_visit_identifier ... ok [INFO] [stdout] test lexer::lexer::tests::test_brackets ... ok [INFO] [stdout] test lexer::lexer::tests::test_comments ... ok [INFO] [stdout] test lexer::lexer::tests::test_delimiters ... ok [INFO] [stdout] test lexer::lexer::tests::test_escape_sequences_in_strings ... ok [INFO] [stdout] test lexer::lexer::tests::test_identifiers ... ok [INFO] [stdout] test lexer::lexer::tests::test_integers_and_floats ... ok [INFO] [stdout] test lexer::lexer::tests::test_malformed_number ... ok [INFO] [stdout] test lexer::lexer::tests::test_operators ... ok [INFO] [stdout] test lexer::lexer::tests::test_reserved_keywords ... ok [INFO] [stdout] test lexer::lexer::tests::test_strings ... ok [INFO] [stdout] test lexer::lexer::tests::test_unexpected_char ... ok [INFO] [stdout] test parser::combinator::tests::test_left ... ok [INFO] [stdout] test parser::combinator::tests::test_map ... ok [INFO] [stdout] test parser::combinator::tests::test_not ... ok [INFO] [stdout] test parser::combinator::tests::test_not_with_match ... ok [INFO] [stdout] test parser::combinator::tests::test_one_or_more ... ok [INFO] [stdout] test parser::combinator::tests::test_one_or_more_no_match ... ok [INFO] [stdout] test parser::combinator::tests::test_or ... ok [INFO] [stdout] test parser::combinator::tests::test_right ... ok [INFO] [stdout] test parser::combinator::tests::test_or_no_match ... ok [INFO] [stdout] test parser::combinator::tests::test_pair ... ok [INFO] [stdout] test parser::combinator::tests::test_surrounded ... ok [INFO] [stdout] test parser::combinator::tests::test_surrounded_missing_closing ... ok [INFO] [stdout] test parser::combinator::tests::test_zero_or_more ... ok [INFO] [stdout] test parser::combinator::tests::test_zero_or_more_no_match ... ok [INFO] [stdout] test parser::def::tests::test_parse_def ... ok [INFO] [stdout] test parser::def::tests::test_parse_fn_body ... ok [INFO] [stdout] test parser::def::tests::test_parse_def_header ... ok [INFO] [stdout] test parser::def::tests::test_parse_fn_body_case ... ok [INFO] [stdout] test parser::def::tests::test_parse_fn_body_params ... ok [INFO] [stdout] test parser::def::tests::test_parse_fn_body_single ... ok [INFO] [stdout] test parser::def::tests::test_parse_fn_pattern_param ... ok [INFO] [stdout] test parser::def::tests::test_parse_fn_type_constraint ... ok [INFO] [stdout] test codegen::emitter::tests::test_visit_literal_string ... ok [INFO] [stdout] test parser::def::tests::test_parse_fn_type_sig ... ok [INFO] [stdout] test codegen::emitter::tests::test_visit_stmt_fn_call ... ok [INFO] [stdout] test parser::def::tests::test_parse_fn_def ... ok [INFO] [stdout] test codegen::emitter::tests::test_visit_stmt_assign ... ok [INFO] [stdout] test parser::def::tests::test_parse_fn_type_constraints ... ok [INFO] [stdout] test parser::def::tests::test_parse_module ... ok [INFO] [stdout] test parser::def::tests::test_parse_type_def_header ... ok [INFO] [stdout] test parser::def::tests::test_parse_type_def_member ... ok [INFO] [stdout] test parser::def::tests::test_parse_type_def ... ok [INFO] [stdout] test parser::expr::tests::test_parse_bin_op ... ok [INFO] [stdout] test parser::expr::tests::test_parse_empty_set ... ok [INFO] [stdout] test parser::def::tests::test_parse_proc_def ... ok [INFO] [stdout] test parser::expr::tests::test_parse_case_expr ... ok [INFO] [stdout] test parser::expr::tests::test_parse_comma_seperated_expressions ... ok [INFO] [stdout] test parser::expr::tests::test_parse_expression ... ok [INFO] [stdout] test codegen::emitter::tests::test_visit_literal_integer ... ok [INFO] [stdout] test parser::expr::tests::test_parse_fn_arg_identifier ... ok [INFO] [stdout] test parser::expr::tests::test_parse_fn_expr_case_branch ... ok [INFO] [stdout] test parser::expr::tests::test_parse_fn_call_expr ... ok [INFO] [stdout] test parser::expr::tests::test_parse_fn_arg ... ok [INFO] [stdout] test parser::expr::tests::test_parse_fn_expr_case_params ... ok [INFO] [stdout] test parser::expr::tests::test_parse_fn_expr_case_param ... ok [INFO] [stdout] test parser::expr::tests::test_parse_fn_expr_param ... ok [INFO] [stdout] test parser::expr::tests::test_parse_let_in_expr ... ok [INFO] [stdout] test parser::expr::tests::test_parse_fn_param_set_selector ... ok [INFO] [stdout] test parser::expr::tests::test_parse_if_then_else ... ok [INFO] [stdout] test parser::expr::tests::test_parse_member_expr ... ok [INFO] [stdout] test parser::expr::tests::test_parse_set_array ... ok [INFO] [stdout] test parser::expr::tests::test_parse_set_deconstruct ... ok [INFO] [stdout] test parser::expr::tests::test_parse_primary ... ok [INFO] [stdout] test parser::expr::tests::test_parse_set_literal_field ... ok [INFO] [stdout] test parser::expr::tests::test_parse_unary_op ... ok [INFO] [stdout] test parser::expr::tests::test_parse_set_literal ... ok [INFO] [stdout] test parser::expr::tests::test_parse_parenthesized_expression ... ok [INFO] [stdout] test parser::expr::tests::test_parse_set_literal_comma_seperated_fields ... ok [INFO] [stdout] test parser::stmt::tests::test_parse_case_stmt_branch ... ok [INFO] [stdout] test parser::stmt::tests::test_parse_case_statement ... ok [INFO] [stdout] test parser::stmt::tests::test_parse_comma_seperated_identifiers ... ok [INFO] [stdout] test parser::stmt::tests::test_parse_fn_call_stmt ... ok [INFO] [stdout] test parser::stmt::tests::test_parse_proc_call ... ok [INFO] [stdout] test parser::stmt::tests::test_parse_inferred_multi_assign_statement ... ok [INFO] [stdout] test parser::stmt::tests::test_parse_statement ... ok [INFO] [stdout] test parser::stmt::tests::test_parse_set_deconstruct_assignment ... ok [INFO] [stdout] test parser::stmt::tests::test_parse_inferred_assignment ... ok [INFO] [stdout] test parser::stmt::tests::test_parse_type_assignment ... ok [INFO] [stdout] test parser::stmt::tests::test_parse_typed_multi_assign_statement ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 89 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "949192c6848b7114778ec64bdcd352882f49c1471864b305727612120b7b87d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "949192c6848b7114778ec64bdcd352882f49c1471864b305727612120b7b87d9", kill_on_drop: false }` [INFO] [stdout] 949192c6848b7114778ec64bdcd352882f49c1471864b305727612120b7b87d9