[INFO] fetching crate sparse21 0.2.1...
[INFO] building sparse21-0.2.1 against master#ad85bc524b1ad696e42061ad8338d382dffbdbe5 for pr-146237-1
[INFO] extracting crate sparse21 0.2.1 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate sparse21 0.2.1
[INFO] finished tweaking crates.io crate sparse21 0.2.1
[INFO] tweaked toml for crates.io crate sparse21 0.2.1 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate sparse21 0.2.1 on toolchain ad85bc524b1ad696e42061ad8338d382dffbdbe5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate sparse21 0.2.1 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" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded glob v0.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0910e272a3b2ccfada11af28fed5863820468391cf8c9de562e0fc7de5bfd5e9
[INFO] running `Command { std: "docker" "start" "-a" "0910e272a3b2ccfada11af28fed5863820468391cf8c9de562e0fc7de5bfd5e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0910e272a3b2ccfada11af28fed5863820468391cf8c9de562e0fc7de5bfd5e9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0910e272a3b2ccfada11af28fed5863820468391cf8c9de562e0fc7de5bfd5e9", kill_on_drop: false }`
[INFO] [stdout] 0910e272a3b2ccfada11af28fed5863820468391cf8c9de562e0fc7de5bfd5e9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6d37cebce576c0cfa5f30aebf791a34bb3fdc8074e627dd4e26069deafe9203c
[INFO] running `Command { std: "docker" "start" "-a" "6d37cebce576c0cfa5f30aebf791a34bb3fdc8074e627dd4e26069deafe9203c", kill_on_drop: false }`
[INFO] [stderr]    Compiling glob v0.3.0
[INFO] [stderr]    Compiling sparse21 v0.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:900:32
[INFO] [stdout]     |
[INFO] [stdout] 900 |     fn cause(&self) -> Option<&Error> {
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 900 |     fn cause(&self) -> Option<&dyn Error> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `TIES_MULT`
[INFO] [stdout]    --> src/lib.rs:669:13
[INFO] [stdout]     |
[INFO] [stdout] 669 |         let TIES_MULT = 5;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_TIES_MULT`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `num_ties` is assigned to, but never used
[INFO] [stdout]    --> src/lib.rs:674:17
[INFO] [stdout]     |
[INFO] [stdout] 674 |         let mut num_ties = 0;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_num_ties` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/lib.rs:676:13
[INFO] [stdout]     |
[INFO] [stdout] 676 |         for k in n..self.axes[COLS].hdrs.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]    --> src/lib.rs:690:17
[INFO] [stdout]     |
[INFO] [stdout] 690 |             let threshold = REL_THRESHOLD * self[max_in_col].val.abs() + ABS_THRESHOLD;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `linesize` is never read
[INFO] [stdout]    --> src/lib.rs:944:17
[INFO] [stdout]     |
[INFO] [stdout] 944 |         let mut linesize = f.read_line(&mut buffer)?;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `title`
[INFO] [stdout]    --> src/lib.rs:947:13
[INFO] [stdout]     |
[INFO] [stdout] 947 |         let title = buffer.trim().to_string();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_title`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:941:13
[INFO] [stdout]     |
[INFO] [stdout] 941 |         let mut f = File::open(filename).unwrap();
[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: field `orig` is never read
[INFO] [stdout]   --> src/lib.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct Element {
[INFO] [stdout]    |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 98 |     orig: (usize, usize, f64),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Element` 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: field `ax` is never read
[INFO] [stdout]    --> src/lib.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 175 | struct AxisData {
[INFO] [stdout]     |        -------- field in this struct
[INFO] [stdout] 176 |     ax: Axis,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `swap_rows`, `swap_cols`, and `size` are never used
[INFO] [stdout]    --> src/lib.rs:861:8
[INFO] [stdout]     |
[INFO] [stdout] 229 | impl Matrix {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 861 |     fn swap_rows(&mut self, x: usize, y: usize) { self.swap(ROWS, x, y) }
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 862 |     fn swap_cols(&mut self, x: usize, y: usize) { self.swap(COLS, x, y) }
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 865 |     fn size(&self) -> (usize, usize) { (self.num_rows(), self.num_cols()) }
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title` and `size` are never read
[INFO] [stdout]    --> src/lib.rs:913:5
[INFO] [stdout]     |
[INFO] [stdout] 910 | pub struct System {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 913 |     title: Option<String>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 914 |     size: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lt` and `ge` are never used
[INFO] [stdout]     --> src/lib.rs:1022:8
[INFO] [stdout]      |
[INFO] [stdout] 1020 | impl<T: PartialOrd> Assert<T> {
[INFO] [stdout]      | ----------------------------- methods in this implementation
[INFO] [stdout] 1021 |     fn gt(&self, other: T) { if self.val <= other { self.raise(); } }
[INFO] [stdout] 1022 |     fn lt(&self, other: T) { if self.val >= other { self.raise(); } }
[INFO] [stdout]      |        ^^
[INFO] [stdout] 1023 |     fn ge(&self, other: T) { if self.val < other { self.raise(); } }
[INFO] [stdout]      |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `REL_THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:625:13
[INFO] [stdout]     |
[INFO] [stdout] 625 |         let REL_THRESHOLD = 1e-3;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `rel_threshold`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ABS_THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:626:13
[INFO] [stdout]     |
[INFO] [stdout] 626 |         let ABS_THRESHOLD = 0.0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `abs_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TIES_MULT` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:627:13
[INFO] [stdout]     |
[INFO] [stdout] 627 |         let TIES_MULT = 5;
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `ties_mult`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `REL_THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:667:13
[INFO] [stdout]     |
[INFO] [stdout] 667 |         let REL_THRESHOLD = 1e-3;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `rel_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ABS_THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:668:13
[INFO] [stdout]     |
[INFO] [stdout] 668 |         let ABS_THRESHOLD = 0.0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `abs_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TIES_MULT` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:669:13
[INFO] [stdout]     |
[INFO] [stdout] 669 |         let TIES_MULT = 5;
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `ties_mult`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/bin/sparse21.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[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::path::PathBuf`
[INFO] [stdout]  --> src/bin/sparse21.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.11s
[INFO] running `Command { std: "docker" "inspect" "6d37cebce576c0cfa5f30aebf791a34bb3fdc8074e627dd4e26069deafe9203c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d37cebce576c0cfa5f30aebf791a34bb3fdc8074e627dd4e26069deafe9203c", kill_on_drop: false }`
[INFO] [stdout] 6d37cebce576c0cfa5f30aebf791a34bb3fdc8074e627dd4e26069deafe9203c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d9c51e87f7de4737b248efa3781b5a04f76eaf55e41e62064f78de6c7ad44e51
[INFO] running `Command { std: "docker" "start" "-a" "d9c51e87f7de4737b248efa3781b5a04f76eaf55e41e62064f78de6c7ad44e51", kill_on_drop: false }`
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:900:32
[INFO] [stdout]     |
[INFO] [stdout] 900 |     fn cause(&self) -> Option<&Error> {
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 900 |     fn cause(&self) -> Option<&dyn Error> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `TIES_MULT`
[INFO] [stdout]    --> src/lib.rs:669:13
[INFO] [stdout]     |
[INFO] [stdout] 669 |         let TIES_MULT = 5;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_TIES_MULT`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `num_ties` is assigned to, but never used
[INFO] [stdout]    --> src/lib.rs:674:17
[INFO] [stdout]     |
[INFO] [stdout] 674 |         let mut num_ties = 0;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_num_ties` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/lib.rs:676:13
[INFO] [stdout]     |
[INFO] [stdout] 676 |         for k in n..self.axes[COLS].hdrs.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]    --> src/lib.rs:690:17
[INFO] [stdout]     |
[INFO] [stdout] 690 |             let threshold = REL_THRESHOLD * self[max_in_col].val.abs() + ABS_THRESHOLD;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `linesize` is never read
[INFO] [stdout]    --> src/lib.rs:944:17
[INFO] [stdout]     |
[INFO] [stdout] 944 |         let mut linesize = f.read_line(&mut buffer)?;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `title`
[INFO] [stdout]    --> src/lib.rs:947:13
[INFO] [stdout]     |
[INFO] [stdout] 947 |         let title = buffer.trim().to_string();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_title`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:941:13
[INFO] [stdout]     |
[INFO] [stdout] 941 |         let mut f = File::open(filename).unwrap();
[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: field `orig` is never read
[INFO] [stdout]   --> src/lib.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct Element {
[INFO] [stdout]    |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 98 |     orig: (usize, usize, f64),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Element` 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: field `ax` is never read
[INFO] [stdout]    --> src/lib.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 175 | struct AxisData {
[INFO] [stdout]     |        -------- field in this struct
[INFO] [stdout] 176 |     ax: Axis,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `swap_rows`, `swap_cols`, and `size` are never used
[INFO] [stdout]    --> src/lib.rs:861:8
[INFO] [stdout]     |
[INFO] [stdout] 229 | impl Matrix {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 861 |     fn swap_rows(&mut self, x: usize, y: usize) { self.swap(ROWS, x, y) }
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 862 |     fn swap_cols(&mut self, x: usize, y: usize) { self.swap(COLS, x, y) }
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 865 |     fn size(&self) -> (usize, usize) { (self.num_rows(), self.num_cols()) }
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title` and `size` are never read
[INFO] [stdout]    --> src/lib.rs:913:5
[INFO] [stdout]     |
[INFO] [stdout] 910 | pub struct System {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 913 |     title: Option<String>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 914 |     size: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lt` and `ge` are never used
[INFO] [stdout]     --> src/lib.rs:1022:8
[INFO] [stdout]      |
[INFO] [stdout] 1020 | impl<T: PartialOrd> Assert<T> {
[INFO] [stdout]      | ----------------------------- methods in this implementation
[INFO] [stdout] 1021 |     fn gt(&self, other: T) { if self.val <= other { self.raise(); } }
[INFO] [stdout] 1022 |     fn lt(&self, other: T) { if self.val >= other { self.raise(); } }
[INFO] [stdout]      |        ^^
[INFO] [stdout] 1023 |     fn ge(&self, other: T) { if self.val < other { self.raise(); } }
[INFO] [stdout]      |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `REL_THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:625:13
[INFO] [stdout]     |
[INFO] [stdout] 625 |         let REL_THRESHOLD = 1e-3;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `rel_threshold`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ABS_THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:626:13
[INFO] [stdout]     |
[INFO] [stdout] 626 |         let ABS_THRESHOLD = 0.0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `abs_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TIES_MULT` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:627:13
[INFO] [stdout]     |
[INFO] [stdout] 627 |         let TIES_MULT = 5;
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `ties_mult`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `REL_THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:667:13
[INFO] [stdout]     |
[INFO] [stdout] 667 |         let REL_THRESHOLD = 1e-3;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `rel_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling sparse21 v0.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable `ABS_THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:668:13
[INFO] [stdout]     |
[INFO] [stdout] 668 |         let ABS_THRESHOLD = 0.0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `abs_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TIES_MULT` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:669:13
[INFO] [stdout]     |
[INFO] [stdout] 669 |         let TIES_MULT = 5;
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `ties_mult`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/bin/sparse21.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[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::path::PathBuf`
[INFO] [stdout]  --> src/bin/sparse21.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> tests/solve.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[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::path::Path`
[INFO] [stdout]  --> tests/solve.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> tests/solve.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/bin/sparse21.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[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::path::PathBuf`
[INFO] [stdout]  --> src/bin/sparse21.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:900:32
[INFO] [stdout]     |
[INFO] [stdout] 900 |     fn cause(&self) -> Option<&Error> {
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 900 |     fn cause(&self) -> Option<&dyn Error> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `TIES_MULT`
[INFO] [stdout]    --> src/lib.rs:669:13
[INFO] [stdout]     |
[INFO] [stdout] 669 |         let TIES_MULT = 5;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_TIES_MULT`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `num_ties` is assigned to, but never used
[INFO] [stdout]    --> src/lib.rs:674:17
[INFO] [stdout]     |
[INFO] [stdout] 674 |         let mut num_ties = 0;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_num_ties` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/lib.rs:676:13
[INFO] [stdout]     |
[INFO] [stdout] 676 |         for k in n..self.axes[COLS].hdrs.len() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]    --> src/lib.rs:690:17
[INFO] [stdout]     |
[INFO] [stdout] 690 |             let threshold = REL_THRESHOLD * self[max_in_col].val.abs() + ABS_THRESHOLD;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `linesize` is never read
[INFO] [stdout]    --> src/lib.rs:944:17
[INFO] [stdout]     |
[INFO] [stdout] 944 |         let mut linesize = f.read_line(&mut buffer)?;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `title`
[INFO] [stdout]    --> src/lib.rs:947:13
[INFO] [stdout]     |
[INFO] [stdout] 947 |         let title = buffer.trim().to_string();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_title`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:941:13
[INFO] [stdout]     |
[INFO] [stdout] 941 |         let mut f = File::open(filename).unwrap();
[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: field `orig` is never read
[INFO] [stdout]   --> src/lib.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct Element {
[INFO] [stdout]    |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 98 |     orig: (usize, usize, f64),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Element` 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: field `ax` is never read
[INFO] [stdout]    --> src/lib.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 175 | struct AxisData {
[INFO] [stdout]     |        -------- field in this struct
[INFO] [stdout] 176 |     ax: Axis,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `swap_cols` is never used
[INFO] [stdout]    --> src/lib.rs:862:8
[INFO] [stdout]     |
[INFO] [stdout] 229 | impl Matrix {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 862 |     fn swap_cols(&mut self, x: usize, y: usize) { self.swap(COLS, x, y) }
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title` and `size` are never read
[INFO] [stdout]    --> src/lib.rs:913:5
[INFO] [stdout]     |
[INFO] [stdout] 910 | pub struct System {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 913 |     title: Option<String>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 914 |     size: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lt` and `ge` are never used
[INFO] [stdout]     --> src/lib.rs:1022:8
[INFO] [stdout]      |
[INFO] [stdout] 1020 | impl<T: PartialOrd> Assert<T> {
[INFO] [stdout]      | ----------------------------- methods in this implementation
[INFO] [stdout] 1021 |     fn gt(&self, other: T) { if self.val <= other { self.raise(); } }
[INFO] [stdout] 1022 |     fn lt(&self, other: T) { if self.val >= other { self.raise(); } }
[INFO] [stdout]      |        ^^
[INFO] [stdout] 1023 |     fn ge(&self, other: T) { if self.val < other { self.raise(); } }
[INFO] [stdout]      |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `REL_THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:625:13
[INFO] [stdout]     |
[INFO] [stdout] 625 |         let REL_THRESHOLD = 1e-3;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `rel_threshold`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ABS_THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:626:13
[INFO] [stdout]     |
[INFO] [stdout] 626 |         let ABS_THRESHOLD = 0.0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `abs_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TIES_MULT` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:627:13
[INFO] [stdout]     |
[INFO] [stdout] 627 |         let TIES_MULT = 5;
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `ties_mult`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `REL_THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:667:13
[INFO] [stdout]     |
[INFO] [stdout] 667 |         let REL_THRESHOLD = 1e-3;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `rel_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ABS_THRESHOLD` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:668:13
[INFO] [stdout]     |
[INFO] [stdout] 668 |         let ABS_THRESHOLD = 0.0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `abs_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `TIES_MULT` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:669:13
[INFO] [stdout]     |
[INFO] [stdout] 669 |         let TIES_MULT = 5;
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `ties_mult`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/lib.rs:1369:9
[INFO] [stdout]      |
[INFO] [stdout] 1369 |         m.lu_factorize();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1369 |         let _ = m.lu_factorize();
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.85s
[INFO] running `Command { std: "docker" "inspect" "d9c51e87f7de4737b248efa3781b5a04f76eaf55e41e62064f78de6c7ad44e51", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d9c51e87f7de4737b248efa3781b5a04f76eaf55e41e62064f78de6c7ad44e51", kill_on_drop: false }`
[INFO] [stdout] d9c51e87f7de4737b248efa3781b5a04f76eaf55e41e62064f78de6c7ad44e51
