[INFO] cloning repository https://github.com/zesterer/funkicrab [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zesterer/funkicrab" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzesterer%2Ffunkicrab", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzesterer%2Ffunkicrab'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 98528cc593478391a0ef0f91ff533592cf263914 [INFO] testing zesterer/funkicrab against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzesterer%2Ffunkicrab" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/zesterer/funkicrab [INFO] finished tweaking git repo https://github.com/zesterer/funkicrab [INFO] tweaked toml for git repo https://github.com/zesterer/funkicrab written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/zesterer/funkicrab on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/zesterer/funkicrab 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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded bimap v0.1.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 30bc0ef614ac1413c7b97657e4330cae5cd4744de94f8b24daf3cd528fc4fa71 [INFO] running `Command { std: "docker" "start" "-a" "30bc0ef614ac1413c7b97657e4330cae5cd4744de94f8b24daf3cd528fc4fa71", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "30bc0ef614ac1413c7b97657e4330cae5cd4744de94f8b24daf3cd528fc4fa71", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "30bc0ef614ac1413c7b97657e4330cae5cd4744de94f8b24daf3cd528fc4fa71", kill_on_drop: false }` [INFO] [stdout] 30bc0ef614ac1413c7b97657e4330cae5cd4744de94f8b24daf3cd528fc4fa71 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c011aad70328de1ab6217aeff66dbfa83239078c3bc1f98b6be302b158b43f84 [INFO] running `Command { std: "docker" "start" "-a" "c011aad70328de1ab6217aeff66dbfa83239078c3bc1f98b6be302b158b43f84", kill_on_drop: false }` [INFO] [stderr] Compiling bimap v0.1.5 [INFO] [stderr] Compiling funkicrab v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `super::Error` [INFO] [stdout] --> src/exec.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use super::Error; [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: `std::collections::HashMap` [INFO] [stdout] --> src/hir.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `iter::FromIterator` [INFO] [stdout] --> src/llir.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | iter::FromIterator, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/llir.rs:242:20 [INFO] [stdout] | [INFO] [stdout] 242 | if (if let CellAccessInfo::Exactly(cells) = &cell_reads { [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 246 | }) { [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] 242 ~ if if let CellAccessInfo::Exactly(cells) = &cell_reads { [INFO] [stdout] 243 | cells.len() == 0 [INFO] [stdout] 244 | } else { [INFO] [stdout] 245 | false [INFO] [stdout] 246 ~ } { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CellAccessInfo` [INFO] [stdout] --> src/opt.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | CellAccessInfo, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `label_break_value` has been stable since 1.65.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(label_break_value)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/opt.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 65 | / loop { [INFO] [stdout] 66 | | let new_prog = optimise_program(prog.clone()); [INFO] [stdout] 67 | | if prog == new_prog { [INFO] [stdout] 68 | | return prog; [INFO] [stdout] ... | [INFO] [stdout] 72 | | } [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 73 | prog [INFO] [stdout] | ^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/ir.rs:64:60 [INFO] [stdout] | [INFO] [stdout] 64 | return Some(copymuls.into_iter().map(|(shift, (i, f))| (shift, f)).collect()); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/ir.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | inst => { return None; }, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/ir.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 61 | if let Some(&(i, n)) = copymuls.get(&base_shift) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/ir.rs:61:22 [INFO] [stdout] | [INFO] [stdout] 61 | if let Some(&(i, n)) = copymuls.get(&base_shift) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/ir.rs:116:14 [INFO] [stdout] | [INFO] [stdout] 116 | (c, Inst::Add(_, 0)) => {}, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/ir.rs:117:14 [INFO] [stdout] | [INFO] [stdout] 117 | (c, Inst::CopyMul(_, _, 0)) => {}, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/ir.rs:118:14 [INFO] [stdout] | [INFO] [stdout] 118 | (c, Inst::Nop) => {}, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/ir.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | (c, Inst::Move(0)) => {}, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ir.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | let mut cells = Vec::new(); [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: `val_r` [INFO] [stdout] --> src/ir.rs:224:25 [INFO] [stdout] | [INFO] [stdout] 224 | let val_r = get_cell_val(&cells, idx_r); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_val_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/ir.rs:289:13 [INFO] [stdout] | [INFO] [stdout] 289 | i => { ir.pop(); }, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> src/comp.rs:16:27 [INFO] [stdout] | [INFO] [stdout] 16 | Inst::Add(r, 0) => {}, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hir.rs:78:17 [INFO] [stdout] | [INFO] [stdout] 78 | let mut local_id_count = 0; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `local_id_count` [INFO] [stdout] --> src/hir.rs:78:17 [INFO] [stdout] | [INFO] [stdout] 78 | let mut local_id_count = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_id_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hir.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | let mut code = String::new(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `code` [INFO] [stdout] --> src/hir.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | let mut code = String::new(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/hir.rs:201:21 [INFO] [stdout] | [INFO] [stdout] 201 | o => panic!("Unknown operation: {:?}", o), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/hir.rs:201:21 [INFO] [stdout] | [INFO] [stdout] 189 | Op::MovePtr(val) => { [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 193 | Op::SetLocal { id, val } => { [INFO] [stdout] | ------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 197 | Op::Output(val) => { [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 201 | o => panic!("Unknown operation: {:?}", o), [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/hir.rs:232:21 [INFO] [stdout] | [INFO] [stdout] 232 | _ => panic!("Unknown section type!"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/hir.rs:232:21 [INFO] [stdout] | [INFO] [stdout] 222 | Section::Proc(proc) => { code += &stringify_proc(&proc, depth); }, [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] 223 | Section::Loop(lp) => { [INFO] [stdout] | ----------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 232 | _ => panic!("Unknown section type!"), [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/llir.rs:142:57 [INFO] [stdout] | [INFO] [stdout] 142 | ... let change_reads = self.changes.iter().filter(|(idx, c)| if let Change::Incr(_) = c { true } else { false }).map(|(idx, _)| *... [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/llir.rs:240:30 [INFO] [stdout] | [INFO] [stdout] 240 | ValInfo::Exactly(n) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/llir.rs:288:28 [INFO] [stdout] | [INFO] [stdout] 288 | Section::Input(input) => ValInfo::Exactly(0), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/llir.rs:357:21 [INFO] [stdout] | [INFO] [stdout] 357 | t => panic!("Unknown token: {:?}", t), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/llir.rs:357:21 [INFO] [stdout] | [INFO] [stdout] 326 | Token::Right => current_bs.shift.0 += 1, [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] 327 | Token::Left => current_bs.shift.0 -= 1, [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] 328 | Token::Inc => current_bs.add_cell_incr(current_bs.shift, Diff(1)), [INFO] [stdout] | ---------- matches some of the same values [INFO] [stdout] 329 | Token::Dec => current_bs.add_cell_incr(current_bs.shift, Diff(-1)), [INFO] [stdout] | ---------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 357 | t => panic!("Unknown token: {:?}", t), [INFO] [stdout] | ^ ...and 3 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/llir.rs:484:21 [INFO] [stdout] | [INFO] [stdout] 484 | _ => panic!("Unknown section type!"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/llir.rs:484:21 [INFO] [stdout] | [INFO] [stdout] 481 | Section::Basic(basic) => stringify_basic_section(&basic, depth), [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] 482 | Section::Input(input) => stringify_input_section(&input, depth), [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] 483 | Section::Loop(luup) => stringify_loop_section(&luup, depth), [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] 484 | _ => panic!("Unknown section type!"), [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/opt.rs:46:26 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn optimise_sections(mut sections: Vec
) -> Vec
{ [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | let mut bracket_count = 0; [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bracket_count` [INFO] [stdout] --> src/main.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | let mut bracket_count = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bracket_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `None` is never constructed [INFO] [stdout] --> src/exec.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 16 | enum Done { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 19 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Done` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Idx` is never constructed [INFO] [stdout] --> src/hir.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Idx(i32); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Expr` is never used [INFO] [stdout] --> src/hir.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum Expr { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Op` is never used [INFO] [stdout] --> src/hir.rs:22:10 [INFO] [stdout] | [INFO] [stdout] 22 | pub enum Op { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Loop` is never constructed [INFO] [stdout] --> src/hir.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Loop { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Proc` is never constructed [INFO] [stdout] --> src/hir.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct Proc { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `get_or_create_local` are never used [INFO] [stdout] --> src/hir.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 44 | impl Proc { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 45 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | fn get_or_create_local(&mut self, idx: Idx) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Section` is never used [INFO] [stdout] --> src/hir.rs:65:10 [INFO] [stdout] | [INFO] [stdout] 65 | pub enum Section { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Program` is never constructed [INFO] [stdout] --> src/hir.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub struct Program { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `generate_c` is never used [INFO] [stdout] --> src/hir.rs:156:12 [INFO] [stdout] | [INFO] [stdout] 155 | impl Program { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 156 | pub fn generate_c(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `stringify` is never used [INFO] [stdout] --> src/hir.rs:158:16 [INFO] [stdout] | [INFO] [stdout] 157 | impl Expr { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 158 | fn stringify(&self, proc: Option<&Proc>) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Idx` is never constructed [INFO] [stdout] --> src/llir.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Idx(i32); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Diff` is never constructed [INFO] [stdout] --> src/llir.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Diff(i32); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ValInfo` is never used [INFO] [stdout] --> src/llir.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum ValInfo { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CellAccessInfo` is never used [INFO] [stdout] --> src/llir.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum CellAccessInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `union` and `intersection` are never used [INFO] [stdout] --> src/llir.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 47 | impl CellAccessInfo { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn union(&self, rel_shift: Idx, other: &CellAccessInfo) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn intersection(&self, rel_shift: Idx, other: &CellAccessInfo) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Change` is never used [INFO] [stdout] --> src/llir.rs:79:10 [INFO] [stdout] | [INFO] [stdout] 79 | pub enum Change { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Output` is never used [INFO] [stdout] --> src/llir.rs:87:10 [INFO] [stdout] | [INFO] [stdout] 87 | pub enum Output { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BasicSection` is never constructed [INFO] [stdout] --> src/llir.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 97 | pub struct BasicSection { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_cell_incr`, `add_cell_output`, `has_no_effect`, and `get_cell_reads` are never used [INFO] [stdout] --> src/llir.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 103 | impl BasicSection { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 104 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | fn add_cell_incr(&mut self, idx: Idx, diff: Diff) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn add_cell_output(&mut self, idx: Idx) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn has_no_effect(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn get_cell_reads(&self) -> CellAccessInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InputSection` is never constructed [INFO] [stdout] --> src/llir.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 149 | pub struct InputSection { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_cell_input`, `has_no_effect`, and `get_cell_reads` are never used [INFO] [stdout] --> src/llir.rs:154:8 [INFO] [stdout] | [INFO] [stdout] 153 | impl InputSection { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 154 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | fn add_cell_input(&mut self, idx: Idx) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn has_no_effect(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn get_cell_reads(&self) -> CellAccessInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Predicate` is never used [INFO] [stdout] --> src/llir.rs:177:10 [INFO] [stdout] | [INFO] [stdout] 177 | pub enum Predicate { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LoopSection` is never constructed [INFO] [stdout] --> src/llir.rs:186:12 [INFO] [stdout] | [INFO] [stdout] 186 | pub struct LoopSection { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_section`, `has_no_effect`, and `get_cell_reads` are never used [INFO] [stdout] --> src/llir.rs:193:8 [INFO] [stdout] | [INFO] [stdout] 192 | impl LoopSection { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 193 | fn new(predicate: Predicate) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | fn add_section(&mut self, section: Section) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 206 | pub fn has_no_effect(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub fn get_cell_reads(&self) -> CellAccessInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Section` is never used [INFO] [stdout] --> src/llir.rs:262:10 [INFO] [stdout] | [INFO] [stdout] 262 | pub enum Section { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_shift`, `has_no_effect`, and `get_cell_reads` are never used [INFO] [stdout] --> src/llir.rs:285:12 [INFO] [stdout] | [INFO] [stdout] 280 | impl Section { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 285 | pub fn get_shift(&self) -> ValInfo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | pub fn has_no_effect(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 303 | pub fn get_cell_reads(&self) -> CellAccessInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Program` is never constructed [INFO] [stdout] --> src/llir.rs:313:12 [INFO] [stdout] | [INFO] [stdout] 313 | pub struct Program { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `generate_c` is never used [INFO] [stdout] --> src/llir.rs:371:12 [INFO] [stdout] | [INFO] [stdout] 370 | impl Program { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 371 | pub fn generate_c(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `optimise_calc_shifts` is never used [INFO] [stdout] --> src/opt.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn optimise_calc_shifts(section: &mut Section) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `optimise_sections` is never used [INFO] [stdout] --> src/opt.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn optimise_sections(mut sections: Vec
) -> Vec
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `optimise_program` is never used [INFO] [stdout] --> src/opt.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn optimise_program(mut prog: Program) -> Program { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `optimise` is never used [INFO] [stdout] --> src/opt.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn optimise(mut prog: Program) -> Program { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/hir.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn generate_c(&self) -> String { [INFO] [stdout] | ---------------------------------- move the `impl` block outside of this method `generate_c` [INFO] [stdout] 157 | impl Expr { [INFO] [stdout] | ^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | `Expr` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.52s [INFO] running `Command { std: "docker" "inspect" "c011aad70328de1ab6217aeff66dbfa83239078c3bc1f98b6be302b158b43f84", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c011aad70328de1ab6217aeff66dbfa83239078c3bc1f98b6be302b158b43f84", kill_on_drop: false }` [INFO] [stdout] c011aad70328de1ab6217aeff66dbfa83239078c3bc1f98b6be302b158b43f84 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 81e339a68bfd21b3360720eb16a32524c08fcd4a2864586b4bf711a0af449f36 [INFO] running `Command { std: "docker" "start" "-a" "81e339a68bfd21b3360720eb16a32524c08fcd4a2864586b4bf711a0af449f36", kill_on_drop: false }` [INFO] [stderr] Compiling funkicrab v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `super::Error` [INFO] [stdout] --> src/exec.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use super::Error; [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: `std::collections::HashMap` [INFO] [stdout] --> src/hir.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `iter::FromIterator` [INFO] [stdout] --> src/llir.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | iter::FromIterator, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/llir.rs:242:20 [INFO] [stdout] | [INFO] [stdout] 242 | if (if let CellAccessInfo::Exactly(cells) = &cell_reads { [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 246 | }) { [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] 242 ~ if if let CellAccessInfo::Exactly(cells) = &cell_reads { [INFO] [stdout] 243 | cells.len() == 0 [INFO] [stdout] 244 | } else { [INFO] [stdout] 245 | false [INFO] [stdout] 246 ~ } { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CellAccessInfo` [INFO] [stdout] --> src/opt.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | CellAccessInfo, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `label_break_value` has been stable since 1.65.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(label_break_value)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/opt.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 65 | / loop { [INFO] [stdout] 66 | | let new_prog = optimise_program(prog.clone()); [INFO] [stdout] 67 | | if prog == new_prog { [INFO] [stdout] 68 | | return prog; [INFO] [stdout] ... | [INFO] [stdout] 72 | | } [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 73 | prog [INFO] [stdout] | ^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/ir.rs:64:60 [INFO] [stdout] | [INFO] [stdout] 64 | return Some(copymuls.into_iter().map(|(shift, (i, f))| (shift, f)).collect()); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/ir.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | inst => { return None; }, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/ir.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 61 | if let Some(&(i, n)) = copymuls.get(&base_shift) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/ir.rs:61:22 [INFO] [stdout] | [INFO] [stdout] 61 | if let Some(&(i, n)) = copymuls.get(&base_shift) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/ir.rs:116:14 [INFO] [stdout] | [INFO] [stdout] 116 | (c, Inst::Add(_, 0)) => {}, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/ir.rs:117:14 [INFO] [stdout] | [INFO] [stdout] 117 | (c, Inst::CopyMul(_, _, 0)) => {}, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/ir.rs:118:14 [INFO] [stdout] | [INFO] [stdout] 118 | (c, Inst::Nop) => {}, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/ir.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | (c, Inst::Move(0)) => {}, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ir.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | let mut cells = Vec::new(); [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: `val_r` [INFO] [stdout] --> src/ir.rs:224:25 [INFO] [stdout] | [INFO] [stdout] 224 | let val_r = get_cell_val(&cells, idx_r); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_val_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/ir.rs:289:13 [INFO] [stdout] | [INFO] [stdout] 289 | i => { ir.pop(); }, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> src/comp.rs:16:27 [INFO] [stdout] | [INFO] [stdout] 16 | Inst::Add(r, 0) => {}, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hir.rs:78:17 [INFO] [stdout] | [INFO] [stdout] 78 | let mut local_id_count = 0; [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `local_id_count` [INFO] [stdout] --> src/hir.rs:78:17 [INFO] [stdout] | [INFO] [stdout] 78 | let mut local_id_count = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_id_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hir.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | let mut code = String::new(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `code` [INFO] [stdout] --> src/hir.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | let mut code = String::new(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/hir.rs:201:21 [INFO] [stdout] | [INFO] [stdout] 201 | o => panic!("Unknown operation: {:?}", o), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/hir.rs:201:21 [INFO] [stdout] | [INFO] [stdout] 189 | Op::MovePtr(val) => { [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 193 | Op::SetLocal { id, val } => { [INFO] [stdout] | ------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 197 | Op::Output(val) => { [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 201 | o => panic!("Unknown operation: {:?}", o), [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/hir.rs:232:21 [INFO] [stdout] | [INFO] [stdout] 232 | _ => panic!("Unknown section type!"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/hir.rs:232:21 [INFO] [stdout] | [INFO] [stdout] 222 | Section::Proc(proc) => { code += &stringify_proc(&proc, depth); }, [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] 223 | Section::Loop(lp) => { [INFO] [stdout] | ----------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 232 | _ => panic!("Unknown section type!"), [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/llir.rs:142:57 [INFO] [stdout] | [INFO] [stdout] 142 | ... let change_reads = self.changes.iter().filter(|(idx, c)| if let Change::Incr(_) = c { true } else { false }).map(|(idx, _)| *... [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/llir.rs:240:30 [INFO] [stdout] | [INFO] [stdout] 240 | ValInfo::Exactly(n) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/llir.rs:288:28 [INFO] [stdout] | [INFO] [stdout] 288 | Section::Input(input) => ValInfo::Exactly(0), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/llir.rs:357:21 [INFO] [stdout] | [INFO] [stdout] 357 | t => panic!("Unknown token: {:?}", t), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/llir.rs:357:21 [INFO] [stdout] | [INFO] [stdout] 326 | Token::Right => current_bs.shift.0 += 1, [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] 327 | Token::Left => current_bs.shift.0 -= 1, [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] 328 | Token::Inc => current_bs.add_cell_incr(current_bs.shift, Diff(1)), [INFO] [stdout] | ---------- matches some of the same values [INFO] [stdout] 329 | Token::Dec => current_bs.add_cell_incr(current_bs.shift, Diff(-1)), [INFO] [stdout] | ---------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 357 | t => panic!("Unknown token: {:?}", t), [INFO] [stdout] | ^ ...and 3 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/llir.rs:484:21 [INFO] [stdout] | [INFO] [stdout] 484 | _ => panic!("Unknown section type!"), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/llir.rs:484:21 [INFO] [stdout] | [INFO] [stdout] 481 | Section::Basic(basic) => stringify_basic_section(&basic, depth), [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] 482 | Section::Input(input) => stringify_input_section(&input, depth), [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] 483 | Section::Loop(luup) => stringify_loop_section(&luup, depth), [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] 484 | _ => panic!("Unknown section type!"), [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/opt.rs:46:26 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn optimise_sections(mut sections: Vec
) -> Vec
{ [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | let mut bracket_count = 0; [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bracket_count` [INFO] [stdout] --> src/main.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | let mut bracket_count = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bracket_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `None` is never constructed [INFO] [stdout] --> src/exec.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 16 | enum Done { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 19 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Done` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Idx` is never constructed [INFO] [stdout] --> src/hir.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Idx(i32); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Expr` is never used [INFO] [stdout] --> src/hir.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub enum Expr { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Op` is never used [INFO] [stdout] --> src/hir.rs:22:10 [INFO] [stdout] | [INFO] [stdout] 22 | pub enum Op { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Loop` is never constructed [INFO] [stdout] --> src/hir.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Loop { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Proc` is never constructed [INFO] [stdout] --> src/hir.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct Proc { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `get_or_create_local` are never used [INFO] [stdout] --> src/hir.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 44 | impl Proc { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 45 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | fn get_or_create_local(&mut self, idx: Idx) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Section` is never used [INFO] [stdout] --> src/hir.rs:65:10 [INFO] [stdout] | [INFO] [stdout] 65 | pub enum Section { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Program` is never constructed [INFO] [stdout] --> src/hir.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 71 | pub struct Program { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `generate_c` is never used [INFO] [stdout] --> src/hir.rs:156:12 [INFO] [stdout] | [INFO] [stdout] 155 | impl Program { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 156 | pub fn generate_c(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `stringify` is never used [INFO] [stdout] --> src/hir.rs:158:16 [INFO] [stdout] | [INFO] [stdout] 157 | impl Expr { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 158 | fn stringify(&self, proc: Option<&Proc>) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Idx` is never constructed [INFO] [stdout] --> src/llir.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Idx(i32); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Diff` is never constructed [INFO] [stdout] --> src/llir.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Diff(i32); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ValInfo` is never used [INFO] [stdout] --> src/llir.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum ValInfo { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CellAccessInfo` is never used [INFO] [stdout] --> src/llir.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum CellAccessInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `union` and `intersection` are never used [INFO] [stdout] --> src/llir.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 47 | impl CellAccessInfo { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn union(&self, rel_shift: Idx, other: &CellAccessInfo) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn intersection(&self, rel_shift: Idx, other: &CellAccessInfo) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Change` is never used [INFO] [stdout] --> src/llir.rs:79:10 [INFO] [stdout] | [INFO] [stdout] 79 | pub enum Change { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Output` is never used [INFO] [stdout] --> src/llir.rs:87:10 [INFO] [stdout] | [INFO] [stdout] 87 | pub enum Output { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BasicSection` is never constructed [INFO] [stdout] --> src/llir.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 97 | pub struct BasicSection { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_cell_incr`, `add_cell_output`, `has_no_effect`, and `get_cell_reads` are never used [INFO] [stdout] --> src/llir.rs:104:8 [INFO] [stdout] | [INFO] [stdout] 103 | impl BasicSection { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 104 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | fn add_cell_incr(&mut self, idx: Idx, diff: Diff) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn add_cell_output(&mut self, idx: Idx) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn has_no_effect(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn get_cell_reads(&self) -> CellAccessInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InputSection` is never constructed [INFO] [stdout] --> src/llir.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 149 | pub struct InputSection { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_cell_input`, `has_no_effect`, and `get_cell_reads` are never used [INFO] [stdout] --> src/llir.rs:154:8 [INFO] [stdout] | [INFO] [stdout] 153 | impl InputSection { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 154 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | fn add_cell_input(&mut self, idx: Idx) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn has_no_effect(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn get_cell_reads(&self) -> CellAccessInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Predicate` is never used [INFO] [stdout] --> src/llir.rs:177:10 [INFO] [stdout] | [INFO] [stdout] 177 | pub enum Predicate { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LoopSection` is never constructed [INFO] [stdout] --> src/llir.rs:186:12 [INFO] [stdout] | [INFO] [stdout] 186 | pub struct LoopSection { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_section`, `has_no_effect`, and `get_cell_reads` are never used [INFO] [stdout] --> src/llir.rs:193:8 [INFO] [stdout] | [INFO] [stdout] 192 | impl LoopSection { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 193 | fn new(predicate: Predicate) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | fn add_section(&mut self, section: Section) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 206 | pub fn has_no_effect(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub fn get_cell_reads(&self) -> CellAccessInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Section` is never used [INFO] [stdout] --> src/llir.rs:262:10 [INFO] [stdout] | [INFO] [stdout] 262 | pub enum Section { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_shift`, `has_no_effect`, and `get_cell_reads` are never used [INFO] [stdout] --> src/llir.rs:285:12 [INFO] [stdout] | [INFO] [stdout] 280 | impl Section { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 285 | pub fn get_shift(&self) -> ValInfo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | pub fn has_no_effect(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 303 | pub fn get_cell_reads(&self) -> CellAccessInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Program` is never constructed [INFO] [stdout] --> src/llir.rs:313:12 [INFO] [stdout] | [INFO] [stdout] 313 | pub struct Program { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `generate_c` is never used [INFO] [stdout] --> src/llir.rs:371:12 [INFO] [stdout] | [INFO] [stdout] 370 | impl Program { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 371 | pub fn generate_c(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `optimise_calc_shifts` is never used [INFO] [stdout] --> src/opt.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn optimise_calc_shifts(section: &mut Section) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `optimise_sections` is never used [INFO] [stdout] --> src/opt.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn optimise_sections(mut sections: Vec
) -> Vec
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `optimise_program` is never used [INFO] [stdout] --> src/opt.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn optimise_program(mut prog: Program) -> Program { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `optimise` is never used [INFO] [stdout] --> src/opt.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn optimise(mut prog: Program) -> Program { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/hir.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn generate_c(&self) -> String { [INFO] [stdout] | ---------------------------------- move the `impl` block outside of this method `generate_c` [INFO] [stdout] 157 | impl Expr { [INFO] [stdout] | ^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | `Expr` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.92s [INFO] running `Command { std: "docker" "inspect" "81e339a68bfd21b3360720eb16a32524c08fcd4a2864586b4bf711a0af449f36", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "81e339a68bfd21b3360720eb16a32524c08fcd4a2864586b4bf711a0af449f36", kill_on_drop: false }` [INFO] [stdout] 81e339a68bfd21b3360720eb16a32524c08fcd4a2864586b4bf711a0af449f36 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] d61254857b5ac8a768dda14d5a039c47e1dbe46900bc6801408ca06aa778daae [INFO] running `Command { std: "docker" "start" "-a" "d61254857b5ac8a768dda14d5a039c47e1dbe46900bc6801408ca06aa778daae", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `super::Error` [INFO] [stderr] --> src/exec.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use super::Error; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/hir.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `iter::FromIterator` [INFO] [stderr] --> src/llir.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | iter::FromIterator, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/llir.rs:242:20 [INFO] [stderr] | [INFO] [stderr] 242 | if (if let CellAccessInfo::Exactly(cells) = &cell_reads { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 246 | }) { [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] 242 ~ if if let CellAccessInfo::Exactly(cells) = &cell_reads { [INFO] [stderr] 243 | cells.len() == 0 [INFO] [stderr] 244 | } else { [INFO] [stderr] 245 | false [INFO] [stderr] 246 ~ } { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `CellAccessInfo` [INFO] [stderr] --> src/opt.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | CellAccessInfo, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the feature `label_break_value` has been stable since 1.65.0 and no longer requires an attribute to enable [INFO] [stderr] --> src/main.rs:1:12 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(label_break_value)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(stable_features)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/opt.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 65 | / loop { [INFO] [stderr] 66 | | let new_prog = optimise_program(prog.clone()); [INFO] [stderr] 67 | | if prog == new_prog { [INFO] [stderr] 68 | | return prog; [INFO] [stderr] ... | [INFO] [stderr] 72 | | } [INFO] [stderr] | |_____- any code following this expression is unreachable [INFO] [stderr] 73 | prog [INFO] [stderr] | ^^^^ unreachable expression [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/ir.rs:64:60 [INFO] [stderr] | [INFO] [stderr] 64 | return Some(copymuls.into_iter().map(|(shift, (i, f))| (shift, f)).collect()); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `inst` [INFO] [stderr] --> src/ir.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | inst => { return None; }, [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/ir.rs:61:19 [INFO] [stderr] | [INFO] [stderr] 61 | if let Some(&(i, n)) = copymuls.get(&base_shift) { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n` [INFO] [stderr] --> src/ir.rs:61:22 [INFO] [stderr] | [INFO] [stderr] 61 | if let Some(&(i, n)) = copymuls.get(&base_shift) { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/ir.rs:116:14 [INFO] [stderr] | [INFO] [stderr] 116 | (c, Inst::Add(_, 0)) => {}, [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/ir.rs:117:14 [INFO] [stderr] | [INFO] [stderr] 117 | (c, Inst::CopyMul(_, _, 0)) => {}, [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/ir.rs:118:14 [INFO] [stderr] | [INFO] [stderr] 118 | (c, Inst::Nop) => {}, [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/ir.rs:119:14 [INFO] [stderr] | [INFO] [stderr] 119 | (c, Inst::Move(0)) => {}, [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ir.rs:269:9 [INFO] [stderr] | [INFO] [stderr] 269 | let mut cells = Vec::new(); [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: `val_r` [INFO] [stderr] --> src/ir.rs:224:25 [INFO] [stderr] | [INFO] [stderr] 224 | let val_r = get_cell_val(&cells, idx_r); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_val_r` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/ir.rs:289:13 [INFO] [stderr] | [INFO] [stderr] 289 | i => { ir.pop(); }, [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r` [INFO] [stderr] --> src/comp.rs:16:27 [INFO] [stderr] | [INFO] [stderr] 16 | Inst::Add(r, 0) => {}, [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hir.rs:78:17 [INFO] [stderr] | [INFO] [stderr] 78 | let mut local_id_count = 0; [INFO] [stderr] | ----^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `local_id_count` [INFO] [stderr] --> src/hir.rs:78:17 [INFO] [stderr] | [INFO] [stderr] 78 | let mut local_id_count = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_id_count` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hir.rs:239:13 [INFO] [stderr] | [INFO] [stderr] 239 | let mut code = String::new(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `code` [INFO] [stderr] --> src/hir.rs:239:13 [INFO] [stderr] | [INFO] [stderr] 239 | let mut code = String::new(); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_code` [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/hir.rs:201:21 [INFO] [stderr] | [INFO] [stderr] 201 | o => panic!("Unknown operation: {:?}", o), [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/hir.rs:201:21 [INFO] [stderr] | [INFO] [stderr] 189 | Op::MovePtr(val) => { [INFO] [stderr] | ---------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 193 | Op::SetLocal { id, val } => { [INFO] [stderr] | ------------------------ matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 197 | Op::Output(val) => { [INFO] [stderr] | --------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 201 | o => panic!("Unknown operation: {:?}", o), [INFO] [stderr] | ^ collectively making this unreachable [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/hir.rs:232:21 [INFO] [stderr] | [INFO] [stderr] 232 | _ => panic!("Unknown section type!"), [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/hir.rs:232:21 [INFO] [stderr] | [INFO] [stderr] 222 | Section::Proc(proc) => { code += &stringify_proc(&proc, depth); }, [INFO] [stderr] | ------------------- matches some of the same values [INFO] [stderr] 223 | Section::Loop(lp) => { [INFO] [stderr] | ----------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 232 | _ => panic!("Unknown section type!"), [INFO] [stderr] | ^ collectively making this unreachable [INFO] [stderr] [INFO] [stderr] warning: unused variable: `idx` [INFO] [stderr] --> src/llir.rs:142:57 [INFO] [stderr] | [INFO] [stderr] 142 | ... let change_reads = self.changes.iter().filter(|(idx, c)| if let Change::Incr(_) = c { true } else { false }).map(|(idx, _)| *... [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n` [INFO] [stderr] --> src/llir.rs:240:30 [INFO] [stderr] | [INFO] [stderr] 240 | ValInfo::Exactly(n) => { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `input` [INFO] [stderr] --> src/llir.rs:288:28 [INFO] [stderr] | [INFO] [stderr] 288 | Section::Input(input) => ValInfo::Exactly(0), [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/llir.rs:357:21 [INFO] [stderr] | [INFO] [stderr] 357 | t => panic!("Unknown token: {:?}", t), [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/llir.rs:357:21 [INFO] [stderr] | [INFO] [stderr] 326 | Token::Right => current_bs.shift.0 += 1, [INFO] [stderr] | ------------ matches some of the same values [INFO] [stderr] 327 | Token::Left => current_bs.shift.0 -= 1, [INFO] [stderr] | ----------- matches some of the same values [INFO] [stderr] 328 | Token::Inc => current_bs.add_cell_incr(current_bs.shift, Diff(1)), [INFO] [stderr] | ---------- matches some of the same values [INFO] [stderr] 329 | Token::Dec => current_bs.add_cell_incr(current_bs.shift, Diff(-1)), [INFO] [stderr] | ---------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 357 | t => panic!("Unknown token: {:?}", t), [INFO] [stderr] | ^ ...and 3 other patterns collectively make this unreachable [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/llir.rs:484:21 [INFO] [stderr] | [INFO] [stderr] 484 | _ => panic!("Unknown section type!"), [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/llir.rs:484:21 [INFO] [stderr] | [INFO] [stderr] 481 | Section::Basic(basic) => stringify_basic_section(&basic, depth), [INFO] [stderr] | --------------------- matches some of the same values [INFO] [stderr] 482 | Section::Input(input) => stringify_input_section(&input, depth), [INFO] [stderr] | --------------------- matches some of the same values [INFO] [stderr] 483 | Section::Loop(luup) => stringify_loop_section(&luup, depth), [INFO] [stderr] | ------------------- matches some of the same values [INFO] [stderr] 484 | _ => panic!("Unknown section type!"), [INFO] [stderr] | ^ collectively making this unreachable [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/opt.rs:46:26 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn optimise_sections(mut sections: Vec
) -> Vec
{ [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | let mut bracket_count = 0; [INFO] [stderr] | ----^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bracket_count` [INFO] [stderr] --> src/main.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | let mut bracket_count = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bracket_count` [INFO] [stderr] [INFO] [stderr] warning: variant `None` is never constructed [INFO] [stderr] --> src/exec.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 16 | enum Done { [INFO] [stderr] | ---- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 19 | None, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Done` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: struct `Idx` is never constructed [INFO] [stderr] --> src/hir.rs:8:12 [INFO] [stderr] | [INFO] [stderr] 8 | pub struct Idx(i32); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Expr` is never used [INFO] [stderr] --> src/hir.rs:11:10 [INFO] [stderr] | [INFO] [stderr] 11 | pub enum Expr { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Op` is never used [INFO] [stderr] --> src/hir.rs:22:10 [INFO] [stderr] | [INFO] [stderr] 22 | pub enum Op { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Loop` is never constructed [INFO] [stderr] --> src/hir.rs:32:12 [INFO] [stderr] | [INFO] [stderr] 32 | pub struct Loop { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Proc` is never constructed [INFO] [stderr] --> src/hir.rs:38:12 [INFO] [stderr] | [INFO] [stderr] 38 | pub struct Proc { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `get_or_create_local` are never used [INFO] [stderr] --> src/hir.rs:45:8 [INFO] [stderr] | [INFO] [stderr] 44 | impl Proc { [INFO] [stderr] | --------- associated items in this implementation [INFO] [stderr] 45 | fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 53 | fn get_or_create_local(&mut self, idx: Idx) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Section` is never used [INFO] [stderr] --> src/hir.rs:65:10 [INFO] [stderr] | [INFO] [stderr] 65 | pub enum Section { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Program` is never constructed [INFO] [stderr] --> src/hir.rs:71:12 [INFO] [stderr] | [INFO] [stderr] 71 | pub struct Program { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `generate_c` is never used [INFO] [stderr] --> src/hir.rs:156:12 [INFO] [stderr] | [INFO] [stderr] 155 | impl Program { [INFO] [stderr] | ------------ method in this implementation [INFO] [stderr] 156 | pub fn generate_c(&self) -> String { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `stringify` is never used [INFO] [stderr] --> src/hir.rs:158:16 [INFO] [stderr] | [INFO] [stderr] 157 | impl Expr { [INFO] [stderr] | --------- method in this implementation [INFO] [stderr] 158 | fn stringify(&self, proc: Option<&Proc>) -> String { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Idx` is never constructed [INFO] [stderr] --> src/llir.rs:10:12 [INFO] [stderr] | [INFO] [stderr] 10 | pub struct Idx(i32); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Diff` is never constructed [INFO] [stderr] --> src/llir.rs:12:12 [INFO] [stderr] | [INFO] [stderr] 12 | pub struct Diff(i32); [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `ValInfo` is never used [INFO] [stderr] --> src/llir.rs:17:10 [INFO] [stderr] | [INFO] [stderr] 17 | pub enum ValInfo { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `CellAccessInfo` is never used [INFO] [stderr] --> src/llir.rs:30:10 [INFO] [stderr] | [INFO] [stderr] 30 | pub enum CellAccessInfo { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `union` and `intersection` are never used [INFO] [stderr] --> src/llir.rs:50:12 [INFO] [stderr] | [INFO] [stderr] 47 | impl CellAccessInfo { [INFO] [stderr] | ------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 50 | pub fn union(&self, rel_shift: Idx, other: &CellAccessInfo) -> Self { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 63 | pub fn intersection(&self, rel_shift: Idx, other: &CellAccessInfo) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Change` is never used [INFO] [stderr] --> src/llir.rs:79:10 [INFO] [stderr] | [INFO] [stderr] 79 | pub enum Change { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Output` is never used [INFO] [stderr] --> src/llir.rs:87:10 [INFO] [stderr] | [INFO] [stderr] 87 | pub enum Output { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `BasicSection` is never constructed [INFO] [stderr] --> src/llir.rs:97:12 [INFO] [stderr] | [INFO] [stderr] 97 | pub struct BasicSection { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `add_cell_incr`, `add_cell_output`, `has_no_effect`, and `get_cell_reads` are never used [INFO] [stderr] --> src/llir.rs:104:8 [INFO] [stderr] | [INFO] [stderr] 103 | impl BasicSection { [INFO] [stderr] | ----------------- associated items in this implementation [INFO] [stderr] 104 | fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 113 | fn add_cell_incr(&mut self, idx: Idx, diff: Diff) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 125 | fn add_cell_output(&mut self, idx: Idx) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 134 | pub fn has_no_effect(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 139 | pub fn get_cell_reads(&self) -> CellAccessInfo { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `InputSection` is never constructed [INFO] [stderr] --> src/llir.rs:149:12 [INFO] [stderr] | [INFO] [stderr] 149 | pub struct InputSection { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `add_cell_input`, `has_no_effect`, and `get_cell_reads` are never used [INFO] [stderr] --> src/llir.rs:154:8 [INFO] [stderr] | [INFO] [stderr] 153 | impl InputSection { [INFO] [stderr] | ----------------- associated items in this implementation [INFO] [stderr] 154 | fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 158 | fn add_cell_input(&mut self, idx: Idx) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 163 | pub fn has_no_effect(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 168 | pub fn get_cell_reads(&self) -> CellAccessInfo { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Predicate` is never used [INFO] [stderr] --> src/llir.rs:177:10 [INFO] [stderr] | [INFO] [stderr] 177 | pub enum Predicate { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `LoopSection` is never constructed [INFO] [stderr] --> src/llir.rs:186:12 [INFO] [stderr] | [INFO] [stderr] 186 | pub struct LoopSection { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `add_section`, `has_no_effect`, and `get_cell_reads` are never used [INFO] [stderr] --> src/llir.rs:193:8 [INFO] [stderr] | [INFO] [stderr] 192 | impl LoopSection { [INFO] [stderr] | ---------------- associated items in this implementation [INFO] [stderr] 193 | fn new(predicate: Predicate) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 201 | fn add_section(&mut self, section: Section) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 206 | pub fn has_no_effect(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 219 | pub fn get_cell_reads(&self) -> CellAccessInfo { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `Section` is never used [INFO] [stderr] --> src/llir.rs:262:10 [INFO] [stderr] | [INFO] [stderr] 262 | pub enum Section { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `get_shift`, `has_no_effect`, and `get_cell_reads` are never used [INFO] [stderr] --> src/llir.rs:285:12 [INFO] [stderr] | [INFO] [stderr] 280 | impl Section { [INFO] [stderr] | ------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 285 | pub fn get_shift(&self) -> ValInfo { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 294 | pub fn has_no_effect(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 303 | pub fn get_cell_reads(&self) -> CellAccessInfo { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Program` is never constructed [INFO] [stderr] --> src/llir.rs:313:12 [INFO] [stderr] | [INFO] [stderr] 313 | pub struct Program { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `generate_c` is never used [INFO] [stderr] --> src/llir.rs:371:12 [INFO] [stderr] | [INFO] [stderr] 370 | impl Program { [INFO] [stderr] | ------------ method in this implementation [INFO] [stderr] 371 | pub fn generate_c(&self) -> Result { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `optimise_calc_shifts` is never used [INFO] [stderr] --> src/opt.rs:15:8 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn optimise_calc_shifts(section: &mut Section) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `optimise_sections` is never used [INFO] [stderr] --> src/opt.rs:46:8 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn optimise_sections(mut sections: Vec
) -> Vec
{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `optimise_program` is never used [INFO] [stderr] --> src/opt.rs:59:8 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn optimise_program(mut prog: Program) -> Program { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `optimise` is never used [INFO] [stderr] --> src/opt.rs:64:8 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn optimise(mut prog: Program) -> Program { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> src/hir.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 156 | pub fn generate_c(&self) -> String { [INFO] [stderr] | ---------------------------------- move the `impl` block outside of this method `generate_c` [INFO] [stderr] 157 | impl Expr { [INFO] [stderr] | ^^^^^---- [INFO] [stderr] | | [INFO] [stderr] | `Expr` is not local [INFO] [stderr] | [INFO] [stderr] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stderr] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `funkicrab` (bin "funkicrab" test) generated 67 warnings (run `cargo fix --bin "funkicrab" -p funkicrab --tests` to apply 27 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/funkicrab-a2728c7ef7155c06) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "d61254857b5ac8a768dda14d5a039c47e1dbe46900bc6801408ca06aa778daae", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d61254857b5ac8a768dda14d5a039c47e1dbe46900bc6801408ca06aa778daae", kill_on_drop: false }` [INFO] [stdout] d61254857b5ac8a768dda14d5a039c47e1dbe46900bc6801408ca06aa778daae