[INFO] fetching crate rulinalg 0.4.2...
[INFO] checking rulinalg-0.4.2 against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] extracting crate rulinalg 0.4.2 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate rulinalg 0.4.2
[INFO] finished tweaking crates.io crate rulinalg 0.4.2
[INFO] tweaked toml for crates.io crate rulinalg 0.4.2 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rulinalg 0.4.2 on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 36 packages to highest compatible versions
[INFO] [stderr]       Adding csv v0.14.7 (available: v1.4.0)
[INFO] [stderr]       Adding itertools v0.5.10 (available: v0.15.0)
[INFO] [stderr]       Adding matrixmultiply v0.1.15 (available: v0.3.11)
[INFO] [stderr]       Adding num v0.1.43 (available: v0.4.3)
[INFO] [stderr]       Adding quickcheck v0.4.1 (available: v1.1.0)
[INFO] [stderr]       Adding rand v0.3.23 (available: v0.10.3)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `rulinalg` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6fe52adec028d6b3215da6393c420c53ccdcf7723c23840d881d2dd5a78945af
[INFO] running `Command { std: "docker" "start" "6fe52adec028d6b3215da6393c420c53ccdcf7723c23840d881d2dd5a78945af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6fe52adec028d6b3215da6393c420c53ccdcf7723c23840d881d2dd5a78945af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6fe52adec028d6b3215da6393c420c53ccdcf7723c23840d881d2dd5a78945af" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6fe52adec028d6b3215da6393c420c53ccdcf7723c23840d881d2dd5a78945af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6fe52adec028d6b3215da6393c420c53ccdcf7723c23840d881d2dd5a78945af" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `rulinalg` (manifest) generated 1 warning
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]     Checking memchr v0.1.11
[INFO] [stderr]     Checking regex-syntax v0.3.9
[INFO] [stderr]     Checking utf8-ranges v0.1.3
[INFO] [stderr]    Compiling matrixmultiply v0.1.15
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking rawpointer v0.1.0
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]     Checking itertools v0.5.10
[INFO] [stderr]     Checking num-integer v0.1.47
[INFO] [stderr]     Checking aho-corasick v0.5.3
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]     Checking num-iter v0.1.46
[INFO] [stderr]     Checking num v0.1.43
[INFO] [stderr]     Checking rulinalg v0.4.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking thread-id v2.0.0
[INFO] [stderr]     Checking thread_local v0.2.7
[INFO] [stderr]     Checking regex v0.1.80
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matrix/decomposition/bidiagonal.rs:41:28
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 h_holder = try!(Matrix::make_householder(&lower_slice.iter()
[INFO] [stdout]    |                            ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matrix/decomposition/bidiagonal.rs:69:36
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 let row_h_holder = try!(Matrix::make_householder(row).map_err(|_| {
[INFO] [stdout]    |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/decomposition/svd.rs:124:25
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let (b, u, v) = try!(self.svd_unordered());
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/decomposition/svd.rs:129:25
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let (b, u, v) = try!(self.svd_golub_reinsch());
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/decomposition/svd.rs:149:37
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let (mut b, mut u, mut v) = try!(self.bidiagonal_decomp()
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/decomposition/svd.rs:214:17
[INFO] [stdout]     |
[INFO] [stdout] 214 |                 try!(Matrix::<T>::golub_kahan_svd_step(&mut b, &mut u, &mut v, p, q)
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/decomposition/svd.rs:254:22
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let c_eigs = try!(c.clone().eigenvalues());
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matrix/decomposition/hessenberg.rs:47:32
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 h_holder_vec = try!(Matrix::make_householder_vec(&lower_slice.iter()
[INFO] [stdout]    |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/decomposition/hessenberg.rs:126:32
[INFO] [stdout]     |
[INFO] [stdout] 126 |                 h_holder_vec = try!(Matrix::make_householder_vec(&lower_slice.iter()
[INFO] [stdout]     |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/decomposition/hessenberg.rs:141:24
[INFO] [stdout]     |
[INFO] [stdout] 141 |         Ok((transform, try!(self.upper_hessenberg())))
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/decomposition/lu.rs:277:23
[INFO] [stdout]     |
[INFO] [stdout] 277 |             let col = try!(self.solve(e));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matrix/decomposition/eigen.rs:85:21
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let mut h = try!(self
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/decomposition/eigen.rs:107:35
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 let householder = try!(Matrix::make_householder(&[x, y, z]).map_err(|_| {
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/decomposition/eigen.rs:199:27
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let eigenvalues = try!(self.direct_2_by_2_eigenvalues());
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/decomposition/eigen.rs:226:26
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let (u, mut h) = try!(self.upper_hess_decomp().map_err(|_| {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/decomposition/eigen.rs:250:35
[INFO] [stdout]     |
[INFO] [stdout] 250 |                 let householder = try!(Matrix::make_householder(&[x, y, z]).map_err(|_| {
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/impl_mat.rs:449:13
[INFO] [stdout]     |
[INFO] [stdout] 449 |             try!(write!(f, "{}", left_delimiter));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/impl_mat.rs:453:25
[INFO] [stdout]     |
[INFO] [stdout] 453 |                         try!(write!(f, "{:1$.2$}", datum, width, places));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/impl_mat.rs:456:25
[INFO] [stdout]     |
[INFO] [stdout] 456 |                         try!(write!(f, "{:1$}", datum, width));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/impl_mat.rs:460:21
[INFO] [stdout]     |
[INFO] [stdout] 460 |                     try!(write!(f, " "));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/impl_mat.rs:469:17
[INFO] [stdout]     |
[INFO] [stdout] 469 |                 try!(write_row(f,
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/impl_mat.rs:474:17
[INFO] [stdout]     |
[INFO] [stdout] 474 |                 try!(f.write_str("\n"));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/impl_mat.rs:476:21
[INFO] [stdout]     |
[INFO] [stdout] 476 |                     try!(write_row(f,
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/matrix/impl_mat.rs:481:21
[INFO] [stdout]     |
[INFO] [stdout] 481 |                     try!(f.write_str("\n"));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/convert.rs:89:35
[INFO] [stdout]    |
[INFO] [stdout] 89 |         Ok(Matrix::<U>::new(m, n, try!(converted_data)))
[INFO] [stdout]    |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/vector/impl_vec.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |         try!(write!(f, "["));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/vector/impl_vec.rs:142:21
[INFO] [stdout]     |
[INFO] [stdout] 142 |                     try!(write!(f, " {:.*}", places, datum));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/vector/impl_vec.rs:145:21
[INFO] [stdout]     |
[INFO] [stdout] 145 |                     try!(write!(f, " {}", datum));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/vector/impl_vec.rs:149:17
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 try!(write!(f, ","));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     error: Box<error::Error + Send + Sync>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) 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] 13 |     error: Box<dyn error::Error + Send + Sync>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]     --> src/matrix/base/mod.rs:1579:28
[INFO] [stdout]      |
[INFO] [stdout] 1579 |     fn apply(mut self, f: &Fn(T) -> T) -> Self
[INFO] [stdout]      |                            ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2015) 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] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]      |
[INFO] [stdout] 1579 |     fn apply(mut self, f: &dyn Fn(T) -> T) -> Self
[INFO] [stdout]      |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/vector/impl_vec.rs:185:32
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub fn apply(mut self, f: &Fn(T) -> T) -> Vector<T> {
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) 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] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub fn apply(mut self, f: &dyn Fn(T) -> T) -> Vector<T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:39:27
[INFO] [stdout]    |
[INFO] [stdout] 39 |         where E: Into<Box<error::Error + Send + Sync>>
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) 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] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |         where E: Into<Box<dyn error::Error + Send + Sync>>
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]   --> src/macros/matrix_eq.rs:94:61
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 formatted_mismatches = formatted_mismatches.trim_right().to_string();
[INFO] [stdout]    |                                                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 94 -                 formatted_mismatches = formatted_mismatches.trim_right().to_string();
[INFO] [stdout] 94 +                 formatted_mismatches = formatted_mismatches.trim_end().to_string();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> src/macros/matrix_eq.rs:187:61
[INFO] [stdout]     |
[INFO] [stdout] 187 |                 formatted_mismatches = formatted_mismatches.trim_right().to_string();
[INFO] [stdout]     |                                                             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 187 -                 formatted_mismatches = formatted_mismatches.trim_right().to_string();
[INFO] [stdout] 187 +                 formatted_mismatches = formatted_mismatches.trim_end().to_string();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:55:20
[INFO] [stdout]    |
[INFO] [stdout] 55 |         self.error.description()
[INFO] [stdout]    |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking env_logger v0.3.5
[INFO] [stderr]     Checking quickcheck v0.4.1
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils.rs:105:34
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn in_place_vec_bin_op<F, T>(mut u: &mut [T], v: &[T], mut f: F)
[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] error: useless conversion to the same type: `DiagOffset`
[INFO] [stdout]    --> src/matrix/base/mod.rs:308:44
[INFO] [stdout]     |
[INFO] [stdout] 308 |         let (diag_len, diag_start) = match k.into() {
[INFO] [stdout]     |                                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 308 -         let (diag_len, diag_start) = match k.into() {
[INFO] [stdout] 308 +         let (diag_len, diag_start) = match k {
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 308 -         let (diag_len, diag_start) = match k.into() {
[INFO] [stdout] 308 +         let (diag_len, diag_start) = match <DiagOffset as Into<_>>::into(k) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DiagOffset`
[INFO] [stdout]     --> src/matrix/base/mod.rs:1503:44
[INFO] [stdout]      |
[INFO] [stdout] 1503 |         let (diag_len, diag_start) = match k.into() {
[INFO] [stdout]      |                                            ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]      |
[INFO] [stdout] 1503 -         let (diag_len, diag_start) = match k.into() {
[INFO] [stdout] 1503 +         let (diag_len, diag_start) = match k {
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1503 -         let (diag_len, diag_start) = match k.into() {
[INFO] [stdout] 1503 +         let (diag_len, diag_start) = match <DiagOffset as Into<_>>::into(k) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/matrix/base/mod.rs:72:17
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn as_slice(&self) -> MatrixSlice<T> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn as_slice(&self) -> MatrixSlice<'_, T> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/matrix/base/mod.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn col(&self, index: usize) -> Column<T> {
[INFO] [stdout]     |            ^^^^^                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |            |
[INFO] [stdout]     |            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn col(&self, index: usize) -> Column<'_, T> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/matrix/base/mod.rs:129:29
[INFO] [stdout]     |
[INFO] [stdout] 129 |     unsafe fn col_unchecked(&self, index: usize) -> Column<T> {
[INFO] [stdout]     |                             ^^^^^                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 129 |     unsafe fn col_unchecked(&self, index: usize) -> Column<'_, T> {
[INFO] [stdout]     |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/matrix/base/mod.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn row(&self, index: usize) -> Row<T> {
[INFO] [stdout]     |            ^^^^^                   ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |            |
[INFO] [stdout]     |            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn row(&self, index: usize) -> Row<'_, T> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/matrix/base/mod.rs:178:29
[INFO] [stdout]     |
[INFO] [stdout] 178 |     unsafe fn row_unchecked(&self, index: usize) -> Row<T> {
[INFO] [stdout]     |                             ^^^^^                   ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 178 |     unsafe fn row_unchecked(&self, index: usize) -> Row<'_, T> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/matrix/base/mod.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn col_iter(&self) -> Cols<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn col_iter(&self) -> Cols<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/matrix/base/mod.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |     fn row_iter(&self) -> Rows<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 263 |     fn row_iter(&self) -> Rows<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/matrix/base/mod.rs:307:18
[INFO] [stdout]     |
[INFO] [stdout] 307 |     fn diag_iter(&self, k: DiagOffset) -> Diagonal<T, Self> {
[INFO] [stdout]     |                  ^^^^^                    ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 307 |     fn diag_iter(&self, k: DiagOffset) -> Diagonal<'_, T, Self> {
[INFO] [stdout]     |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/matrix/base/mod.rs:880:13
[INFO] [stdout]     |
[INFO] [stdout] 880 |     fn diag(&self) -> Diagonal<T, Self> {
[INFO] [stdout]     |             ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 880 |     fn diag(&self) -> Diagonal<'_, T, Self> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/matrix/base/mod.rs:990:17
[INFO] [stdout]     |
[INFO] [stdout] 990 | /                 format!("Vector size {0} != {1} Matrix column count.",
[INFO] [stdout] 991 | |                         y.size(),
[INFO] [stdout] 992 | |                         self.cols()));
[INFO] [stdout]     | |____________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 990 ~                 "Vector size {0} != {1} Matrix column count.",
[INFO] [stdout] 991 |                         y.size(),
[INFO] [stdout] 992 ~                         self.cols());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/matrix/base/mod.rs:1033:17
[INFO] [stdout]      |
[INFO] [stdout] 1033 | /                 format!("Vector size {0} != {1} Matrix column count.",
[INFO] [stdout] 1034 | |                         y.size(),
[INFO] [stdout] 1035 | |                         self.cols()));
[INFO] [stdout]      | |____________________________________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]      |
[INFO] [stdout] 1033 ~                 "Vector size {0} != {1} Matrix column count.",
[INFO] [stdout] 1034 |                         y.size(),
[INFO] [stdout] 1035 ~                         self.cols());
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/matrix/base/mod.rs:1050:17
[INFO] [stdout]      |
[INFO] [stdout] 1050 |     fn split_at(&self, mid: usize, axis: Axes) -> (MatrixSlice<T>, MatrixSlice<T>) {
[INFO] [stdout]      |                 ^^^^^                              ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                 |                                  |
[INFO] [stdout]      |                 the lifetime is elided here        the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1050 |     fn split_at(&self, mid: usize, axis: Axes) -> (MatrixSlice<'_, T>, MatrixSlice<'_, T>) {
[INFO] [stdout]      |                                                                +++                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/matrix/base/mod.rs:1133:21
[INFO] [stdout]      |
[INFO] [stdout] 1133 |     fn as_mut_slice(&mut self) -> MatrixSliceMut<T> {
[INFO] [stdout]      |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1133 |     fn as_mut_slice(&mut self) -> MatrixSliceMut<'_, T> {
[INFO] [stdout]      |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/matrix/base/mod.rs:1210:16
[INFO] [stdout]      |
[INFO] [stdout] 1210 |     fn col_mut(&mut self, index: usize) -> ColumnMut<T> {
[INFO] [stdout]      |                ^^^^^^^^^                   ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                |
[INFO] [stdout]      |                the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1210 |     fn col_mut(&mut self, index: usize) -> ColumnMut<'_, T> {
[INFO] [stdout]      |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/matrix/base/mod.rs:1239:33
[INFO] [stdout]      |
[INFO] [stdout] 1239 |     unsafe fn col_unchecked_mut(&mut self, index: usize) -> ColumnMut<T> {
[INFO] [stdout]      |                                 ^^^^^^^^^                   ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1239 |     unsafe fn col_unchecked_mut(&mut self, index: usize) -> ColumnMut<'_, T> {
[INFO] [stdout]      |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/matrix/base/mod.rs:1271:16
[INFO] [stdout]      |
[INFO] [stdout] 1271 |     fn row_mut(&mut self, index: usize) -> RowMut<T> {
[INFO] [stdout]      |                ^^^^^^^^^                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                |
[INFO] [stdout]      |                the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1271 |     fn row_mut(&mut self, index: usize) -> RowMut<'_, T> {
[INFO] [stdout]      |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/matrix/base/mod.rs:1300:33
[INFO] [stdout]      |
[INFO] [stdout] 1300 |     unsafe fn row_unchecked_mut(&mut self, index: usize) -> RowMut<T> {
[INFO] [stdout]      |                                 ^^^^^^^^^                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1300 |     unsafe fn row_unchecked_mut(&mut self, index: usize) -> RowMut<'_, T> {
[INFO] [stdout]      |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/matrix/base/mod.rs:1336:17
[INFO] [stdout]      |
[INFO] [stdout] 1336 |                 format!("Row index {0} larger than row count {1}", a, self.rows()));
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]      |
[INFO] [stdout] 1336 -                 format!("Row index {0} larger than row count {1}", a, self.rows()));
[INFO] [stdout] 1336 +                 "Row index {0} larger than row count {1}", a, self.rows());
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/matrix/base/mod.rs:1338:17
[INFO] [stdout]      |
[INFO] [stdout] 1338 |                 format!("Row index {0} larger than row count {1}", b, self.rows()));
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]      |
[INFO] [stdout] 1338 -                 format!("Row index {0} larger than row count {1}", b, self.rows()));
[INFO] [stdout] 1338 +                 "Row index {0} larger than row count {1}", b, self.rows());
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/matrix/base/mod.rs:1388:17
[INFO] [stdout]      |
[INFO] [stdout] 1388 |                 format!("Row index {0} larger than row count {1}", a, self.rows()));
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]      |
[INFO] [stdout] 1388 -                 format!("Row index {0} larger than row count {1}", a, self.rows()));
[INFO] [stdout] 1388 +                 "Row index {0} larger than row count {1}", a, self.rows());
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/matrix/base/mod.rs:1390:17
[INFO] [stdout]      |
[INFO] [stdout] 1390 |                 format!("Row index {0} larger than row count {1}", b, self.rows()));
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]      |
[INFO] [stdout] 1390 -                 format!("Row index {0} larger than row count {1}", b, self.rows()));
[INFO] [stdout] 1390 +                 "Row index {0} larger than row count {1}", b, self.rows());
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/matrix/base/mod.rs:1424:21
[INFO] [stdout]      |
[INFO] [stdout] 1424 |     fn col_iter_mut(&mut self) -> ColsMut<T> {
[INFO] [stdout]      |                     ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1424 |     fn col_iter_mut(&mut self) -> ColsMut<'_, T> {
[INFO] [stdout]      |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/matrix/base/mod.rs:1455:21
[INFO] [stdout]      |
[INFO] [stdout] 1455 |     fn row_iter_mut(&mut self) -> RowsMut<T> {
[INFO] [stdout]      |                     ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1455 |     fn row_iter_mut(&mut self) -> RowsMut<'_, T> {
[INFO] [stdout]      |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/matrix/base/mod.rs:1502:22
[INFO] [stdout]      |
[INFO] [stdout] 1502 |     fn diag_iter_mut(&mut self, k: DiagOffset) -> DiagonalMut<T, Self> {
[INFO] [stdout]      |                      ^^^^^^^^^                    ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      the lifetime is elided here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1502 |     fn diag_iter_mut(&mut self, k: DiagOffset) -> DiagonalMut<'_, T, Self> {
[INFO] [stdout]      |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/matrix/base/mod.rs:1598:21
[INFO] [stdout]      |
[INFO] [stdout] 1598 |     fn split_at_mut(&mut self, mid: usize, axis: Axes) -> (MatrixSliceMut<T>, MatrixSliceMut<T>) {
[INFO] [stdout]      |                     ^^^^^^^^^                              ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |                     |                                      |
[INFO] [stdout]      |                     the lifetime is elided here            the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1598 |     fn split_at_mut(&mut self, mid: usize, axis: Axes) -> (MatrixSliceMut<'_, T>, MatrixSliceMut<'_, T>) {
[INFO] [stdout]      |                                                                           +++                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/matrix/slice.rs:19:27
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn from_matrix(mat: &'a Matrix<T>,
[INFO] [stdout]    |                              -- the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 19 |                        -> MatrixSlice<T> {
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 19 |                        -> MatrixSlice<'a, T> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/matrix/slice.rs:89:27
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub fn from_matrix(mat: &'a mut Matrix<T>,
[INFO] [stdout]    |                              -- the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 89 |                        -> MatrixSliceMut<T> {
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 89 |                        -> MatrixSliceMut<'a, T> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/vector/impl_vec.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/vector/impl_vec.rs:86:21
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn iter_mut(&mut self) -> IterMut<T> {
[INFO] [stdout]    |                     ^^^^^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn iter_mut(&mut self) -> IterMut<'_, T> {
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/ulp.rs:55:42
[INFO] [stdout]    |
[INFO] [stdout] 41 | macro_rules! impl_float_ulp {
[INFO] [stdout] ...
[INFO] [stdout] 55 |                     let a_int = unsafe { mem::transmute::<$ftype, $itype>(a.to_owned()) };
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 | impl_float_ulp!(f32, i32);
[INFO] [stdout]    | ------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 55 -                     let a_int = unsafe { mem::transmute::<$ftype, $itype>(a.to_owned()) };
[INFO] [stdout] 55 +                     let a_int = unsafe { f32::to_bits(a.to_owned()).cast_signed() };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/ulp.rs:56:42
[INFO] [stdout]    |
[INFO] [stdout] 41 | macro_rules! impl_float_ulp {
[INFO] [stdout] ...
[INFO] [stdout] 56 |                     let b_int = unsafe { mem::transmute::<$ftype, $itype>(b.to_owned()) };
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 | impl_float_ulp!(f32, i32);
[INFO] [stdout]    | ------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 56 -                     let b_int = unsafe { mem::transmute::<$ftype, $itype>(b.to_owned()) };
[INFO] [stdout] 56 +                     let b_int = unsafe { f32::to_bits(b.to_owned()).cast_signed() };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/ulp.rs:55:42
[INFO] [stdout]    |
[INFO] [stdout] 41 | macro_rules! impl_float_ulp {
[INFO] [stdout] ...
[INFO] [stdout] 55 |                     let a_int = unsafe { mem::transmute::<$ftype, $itype>(a.to_owned()) };
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 | impl_float_ulp!(f64, i64);
[INFO] [stdout]    | ------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 55 -                     let a_int = unsafe { mem::transmute::<$ftype, $itype>(a.to_owned()) };
[INFO] [stdout] 55 +                     let a_int = unsafe { f64::to_bits(a.to_owned()).cast_signed() };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/ulp.rs:56:42
[INFO] [stdout]    |
[INFO] [stdout] 41 | macro_rules! impl_float_ulp {
[INFO] [stdout] ...
[INFO] [stdout] 56 |                     let b_int = unsafe { mem::transmute::<$ftype, $itype>(b.to_owned()) };
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 | impl_float_ulp!(f64, i64);
[INFO] [stdout]    | ------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 56 -                     let b_int = unsafe { mem::transmute::<$ftype, $itype>(b.to_owned()) };
[INFO] [stdout] 56 +                     let b_int = unsafe { f64::to_bits(b.to_owned()).cast_signed() };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rulinalg` (lib) due to 2 previous errors; 70 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "6fe52adec028d6b3215da6393c420c53ccdcf7723c23840d881d2dd5a78945af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6fe52adec028d6b3215da6393c420c53ccdcf7723c23840d881d2dd5a78945af", kill_on_drop: false }`
[INFO] [stdout] 6fe52adec028d6b3215da6393c420c53ccdcf7723c23840d881d2dd5a78945af
