[INFO] cloning repository https://github.com/stela2502/rust_data_table
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/stela2502/rust_data_table" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstela2502%2Frust_data_table", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstela2502%2Frust_data_table'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a978460f4c7c5eca49ccf17584a1a3175a436509
[INFO] testing stela2502/rust_data_table against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstela2502%2Frust_data_table" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/stela2502/rust_data_table
[INFO] finished tweaking git repo https://github.com/stela2502/rust_data_table
[INFO] tweaked toml for git repo https://github.com/stela2502/rust_data_table written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/stela2502/rust_data_table 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/stela2502/rust_data_table 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] warning: unused manifest key: target.x86_64-pc-windows-gnu.linker
[INFO] [stderr] warning: unused manifest key: target.x86_64-unknown-linux-musl.linker
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ordered-float v5.1.0
[INFO] [stderr]   Downloaded clap v4.5.50
[INFO] [stderr]   Downloaded csv-core v0.1.13
[INFO] [stderr]   Downloaded matrixmultiply v0.3.10
[INFO] [stderr]   Downloaded clap_builder v4.5.50
[INFO] [stderr]   Downloaded ndarray v0.16.1
[INFO] [stderr]   Downloaded csv v1.4.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 1898ec5dc3d6d9739df61c2fbca223e6313f98d9b586cf0e536b42f72efc20cc
[INFO] running `Command { std: "docker" "start" "-a" "1898ec5dc3d6d9739df61c2fbca223e6313f98d9b586cf0e536b42f72efc20cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1898ec5dc3d6d9739df61c2fbca223e6313f98d9b586cf0e536b42f72efc20cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1898ec5dc3d6d9739df61c2fbca223e6313f98d9b586cf0e536b42f72efc20cc", kill_on_drop: false }`
[INFO] [stdout] 1898ec5dc3d6d9739df61c2fbca223e6313f98d9b586cf0e536b42f72efc20cc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] c57fc149ad4842739457ea2ce1c49de7992934864aa19aabf2fc8659194bcb1c
[INFO] running `Command { std: "docker" "start" "-a" "c57fc149ad4842739457ea2ce1c49de7992934864aa19aabf2fc8659194bcb1c", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: target.x86_64-pc-windows-gnu.linker
[INFO] [stderr] warning: unused manifest key: target.x86_64-unknown-linux-musl.linker
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling unicode-ident v1.0.20
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling anstyle-query v1.1.4
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling clap_lex v0.7.6
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling clap_builder v4.5.50
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling syn v2.0.107
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling ordered-float v5.1.0
[INFO] [stderr]    Compiling ndarray v0.16.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling clap v4.5.50
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling rust_data_table v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/survival_data.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Serialize, Deserialize};
[INFO] [stdout]   |             ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/survival_data.rs:987:9
[INFO] [stdout]     |
[INFO] [stdout] 987 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File` and `self`
[INFO] [stdout]    --> src/survival_data.rs:988:19
[INFO] [stdout]     |
[INFO] [stdout] 988 |     use std::fs::{self, File};
[INFO] [stdout]     |                   ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]    --> src/survival_data.rs:989:9
[INFO] [stdout]     |
[INFO] [stdout] 989 |     use std::io::Write;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]    --> src/survival_data.rs:990:9
[INFO] [stdout]     |
[INFO] [stdout] 990 |     use std::collections::HashSet;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::tempdir`
[INFO] [stdout]    --> src/survival_data.rs:991:9
[INFO] [stdout]     |
[INFO] [stdout] 991 |     use tempfile::tempdir;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/factor.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]  --> src/factor.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde_json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/survival_data.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rand::thread_rng;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/survival_data.rs:453:23
[INFO] [stdout]     |
[INFO] [stdout] 453 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/survival_data.rs:492:9
[INFO] [stdout]     |
[INFO] [stdout] 491 |         return ;
[INFO] [stdout]     |         ------ any code following this expression is unreachable
[INFO] [stdout] 492 |         println!("Shape: {} rows x {} columns", self.numeric_data.nrows(), self.numeric_data.ncols());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/survival_data.rs:726:9
[INFO] [stdout]     |
[INFO] [stdout] 725 |         return 0;
[INFO] [stdout]     |         -------- any code following this expression is unreachable
[INFO] [stdout] 726 |         let mut keep_cols = Vec::new();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header_name`
[INFO] [stdout]   --> src/survival_data.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 let header_name = if s.trim().is_empty() {
[INFO] [stdout]    |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_header_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/survival_data.rs:496:13
[INFO] [stdout]     |
[INFO] [stdout] 496 |         for i in 0..self.numeric_data.nrows().min(5) {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/survival_data.rs:501:13
[INFO] [stdout]     |
[INFO] [stdout] 501 |         for j in 0..self.numeric_data.ncols().min(10) {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/survival_data.rs:502:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |             let col = self.numeric_data.column(j);
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_total`
[INFO] [stdout]    --> src/survival_data.rs:503:17
[INFO] [stdout]     |
[INFO] [stdout] 503 |             let n_total = col.len();
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_total`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_na`
[INFO] [stdout]    --> src/survival_data.rs:504:17
[INFO] [stdout]     |
[INFO] [stdout] 504 |             let n_na = col.iter().filter(|v| v.is_nan()).count();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_n_na`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean`
[INFO] [stdout]    --> src/survival_data.rs:505:17
[INFO] [stdout]     |
[INFO] [stdout] 505 |             let mean = col.iter().filter(|v| !v.is_nan()).sum::<f64>() / (n_total - n_na) as f64;
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_mean`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]    --> src/survival_data.rs:724:38
[INFO] [stdout]     |
[INFO] [stdout] 724 |     pub fn filter_low_var(&mut self, threshold: f64) -> usize{
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keep_cols`
[INFO] [stdout]    --> src/survival_data.rs:726:13
[INFO] [stdout]     |
[INFO] [stdout] 726 |         let mut keep_cols = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keep_cols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filtered`
[INFO] [stdout]    --> src/survival_data.rs:727:13
[INFO] [stdout]     |
[INFO] [stdout] 727 |         let mut filtered = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/survival_data.rs:728:13
[INFO] [stdout]     |
[INFO] [stdout] 728 |         for j in 0..self.numeric_data.ncols() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/survival_data.rs:729:17
[INFO] [stdout]     |
[INFO] [stdout] 729 |             let col = self.numeric_data.column(j);
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vals`
[INFO] [stdout]    --> src/survival_data.rs:730:17
[INFO] [stdout]     |
[INFO] [stdout] 730 |             let vals: Vec<f64> = col.iter().copied().filter(|v| !v.is_nan()).collect();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_vals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean`
[INFO] [stdout]    --> src/survival_data.rs:737:17
[INFO] [stdout]     |
[INFO] [stdout] 737 |             let mean = vals.iter().sum::<f64>() / vals.len() as f64;
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_mean`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var`
[INFO] [stdout]    --> src/survival_data.rs:738:17
[INFO] [stdout]     |
[INFO] [stdout] 738 |             let var  = vals.iter().map(|v| (v - mean).powi(2)).sum::<f64>() / vals.len() as f64;
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_var`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filtered_data`
[INFO] [stdout]    --> src/survival_data.rs:749:13
[INFO] [stdout]     |
[INFO] [stdout] 749 |         let mut filtered_data = Array2::<f64>::zeros((self.numeric_data.nrows(), keep_cols.len()));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_headers`
[INFO] [stdout]    --> src/survival_data.rs:750:13
[INFO] [stdout]     |
[INFO] [stdout] 750 |         let mut new_headers = Vec::with_capacity(keep_cols.len());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_headers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_j`
[INFO] [stdout]    --> src/survival_data.rs:752:14
[INFO] [stdout]     |
[INFO] [stdout] 752 |         for (new_j, &old_j) in keep_cols.iter().enumerate() {
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_new_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_j`
[INFO] [stdout]    --> src/survival_data.rs:752:22
[INFO] [stdout]     |
[INFO] [stdout] 752 |         for (new_j, &old_j) in keep_cols.iter().enumerate() {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_old_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col_name`
[INFO] [stdout]    --> src/survival_data.rs:889:21
[INFO] [stdout]     |
[INFO] [stdout] 889 |             for (j, col_name) in self.headers.iter().enumerate() {
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header_error` and `factors_extra_columns` are never used
[INFO] [stdout]    --> src/survival_data.rs:478:8
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl SurvivalData {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 478 |     fn header_error( &self, i: usize, expanded: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 513 |     fn factors_extra_columns( &self ) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/survival_data.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |             writeln!(f,"{}",factor );
[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] 50 |             let _ = writeln!(f,"{}",factor );
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/generate_json.rs:89:17
[INFO] [stdout]    |
[INFO] [stdout] 89 |             let mut new_name = p.file_name()
[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] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.56s
[INFO] running `Command { std: "docker" "inspect" "c57fc149ad4842739457ea2ce1c49de7992934864aa19aabf2fc8659194bcb1c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c57fc149ad4842739457ea2ce1c49de7992934864aa19aabf2fc8659194bcb1c", kill_on_drop: false }`
[INFO] [stdout] c57fc149ad4842739457ea2ce1c49de7992934864aa19aabf2fc8659194bcb1c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 5f3daec7580be0aefd054126d9d216cc655b88abedb4443135ba87a8a205ff00
[INFO] running `Command { std: "docker" "start" "-a" "5f3daec7580be0aefd054126d9d216cc655b88abedb4443135ba87a8a205ff00", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: target.x86_64-pc-windows-gnu.linker
[INFO] [stderr] warning: unused manifest key: target.x86_64-unknown-linux-musl.linker
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/survival_data.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Serialize, Deserialize};
[INFO] [stdout]   |             ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/survival_data.rs:987:9
[INFO] [stdout]     |
[INFO] [stdout] 987 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File` and `self`
[INFO] [stdout]    --> src/survival_data.rs:988:19
[INFO] [stdout]     |
[INFO] [stdout] 988 |     use std::fs::{self, File};
[INFO] [stdout]     |                   ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]    --> src/survival_data.rs:989:9
[INFO] [stdout]     |
[INFO] [stdout] 989 |     use std::io::Write;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]    --> src/survival_data.rs:990:9
[INFO] [stdout]     |
[INFO] [stdout] 990 |     use std::collections::HashSet;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::tempdir`
[INFO] [stdout]    --> src/survival_data.rs:991:9
[INFO] [stdout]     |
[INFO] [stdout] 991 |     use tempfile::tempdir;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/factor.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]  --> src/factor.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde_json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/survival_data.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rand::thread_rng;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/survival_data.rs:453:23
[INFO] [stdout]     |
[INFO] [stdout] 453 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/survival_data.rs:492:9
[INFO] [stdout]     |
[INFO] [stdout] 491 |         return ;
[INFO] [stdout]     |         ------ any code following this expression is unreachable
[INFO] [stdout] 492 |         println!("Shape: {} rows x {} columns", self.numeric_data.nrows(), self.numeric_data.ncols());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/survival_data.rs:726:9
[INFO] [stdout]     |
[INFO] [stdout] 725 |         return 0;
[INFO] [stdout]     |         -------- any code following this expression is unreachable
[INFO] [stdout] 726 |         let mut keep_cols = Vec::new();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header_name`
[INFO] [stdout]   --> src/survival_data.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 let header_name = if s.trim().is_empty() {
[INFO] [stdout]    |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_header_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/survival_data.rs:496:13
[INFO] [stdout]     |
[INFO] [stdout] 496 |         for i in 0..self.numeric_data.nrows().min(5) {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/survival_data.rs:501:13
[INFO] [stdout]     |
[INFO] [stdout] 501 |         for j in 0..self.numeric_data.ncols().min(10) {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/survival_data.rs:502:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |             let col = self.numeric_data.column(j);
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_total`
[INFO] [stdout]    --> src/survival_data.rs:503:17
[INFO] [stdout]     |
[INFO] [stdout] 503 |             let n_total = col.len();
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_total`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_na`
[INFO] [stdout]    --> src/survival_data.rs:504:17
[INFO] [stdout]     |
[INFO] [stdout] 504 |             let n_na = col.iter().filter(|v| v.is_nan()).count();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_n_na`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean`
[INFO] [stdout]    --> src/survival_data.rs:505:17
[INFO] [stdout]     |
[INFO] [stdout] 505 |             let mean = col.iter().filter(|v| !v.is_nan()).sum::<f64>() / (n_total - n_na) as f64;
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_mean`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]    --> src/survival_data.rs:724:38
[INFO] [stdout]     |
[INFO] [stdout] 724 |     pub fn filter_low_var(&mut self, threshold: f64) -> usize{
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keep_cols`
[INFO] [stdout]    --> src/survival_data.rs:726:13
[INFO] [stdout]     |
[INFO] [stdout] 726 |         let mut keep_cols = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keep_cols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filtered`
[INFO] [stdout]    --> src/survival_data.rs:727:13
[INFO] [stdout]     |
[INFO] [stdout] 727 |         let mut filtered = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/survival_data.rs:728:13
[INFO] [stdout]     |
[INFO] [stdout] 728 |         for j in 0..self.numeric_data.ncols() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/survival_data.rs:729:17
[INFO] [stdout]     |
[INFO] [stdout] 729 |             let col = self.numeric_data.column(j);
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vals`
[INFO] [stdout]    --> src/survival_data.rs:730:17
[INFO] [stdout]     |
[INFO] [stdout] 730 |             let vals: Vec<f64> = col.iter().copied().filter(|v| !v.is_nan()).collect();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_vals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean`
[INFO] [stdout]    --> src/survival_data.rs:737:17
[INFO] [stdout]     |
[INFO] [stdout] 737 |             let mean = vals.iter().sum::<f64>() / vals.len() as f64;
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_mean`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var`
[INFO] [stdout]    --> src/survival_data.rs:738:17
[INFO] [stdout]     |
[INFO] [stdout] 738 |             let var  = vals.iter().map(|v| (v - mean).powi(2)).sum::<f64>() / vals.len() as f64;
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_var`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filtered_data`
[INFO] [stdout]    --> src/survival_data.rs:749:13
[INFO] [stdout]     |
[INFO] [stdout] 749 |         let mut filtered_data = Array2::<f64>::zeros((self.numeric_data.nrows(), keep_cols.len()));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_headers`
[INFO] [stdout]    --> src/survival_data.rs:750:13
[INFO] [stdout]     |
[INFO] [stdout] 750 |         let mut new_headers = Vec::with_capacity(keep_cols.len());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_headers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_j`
[INFO] [stdout]    --> src/survival_data.rs:752:14
[INFO] [stdout]     |
[INFO] [stdout] 752 |         for (new_j, &old_j) in keep_cols.iter().enumerate() {
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_new_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_j`
[INFO] [stdout]    --> src/survival_data.rs:752:22
[INFO] [stdout]     |
[INFO] [stdout] 752 |         for (new_j, &old_j) in keep_cols.iter().enumerate() {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_old_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col_name`
[INFO] [stdout]    --> src/survival_data.rs:889:21
[INFO] [stdout]     |
[INFO] [stdout] 889 |             for (j, col_name) in self.headers.iter().enumerate() {
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header_error` and `factors_extra_columns` are never used
[INFO] [stdout]    --> src/survival_data.rs:478:8
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl SurvivalData {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 478 |     fn header_error( &self, i: usize, expanded: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 513 |     fn factors_extra_columns( &self ) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/survival_data.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |             writeln!(f,"{}",factor );
[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] 50 |             let _ = writeln!(f,"{}",factor );
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rust_data_table v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/generate_json.rs:89:17
[INFO] [stdout]    |
[INFO] [stdout] 89 |             let mut new_name = p.file_name()
[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 imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/survival_data.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Serialize, Deserialize};
[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::fs`
[INFO] [stdout]    --> src/survival_data.rs:932:9
[INFO] [stdout]     |
[INFO] [stdout] 932 |     use std::fs;
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]    --> src/survival_data.rs:933:9
[INFO] [stdout]     |
[INFO] [stdout] 933 |     use std::collections::HashSet;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]    --> src/survival_data.rs:988:19
[INFO] [stdout]     |
[INFO] [stdout] 988 |     use std::fs::{self, File};
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::tempdir`
[INFO] [stdout]    --> src/survival_data.rs:991:9
[INFO] [stdout]     |
[INFO] [stdout] 991 |     use tempfile::tempdir;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/factor.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]  --> src/factor.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde_json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/survival_data.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rand::thread_rng;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/survival_data.rs:453:23
[INFO] [stdout]     |
[INFO] [stdout] 453 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/survival_data.rs:492:9
[INFO] [stdout]     |
[INFO] [stdout] 491 |         return ;
[INFO] [stdout]     |         ------ any code following this expression is unreachable
[INFO] [stdout] 492 |         println!("Shape: {} rows x {} columns", self.numeric_data.nrows(), self.numeric_data.ncols());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/survival_data.rs:726:9
[INFO] [stdout]     |
[INFO] [stdout] 725 |         return 0;
[INFO] [stdout]     |         -------- any code following this expression is unreachable
[INFO] [stdout] 726 |         let mut keep_cols = Vec::new();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header_name`
[INFO] [stdout]   --> src/survival_data.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 let header_name = if s.trim().is_empty() {
[INFO] [stdout]    |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_header_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/survival_data.rs:496:13
[INFO] [stdout]     |
[INFO] [stdout] 496 |         for i in 0..self.numeric_data.nrows().min(5) {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/survival_data.rs:501:13
[INFO] [stdout]     |
[INFO] [stdout] 501 |         for j in 0..self.numeric_data.ncols().min(10) {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/survival_data.rs:502:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |             let col = self.numeric_data.column(j);
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_total`
[INFO] [stdout]    --> src/survival_data.rs:503:17
[INFO] [stdout]     |
[INFO] [stdout] 503 |             let n_total = col.len();
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_total`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_na`
[INFO] [stdout]    --> src/survival_data.rs:504:17
[INFO] [stdout]     |
[INFO] [stdout] 504 |             let n_na = col.iter().filter(|v| v.is_nan()).count();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_n_na`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean`
[INFO] [stdout]    --> src/survival_data.rs:505:17
[INFO] [stdout]     |
[INFO] [stdout] 505 |             let mean = col.iter().filter(|v| !v.is_nan()).sum::<f64>() / (n_total - n_na) as f64;
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_mean`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]    --> src/survival_data.rs:724:38
[INFO] [stdout]     |
[INFO] [stdout] 724 |     pub fn filter_low_var(&mut self, threshold: f64) -> usize{
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keep_cols`
[INFO] [stdout]    --> src/survival_data.rs:726:13
[INFO] [stdout]     |
[INFO] [stdout] 726 |         let mut keep_cols = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keep_cols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filtered`
[INFO] [stdout]    --> src/survival_data.rs:727:13
[INFO] [stdout]     |
[INFO] [stdout] 727 |         let mut filtered = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/survival_data.rs:728:13
[INFO] [stdout]     |
[INFO] [stdout] 728 |         for j in 0..self.numeric_data.ncols() {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/survival_data.rs:729:17
[INFO] [stdout]     |
[INFO] [stdout] 729 |             let col = self.numeric_data.column(j);
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vals`
[INFO] [stdout]    --> src/survival_data.rs:730:17
[INFO] [stdout]     |
[INFO] [stdout] 730 |             let vals: Vec<f64> = col.iter().copied().filter(|v| !v.is_nan()).collect();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_vals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean`
[INFO] [stdout]    --> src/survival_data.rs:737:17
[INFO] [stdout]     |
[INFO] [stdout] 737 |             let mean = vals.iter().sum::<f64>() / vals.len() as f64;
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_mean`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var`
[INFO] [stdout]    --> src/survival_data.rs:738:17
[INFO] [stdout]     |
[INFO] [stdout] 738 |             let var  = vals.iter().map(|v| (v - mean).powi(2)).sum::<f64>() / vals.len() as f64;
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_var`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filtered_data`
[INFO] [stdout]    --> src/survival_data.rs:749:13
[INFO] [stdout]     |
[INFO] [stdout] 749 |         let mut filtered_data = Array2::<f64>::zeros((self.numeric_data.nrows(), keep_cols.len()));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_headers`
[INFO] [stdout]    --> src/survival_data.rs:750:13
[INFO] [stdout]     |
[INFO] [stdout] 750 |         let mut new_headers = Vec::with_capacity(keep_cols.len());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_headers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_j`
[INFO] [stdout]    --> src/survival_data.rs:752:14
[INFO] [stdout]     |
[INFO] [stdout] 752 |         for (new_j, &old_j) in keep_cols.iter().enumerate() {
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_new_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_j`
[INFO] [stdout]    --> src/survival_data.rs:752:22
[INFO] [stdout]     |
[INFO] [stdout] 752 |         for (new_j, &old_j) in keep_cols.iter().enumerate() {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_old_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col_name`
[INFO] [stdout]    --> src/survival_data.rs:889:21
[INFO] [stdout]     |
[INFO] [stdout] 889 |             for (j, col_name) in self.headers.iter().enumerate() {
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]     --> src/survival_data.rs:1254:13
[INFO] [stdout]      |
[INFO] [stdout] 1254 |         let f = sd.factors.get("group_000").unwrap();
[INFO] [stdout]      |             ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `header_error` and `factors_extra_columns` are never used
[INFO] [stdout]    --> src/survival_data.rs:478:8
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl SurvivalData {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 478 |     fn header_error( &self, i: usize, expanded: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 513 |     fn factors_extra_columns( &self ) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/survival_data.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |             writeln!(f,"{}",factor );
[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] 50 |             let _ = writeln!(f,"{}",factor );
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]     --> src/survival_data.rs:1033:9
[INFO] [stdout]      |
[INFO] [stdout] 1033 |         temp.save_factors(&factors_path); //default location
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1033 |         let _ = temp.save_factors(&factors_path); //default location
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/factor.rs:377:9
[INFO] [stdout]     |
[INFO] [stdout] 377 |         factor.modify_levels(&new_values, Some(&levels_to_change));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 377 |         let _ = factor.modify_levels(&new_values, Some(&levels_to_change));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/factor.rs:385:9
[INFO] [stdout]     |
[INFO] [stdout] 385 |         factor.modify_levels(&all_new_values, None);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 385 |         let _ = factor.modify_levels(&all_new_values, None);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.13s
[INFO] running `Command { std: "docker" "inspect" "5f3daec7580be0aefd054126d9d216cc655b88abedb4443135ba87a8a205ff00", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f3daec7580be0aefd054126d9d216cc655b88abedb4443135ba87a8a205ff00", kill_on_drop: false }`
[INFO] [stdout] 5f3daec7580be0aefd054126d9d216cc655b88abedb4443135ba87a8a205ff00
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] c8503bebe7f80a88c14943fc9705b3e02d992615e0800b98b0bc367c48be1d71
[INFO] running `Command { std: "docker" "start" "-a" "c8503bebe7f80a88c14943fc9705b3e02d992615e0800b98b0bc367c48be1d71", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: target.x86_64-pc-windows-gnu.linker
[INFO] [stderr] warning: unused manifest key: target.x86_64-unknown-linux-musl.linker
[INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stderr]  --> src/survival_data.rs:6:13
[INFO] [stderr]   |
[INFO] [stderr] 6 | use serde::{Serialize, Deserialize};
[INFO] [stderr]   |             ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]    --> src/survival_data.rs:987:9
[INFO] [stderr]     |
[INFO] [stderr] 987 |     use super::*;
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `File` and `self`
[INFO] [stderr]    --> src/survival_data.rs:988:19
[INFO] [stderr]     |
[INFO] [stderr] 988 |     use std::fs::{self, File};
[INFO] [stderr]     |                   ^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]    --> src/survival_data.rs:989:9
[INFO] [stderr]     |
[INFO] [stderr] 989 |     use std::io::Write;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashSet`
[INFO] [stderr]    --> src/survival_data.rs:990:9
[INFO] [stderr]     |
[INFO] [stderr] 990 |     use std::collections::HashSet;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tempfile::tempdir`
[INFO] [stderr]    --> src/survival_data.rs:991:9
[INFO] [stderr]     |
[INFO] [stderr] 991 |     use tempfile::tempdir;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `HashSet`
[INFO] [stderr]  --> src/factor.rs:1:33
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stderr]   |                                 ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serde_json`
[INFO] [stderr]  --> src/factor.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use serde_json;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]   --> src/survival_data.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | use rand::thread_rng;
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]    --> src/survival_data.rs:453:23
[INFO] [stderr]     |
[INFO] [stderr] 453 |         let mut rng = thread_rng();
[INFO] [stderr]     |                       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]    --> src/survival_data.rs:492:9
[INFO] [stderr]     |
[INFO] [stderr] 491 |         return ;
[INFO] [stderr]     |         ------ any code following this expression is unreachable
[INFO] [stderr] 492 |         println!("Shape: {} rows x {} columns", self.numeric_data.nrows(), self.numeric_data.ncols());
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr]     = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]    --> src/survival_data.rs:726:9
[INFO] [stderr]     |
[INFO] [stderr] 725 |         return 0;
[INFO] [stderr]     |         -------- any code following this expression is unreachable
[INFO] [stderr] 726 |         let mut keep_cols = Vec::new();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `header_name`
[INFO] [stderr]   --> src/survival_data.rs:93:21
[INFO] [stderr]    |
[INFO] [stderr] 93 |                 let header_name = if s.trim().is_empty() {
[INFO] [stderr]    |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_header_name`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/survival_data.rs:496:13
[INFO] [stderr]     |
[INFO] [stderr] 496 |         for i in 0..self.numeric_data.nrows().min(5) {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `j`
[INFO] [stderr]    --> src/survival_data.rs:501:13
[INFO] [stderr]     |
[INFO] [stderr] 501 |         for j in 0..self.numeric_data.ncols().min(10) {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `col`
[INFO] [stderr]    --> src/survival_data.rs:502:17
[INFO] [stderr]     |
[INFO] [stderr] 502 |             let col = self.numeric_data.column(j);
[INFO] [stderr]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n_total`
[INFO] [stderr]    --> src/survival_data.rs:503:17
[INFO] [stderr]     |
[INFO] [stderr] 503 |             let n_total = col.len();
[INFO] [stderr]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_total`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n_na`
[INFO] [stderr]    --> src/survival_data.rs:504:17
[INFO] [stderr]     |
[INFO] [stderr] 504 |             let n_na = col.iter().filter(|v| v.is_nan()).count();
[INFO] [stderr]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_n_na`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mean`
[INFO] [stderr]    --> src/survival_data.rs:505:17
[INFO] [stderr]     |
[INFO] [stderr] 505 |             let mean = col.iter().filter(|v| !v.is_nan()).sum::<f64>() / (n_total - n_na) as f64;
[INFO] [stderr]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_mean`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `threshold`
[INFO] [stderr]    --> src/survival_data.rs:724:38
[INFO] [stderr]     |
[INFO] [stderr] 724 |     pub fn filter_low_var(&mut self, threshold: f64) -> usize{
[INFO] [stderr]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `keep_cols`
[INFO] [stderr]    --> src/survival_data.rs:726:13
[INFO] [stderr]     |
[INFO] [stderr] 726 |         let mut keep_cols = Vec::new();
[INFO] [stderr]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keep_cols`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `filtered`
[INFO] [stderr]    --> src/survival_data.rs:727:13
[INFO] [stderr]     |
[INFO] [stderr] 727 |         let mut filtered = 0;
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `j`
[INFO] [stderr]    --> src/survival_data.rs:728:13
[INFO] [stderr]     |
[INFO] [stderr] 728 |         for j in 0..self.numeric_data.ncols() {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `col`
[INFO] [stderr]    --> src/survival_data.rs:729:17
[INFO] [stderr]     |
[INFO] [stderr] 729 |             let col = self.numeric_data.column(j);
[INFO] [stderr]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `vals`
[INFO] [stderr]    --> src/survival_data.rs:730:17
[INFO] [stderr]     |
[INFO] [stderr] 730 |             let vals: Vec<f64> = col.iter().copied().filter(|v| !v.is_nan()).collect();
[INFO] [stderr]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_vals`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mean`
[INFO] [stderr]    --> src/survival_data.rs:737:17
[INFO] [stderr]     |
[INFO] [stderr] 737 |             let mean = vals.iter().sum::<f64>() / vals.len() as f64;
[INFO] [stderr]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_mean`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `var`
[INFO] [stderr]    --> src/survival_data.rs:738:17
[INFO] [stderr]     |
[INFO] [stderr] 738 |             let var  = vals.iter().map(|v| (v - mean).powi(2)).sum::<f64>() / vals.len() as f64;
[INFO] [stderr]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_var`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `filtered_data`
[INFO] [stderr]    --> src/survival_data.rs:749:13
[INFO] [stderr]     |
[INFO] [stderr] 749 |         let mut filtered_data = Array2::<f64>::zeros((self.numeric_data.nrows(), keep_cols.len()));
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered_data`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_headers`
[INFO] [stderr]    --> src/survival_data.rs:750:13
[INFO] [stderr]     |
[INFO] [stderr] 750 |         let mut new_headers = Vec::with_capacity(keep_cols.len());
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_headers`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_j`
[INFO] [stderr]    --> src/survival_data.rs:752:14
[INFO] [stderr]     |
[INFO] [stderr] 752 |         for (new_j, &old_j) in keep_cols.iter().enumerate() {
[INFO] [stderr]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_new_j`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `old_j`
[INFO] [stderr]    --> src/survival_data.rs:752:22
[INFO] [stderr]     |
[INFO] [stderr] 752 |         for (new_j, &old_j) in keep_cols.iter().enumerate() {
[INFO] [stderr]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_old_j`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `col_name`
[INFO] [stderr]    --> src/survival_data.rs:889:21
[INFO] [stderr]     |
[INFO] [stderr] 889 |             for (j, col_name) in self.headers.iter().enumerate() {
[INFO] [stderr]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col_name`
[INFO] [stderr] 
[INFO] [stderr] warning: methods `header_error` and `factors_extra_columns` are never used
[INFO] [stderr]    --> src/survival_data.rs:478:8
[INFO] [stderr]     |
[INFO] [stderr]  57 | impl SurvivalData {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 478 |     fn header_error( &self, i: usize, expanded: usize) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 513 |     fn factors_extra_columns( &self ) -> usize {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/survival_data.rs:50:13
[INFO] [stderr]    |
[INFO] [stderr] 50 |             writeln!(f,"{}",factor );
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 50 |             let _ = writeln!(f,"{}",factor );
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs`
[INFO] [stderr]    --> src/survival_data.rs:932:9
[INFO] [stderr]     |
[INFO] [stderr] 932 |     use std::fs;
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashSet`
[INFO] [stderr]    --> src/survival_data.rs:933:9
[INFO] [stderr]     |
[INFO] [stderr] 933 |     use std::collections::HashSet;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `self`
[INFO] [stderr]    --> src/survival_data.rs:988:19
[INFO] [stderr]     |
[INFO] [stderr] 988 |     use std::fs::{self, File};
[INFO] [stderr]     |                   ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `f`
[INFO] [stderr]     --> src/survival_data.rs:1254:13
[INFO] [stderr]      |
[INFO] [stderr] 1254 |         let f = sd.factors.get("group_000").unwrap();
[INFO] [stderr]      |             ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/survival_data.rs:50:13
[INFO] [stderr]    |
[INFO] [stderr] 50 |             writeln!(f,"{}",factor );
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 50 |             let _ = writeln!(f,"{}",factor );
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]     --> src/survival_data.rs:1033:9
[INFO] [stderr]      |
[INFO] [stderr] 1033 |         temp.save_factors(&factors_path); //default location
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 1033 |         let _ = temp.save_factors(&factors_path); //default location
[INFO] [stderr]      |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/factor.rs:377:9
[INFO] [stderr]     |
[INFO] [stderr] 377 |         factor.modify_levels(&new_values, Some(&levels_to_change));
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 377 |         let _ = factor.modify_levels(&new_values, Some(&levels_to_change));
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/factor.rs:385:9
[INFO] [stderr]     |
[INFO] [stderr] 385 |         factor.modify_levels(&all_new_values, None);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 385 |         let _ = factor.modify_levels(&all_new_values, None);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `rust_data_table` (lib) generated 34 warnings (run `cargo fix --lib -p rust_data_table` to apply 28 suggestions)
[INFO] [stderr] warning: `rust_data_table` (lib test) generated 37 warnings (29 duplicates) (run `cargo fix --lib -p rust_data_table --tests` to apply 4 suggestions)
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/bin/generate_json.rs:89:17
[INFO] [stderr]    |
[INFO] [stderr] 89 |             let mut new_name = p.file_name()
[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: `rust_data_table` (bin "generate_json" test) generated 1 warning (run `cargo fix --bin "generate_json" -p rust_data_table --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_data_table-6fb23d6dc96ae6fb)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test factor::tests::test_push_categorical_indexed ... ok
[INFO] [stdout] test factor::tests::test_factor_subset_verbose ... ok
[INFO] [stdout] test factor::tests::test_push_one_hot ... ok
[INFO] [stdout] test survival_data::tests_survival_data_from_file_one_hot_factors::test_order ... ok
[INFO] [stdout] test survival_data::tests_survival_data_from_file_one_hot_factors::test_survivaldata_one_hot_factors ... FAILED
[INFO] [stdout] test survival_data::tests_survival_data_from_file_one_hot_factors::test_update_value_and_update_value_str ... ok
[INFO] [stdout] test factor::tests::test_modify_levels ... ok
[INFO] [stdout] test survival_data::tests_survival_data_from_file_one_hot_factors::test_survivaldata_train_test_split_unique ... ok
[INFO] [stdout] test survival_data::tests_one_hot_factors::test_save_and_load_factors ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- survival_data::tests_survival_data_from_file_one_hot_factors::test_survivaldata_one_hot_factors stdout ----
[INFO] [stdout] Error: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] 
[INFO] [stdout] ---- survival_data::tests_one_hot_factors::test_save_and_load_factors stdout ----
[INFO] [stdout] Error: Read-only file system (os error 30)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/backtrace.rs:27:14
[INFO] [stdout]    1: <core::result::Result<T,F> as core::ops::try_trait::FromResidual<core::result::Result<core::convert::Infallible,E>>>::from_residual
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/core/src/result.rs:2184:27
[INFO] [stdout]    2: rust_data_table::survival_data::SurvivalData::save_factors
[INFO] [stdout]              at ./src/survival_data.rs:910:20
[INFO] [stdout]    3: rust_data_table::survival_data::tests_one_hot_factors::test_save_and_load_factors
[INFO] [stdout]              at ./src/survival_data.rs:959:14
[INFO] [stdout]    4: rust_data_table::survival_data::tests_one_hot_factors::test_save_and_load_factors::{{closure}}
[INFO] [stdout]              at ./src/survival_data.rs:936:40
[INFO] [stdout]    5: core::ops::function::FnOnce::call_once
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/core/src/ops/function.rs:250:5
[INFO] [stdout]    6: core::ops::function::FnOnce::call_once
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/core/src/ops/function.rs:250:5
[INFO] [stdout]    7: test::__rust_begin_short_backtrace
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/test/src/lib.rs:663:18
[INFO] [stdout]    8: test::run_test_in_process::{{closure}}
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/test/src/lib.rs:686:74
[INFO] [stdout]    9: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   10: std::panicking::catch_unwind::do_call
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/std/src/panicking.rs:590:40
[INFO] [stdout]   11: std::panicking::catch_unwind
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/std/src/panicking.rs:553:19
[INFO] [stdout]   12: std::panic::catch_unwind
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/std/src/panic.rs:359:14
[INFO] [stdout]   13: test::run_test_in_process
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/test/src/lib.rs:686:27
[INFO] [stdout]   14: test::run_test::{{closure}}
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/test/src/lib.rs:607:43
[INFO] [stdout]   15: test::run_test::{{closure}}
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/test/src/lib.rs:637:41
[INFO] [stdout]   16: std::sys::backtrace::__rust_begin_short_backtrace
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   17: std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/std/src/thread/mod.rs:562:17
[INFO] [stdout]   18: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   19: std::panicking::catch_unwind::do_call
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/std/src/panicking.rs:590:40
[INFO] [stdout]   20: std::panicking::catch_unwind
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/std/src/panicking.rs:553:19
[INFO] [stdout]   21: std::panic::catch_unwind
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/std/src/panic.rs:359:14
[INFO] [stdout]   22: std::thread::Builder::spawn_unchecked_::{{closure}}
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/std/src/thread/mod.rs:560:30
[INFO] [stdout]   23: core::ops::function::FnOnce::call_once{{vtable.shim}}
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/alloc/src/boxed.rs:2085:9
[INFO] [stdout]   25: std::sys::thread::unix::Thread::new::thread_start
[INFO] [stdout]              at /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/std/src/sys/thread/unix.rs:124:17
[INFO] [stdout]   26: <unknown>
[INFO] [stdout]   27: clone
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     survival_data::tests_one_hot_factors::test_save_and_load_factors
[INFO] [stdout]     survival_data::tests_survival_data_from_file_one_hot_factors::test_survivaldata_one_hot_factors
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 7 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "c8503bebe7f80a88c14943fc9705b3e02d992615e0800b98b0bc367c48be1d71", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c8503bebe7f80a88c14943fc9705b3e02d992615e0800b98b0bc367c48be1d71", kill_on_drop: false }`
[INFO] [stdout] c8503bebe7f80a88c14943fc9705b3e02d992615e0800b98b0bc367c48be1d71
