[INFO] cloning repository https://github.com/mvojacek/rust-expr-calc
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mvojacek/rust-expr-calc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmvojacek%2Frust-expr-calc", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmvojacek%2Frust-expr-calc'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fe285145034d08d383d362c3f5f6c61aa72daf6c
[INFO] checking mvojacek/rust-expr-calc against nightly-2024-02-05 for check-cfg-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmvojacek%2Frust-expr-calc" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/mvojacek/rust-expr-calc on toolchain nightly-2024-02-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-02-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/mvojacek/rust-expr-calc
[INFO] finished tweaking git repo https://github.com/mvojacek/rust-expr-calc
[INFO] tweaked toml for git repo https://github.com/mvojacek/rust-expr-calc written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/mvojacek/rust-expr-calc 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" "+nightly-2024-02-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded num-traits v0.2.8
[INFO] [stderr]   Downloaded num-integer v0.1.41
[INFO] [stderr]   Downloaded either v1.5.2
[INFO] [stderr]   Downloaded num-rational v0.2.1
[INFO] [stderr]   Downloaded num v0.2.0
[INFO] [stderr]   Downloaded num-bigint v0.2.2
[INFO] [stderr]   Downloaded autocfg v0.1.4
[INFO] [stderr]   Downloaded num-complex v0.2.1
[INFO] [stderr]   Downloaded num-iter v0.1.39
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-02-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] be01566f2b4102efa466b6af170e24bbbd51b21acac413d3ebc54b2a645030f9
[INFO] running `Command { std: "docker" "start" "-a" "be01566f2b4102efa466b6af170e24bbbd51b21acac413d3ebc54b2a645030f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "be01566f2b4102efa466b6af170e24bbbd51b21acac413d3ebc54b2a645030f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "be01566f2b4102efa466b6af170e24bbbd51b21acac413d3ebc54b2a645030f9", kill_on_drop: false }`
[INFO] [stdout] be01566f2b4102efa466b6af170e24bbbd51b21acac413d3ebc54b2a645030f9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-02-05" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 11ba4a6613a48d670e7ba24891597d447f47173472af65e3a0c9a5d216e25782
[INFO] running `Command { std: "docker" "start" "-a" "11ba4a6613a48d670e7ba24891597d447f47173472af65e3a0c9a5d216e25782", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v0.1.4
[INFO] [stderr]    Compiling num-bigint v0.2.2
[INFO] [stderr]    Compiling num-complex v0.2.1
[INFO] [stderr]    Compiling num-rational v0.2.1
[INFO] [stderr]     Checking either v1.5.2
[INFO] [stderr]     Checking itertools v0.8.0
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]     Checking num v0.2.0
[INFO] [stderr]     Checking rustplay v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]  --> src/asdebug.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(specialization, core_intrinsics)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]  --> src/asdebug.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(specialization, core_intrinsics)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/nodelinkedlist.rs:347:42
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let mut n: [Node<i32>; 4] = mem::uninitialized();
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:99:15
[INFO] [stdout]    |
[INFO] [stdout] 99 |     OpErr(Box<fmt::Display + Send>),
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 99 |     OpErr(Box<dyn fmt::Display + Send>),
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:210:40
[INFO] [stdout]     |
[INFO] [stdout] 210 |     where F: Fn(N, N) -> Result<N, Box<fmt::Display + Send>> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 210 |     where F: Fn(N, N) -> Result<N, Box<dyn fmt::Display + Send>> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/asdebug.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn as_debug(&self) -> &Debug;
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn as_debug(&self) -> &dyn Debug;
[INFO] [stdout]   |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/asdebug.rs:16:28
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn as_debug(&self) -> &Debug {
[INFO] [stdout]    |                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn as_debug(&self) -> &dyn Debug {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/nodelinkedlist.rs:347:42
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let mut n: [Node<i32>; 4] = mem::uninitialized();
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:99:15
[INFO] [stdout]    |
[INFO] [stdout] 99 |     OpErr(Box<fmt::Display + Send>),
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 99 |     OpErr(Box<dyn fmt::Display + Send>),
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:210:40
[INFO] [stdout]     |
[INFO] [stdout] 210 |     where F: Fn(N, N) -> Result<N, Box<fmt::Display + Send>> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 210 |     where F: Fn(N, N) -> Result<N, Box<dyn fmt::Display + Send>> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/asdebug.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn as_debug(&self) -> &Debug;
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn as_debug(&self) -> &dyn Debug;
[INFO] [stdout]   |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/asdebug.rs:16:28
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn as_debug(&self) -> &Debug {
[INFO] [stdout]    |                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn as_debug(&self) -> &dyn Debug {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/nodelinkedlist.rs:327:48
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let it = &mut iter.into_iter() as &mut Iterator<Item=A>;
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let it = &mut iter.into_iter() as &mut dyn Iterator<Item=A>;
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/nodelinkedlist.rs:327:48
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let it = &mut iter.into_iter() as &mut Iterator<Item=A>;
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let it = &mut iter.into_iter() as &mut dyn Iterator<Item=A>;
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locked`
[INFO] [stdout]    --> src/main.rs:184:24
[INFO] [stdout]     |
[INFO] [stdout] 184 |         Expr::Num { n, locked } => Ok(n),
[INFO] [stdout]     |                        ^^^^^^ help: try ignoring the field: `locked: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n4`
[INFO] [stdout]    --> src/nodelinkedlist.rs:443:9
[INFO] [stdout]     |
[INFO] [stdout] 443 |     let n4 = Node::new(4);
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_n4`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:225:37
[INFO] [stdout]     |
[INFO] [stdout] 225 |                         Expr::Num { n, locked } => {
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:233:29
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 Expr::Num { n, locked: true } => return Ok(()),
[INFO] [stdout]     |                             ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:241:37
[INFO] [stdout]     |
[INFO] [stdout] 241 |                         Expr::Num { n, locked } => {
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 249 |                 Expr::Num { n, locked: true } => return Ok(()),
[INFO] [stdout]     |                             ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locked`
[INFO] [stdout]    --> src/main.rs:184:24
[INFO] [stdout]     |
[INFO] [stdout] 184 |         Expr::Num { n, locked } => Ok(n),
[INFO] [stdout]     |                        ^^^^^^ help: try ignoring the field: `locked: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]    --> src/main.rs:276:44
[INFO] [stdout]     |
[INFO] [stdout] 276 |             paren_mut_adjacent_num(&n, p, |num, locked| {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:225:37
[INFO] [stdout]     |
[INFO] [stdout] 225 |                         Expr::Num { n, locked } => {
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:233:29
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 Expr::Num { n, locked: true } => return Ok(()),
[INFO] [stdout]     |                             ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:241:37
[INFO] [stdout]     |
[INFO] [stdout] 241 |                         Expr::Num { n, locked } => {
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 249 |                 Expr::Num { n, locked: true } => return Ok(()),
[INFO] [stdout]     |                             ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locked`
[INFO] [stdout]    --> src/main.rs:292:32
[INFO] [stdout]     |
[INFO] [stdout] 292 |                 Expr::Num { n, locked } => n,
[INFO] [stdout]     |                                ^^^^^^ help: try ignoring the field: `locked: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:302:65
[INFO] [stdout]     |
[INFO] [stdout] 302 |             paren_mut_adjacent_num(&close_paren, Paren::Close, |n, locked| {
[INFO] [stdout]     |                                                                 ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:305:63
[INFO] [stdout]     |
[INFO] [stdout] 305 |             paren_mut_adjacent_num(&open_paren, Paren::Open, |n, locked| {
[INFO] [stdout]     |                                                               ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]    --> src/main.rs:276:44
[INFO] [stdout]     |
[INFO] [stdout] 276 |             paren_mut_adjacent_num(&n, p, |num, locked| {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locked`
[INFO] [stdout]    --> src/main.rs:292:32
[INFO] [stdout]     |
[INFO] [stdout] 292 |                 Expr::Num { n, locked } => n,
[INFO] [stdout]     |                                ^^^^^^ help: try ignoring the field: `locked: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:302:65
[INFO] [stdout]     |
[INFO] [stdout] 302 |             paren_mut_adjacent_num(&close_paren, Paren::Close, |n, locked| {
[INFO] [stdout]     |                                                                 ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:305:63
[INFO] [stdout]     |
[INFO] [stdout] 305 |             paren_mut_adjacent_num(&open_paren, Paren::Open, |n, locked| {
[INFO] [stdout]     |                                                               ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:385:25
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Expr::Num { n, locked } => true,
[INFO] [stdout]     |                         ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locked`
[INFO] [stdout]    --> src/main.rs:385:28
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Expr::Num { n, locked } => true,
[INFO] [stdout]     |                            ^^^^^^ help: try ignoring the field: `locked: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:385:25
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Expr::Num { n, locked } => true,
[INFO] [stdout]     |                         ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locked`
[INFO] [stdout]    --> src/main.rs:385:28
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Expr::Num { n, locked } => true,
[INFO] [stdout]     |                            ^^^^^^ help: try ignoring the field: `locked: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate10` is never used
[INFO] [stdout]    --> src/main.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn calculate10<N: MyNum>(expr: &String) -> Result<N, (Option<usize>, CalcErr<N>)> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_num`, `is_op`, and `is_paren` are never used
[INFO] [stdout]    --> src/main.rs:383:8
[INFO] [stdout]     |
[INFO] [stdout] 382 | impl<N: MyNum> Expr<N> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 383 |     fn is_num(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     fn is_op(&self) -> bool {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     fn is_paren(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert_before_node`, `insert_before`, `split_after`, and `split_before` are never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl<T> Node<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn insert_before_node(self, node: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn insert_before(&self, val: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn split_after(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn split_before(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `iter_walk_val`, `list_iter_back`, and `list_iter_val` are never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl<T> Node<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn iter_walk_val(&self) -> WalkingIterVal<T> where T: Clone {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn list_iter_back(&self) -> Chain<Once<Self>, WalkingIterBack<T>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn list_iter_val(&self) -> Chain<Once<T>, WalkingIterVal<T>> where T: Clone {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `tail`, `head`, `list_distance`, and `list_find` are never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:227:12
[INFO] [stdout]     |
[INFO] [stdout] 226 | impl<T> Node<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 227 |     pub fn tail(&self) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn head(&self) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn list_distance(&self, following: &Self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub fn list_find(&self, other: &Self) -> Option<(bool, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `list_append_node`, `list_append`, `list_prepend_node`, and `list_prepend` are never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 250 | impl<T> Node<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 251 |     // list extension
[INFO] [stdout] 252 |     pub fn list_append_node(&self, node: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn list_append(&self, val: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn list_prepend_node(&self, node: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn list_prepend(&self, val: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_linkedlist_for_tests` is never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:345:4
[INFO] [stdout]     |
[INFO] [stdout] 345 | fn make_linkedlist_for_tests() -> [Node<i32>; 4] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_num`, `is_op`, and `is_paren` are never used
[INFO] [stdout]    --> src/main.rs:383:8
[INFO] [stdout]     |
[INFO] [stdout] 382 | impl<N: MyNum> Expr<N> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 383 |     fn is_num(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     fn is_op(&self) -> bool {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     fn is_paren(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert_before`, `split_after`, and `split_before` are never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl<T> Node<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn insert_before(&self, val: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn split_after(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn split_before(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `list_append_node`, `list_append`, `list_prepend_node`, and `list_prepend` are never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 250 | impl<T> Node<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 251 |     // list extension
[INFO] [stdout] 252 |     pub fn list_append_node(&self, node: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn list_append(&self, val: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn list_prepend_node(&self, node: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn list_prepend(&self, val: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `[Node<i32>; 4]` does not permit being left uninitialized
[INFO] [stdout]    --> src/nodelinkedlist.rs:347:37
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let mut n: [Node<i32>; 4] = mem::uninitialized();
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this code causes undefined behavior when executed
[INFO] [stdout]     |                                     help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: `nodelinkedlist::Node<i32>` must be non-null
[INFO] [stdout] note: because `std::rc::Rc<std::cell::RefCell<nodelinkedlist::NodeInner<i32>>>` must be non-null (in this struct field)
[INFO] [stdout]    --> src/nodelinkedlist.rs:40:21
[INFO] [stdout]     |
[INFO] [stdout] 40  | pub struct Node<T> (StrongNode<T>);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^
[INFO] [stdout]     = note: because `std::ptr::NonNull<std::rc::RcBox<std::cell::RefCell<nodelinkedlist::NodeInner<i32>>>>` must be non-null
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout]     = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `[Node<i32>; 4]` does not permit being left uninitialized
[INFO] [stdout]    --> src/nodelinkedlist.rs:347:37
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let mut n: [Node<i32>; 4] = mem::uninitialized();
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this code causes undefined behavior when executed
[INFO] [stdout]     |                                     help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: `nodelinkedlist::Node<i32>` must be non-null
[INFO] [stdout] note: because `std::rc::Rc<std::cell::RefCell<nodelinkedlist::NodeInner<i32>>>` must be non-null (in this struct field)
[INFO] [stdout]    --> src/nodelinkedlist.rs:40:21
[INFO] [stdout]     |
[INFO] [stdout] 40  | pub struct Node<T> (StrongNode<T>);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^
[INFO] [stdout]     = note: because `std::ptr::NonNull<std::rc::RcBox<std::cell::RefCell<nodelinkedlist::NodeInner<i32>>>>` must be non-null
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout]     = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 23 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 4.10s
[INFO] running `Command { std: "docker" "inspect" "11ba4a6613a48d670e7ba24891597d447f47173472af65e3a0c9a5d216e25782", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "11ba4a6613a48d670e7ba24891597d447f47173472af65e3a0c9a5d216e25782", kill_on_drop: false }`
[INFO] [stdout] 11ba4a6613a48d670e7ba24891597d447f47173472af65e3a0c9a5d216e25782
[INFO] checking mvojacek/rust-expr-calc against nightly-2024-02-05+rustflags=-Dunexpected_cfgs+cargoflags=-Zcheck-cfg for check-cfg-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmvojacek%2Frust-expr-calc" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/mvojacek/rust-expr-calc on toolchain nightly-2024-02-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-02-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/mvojacek/rust-expr-calc
[INFO] finished tweaking git repo https://github.com/mvojacek/rust-expr-calc
[INFO] tweaked toml for git repo https://github.com/mvojacek/rust-expr-calc written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/mvojacek/rust-expr-calc 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" "+nightly-2024-02-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-02-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2144b756571e0f20cdebafcb878d64522779bee11acc333e37a87792f7826dd3
[INFO] running `Command { std: "docker" "start" "-a" "2144b756571e0f20cdebafcb878d64522779bee11acc333e37a87792f7826dd3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2144b756571e0f20cdebafcb878d64522779bee11acc333e37a87792f7826dd3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2144b756571e0f20cdebafcb878d64522779bee11acc333e37a87792f7826dd3", kill_on_drop: false }`
[INFO] [stdout] 2144b756571e0f20cdebafcb878d64522779bee11acc333e37a87792f7826dd3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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 -Dunexpected_cfgs" "-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-02-05" "check" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zcheck-cfg", kill_on_drop: false }`
[INFO] [stdout] 581b00f23cf1d5538cd2077a1b7544b26fe29039fa5bce2ff5989f30ed857aaf
[INFO] running `Command { std: "docker" "start" "-a" "581b00f23cf1d5538cd2077a1b7544b26fe29039fa5bce2ff5989f30ed857aaf", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v0.1.4
[INFO] [stderr]    Compiling num-bigint v0.2.2
[INFO] [stderr]    Compiling num-complex v0.2.1
[INFO] [stderr]    Compiling num-rational v0.2.1
[INFO] [stderr]     Checking either v1.5.2
[INFO] [stderr]     Checking itertools v0.8.0
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]     Checking num v0.2.0
[INFO] [stderr]     Checking rustplay v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: unexpected `cfg` condition value: `unstable`
[INFO] [stdout]  --> src/splitkeep.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[cfg(not(feature = "unstable"))]
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `unstable` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout]   = note: requested on the command line with `-D unexpected-cfgs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `unstable`
[INFO] [stdout]   --> src/splitkeep.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[cfg(not(feature = "unstable"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `unstable` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `unstable`
[INFO] [stdout]   --> src/splitkeep.rs:56:11
[INFO] [stdout]    |
[INFO] [stdout] 56 | #[cfg(not(feature = "unstable"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `unstable` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]  --> src/asdebug.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(specialization, core_intrinsics)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/nodelinkedlist.rs:347:42
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let mut n: [Node<i32>; 4] = mem::uninitialized();
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:99:15
[INFO] [stdout]    |
[INFO] [stdout] 99 |     OpErr(Box<fmt::Display + Send>),
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 99 |     OpErr(Box<dyn fmt::Display + Send>),
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:210:40
[INFO] [stdout]     |
[INFO] [stdout] 210 |     where F: Fn(N, N) -> Result<N, Box<fmt::Display + Send>> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 210 |     where F: Fn(N, N) -> Result<N, Box<dyn fmt::Display + Send>> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/asdebug.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn as_debug(&self) -> &Debug;
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn as_debug(&self) -> &dyn Debug;
[INFO] [stdout]   |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/asdebug.rs:16:28
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn as_debug(&self) -> &Debug {
[INFO] [stdout]    |                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn as_debug(&self) -> &dyn Debug {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/nodelinkedlist.rs:327:48
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let it = &mut iter.into_iter() as &mut Iterator<Item=A>;
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let it = &mut iter.into_iter() as &mut dyn Iterator<Item=A>;
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `unstable`
[INFO] [stdout]  --> src/splitkeep.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[cfg(not(feature = "unstable"))]
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `unstable` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout]   = note: requested on the command line with `-D unexpected-cfgs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `unstable`
[INFO] [stdout]   --> src/splitkeep.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[cfg(not(feature = "unstable"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `unstable` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `unstable`
[INFO] [stdout]   --> src/splitkeep.rs:56:11
[INFO] [stdout]    |
[INFO] [stdout] 56 | #[cfg(not(feature = "unstable"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = help: consider adding `unstable` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]  --> src/asdebug.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(specialization, core_intrinsics)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/nodelinkedlist.rs:347:42
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let mut n: [Node<i32>; 4] = mem::uninitialized();
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:99:15
[INFO] [stdout]    |
[INFO] [stdout] 99 |     OpErr(Box<fmt::Display + Send>),
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 99 |     OpErr(Box<dyn fmt::Display + Send>),
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:210:40
[INFO] [stdout]     |
[INFO] [stdout] 210 |     where F: Fn(N, N) -> Result<N, Box<fmt::Display + Send>> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 210 |     where F: Fn(N, N) -> Result<N, Box<dyn fmt::Display + Send>> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/asdebug.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn as_debug(&self) -> &Debug;
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn as_debug(&self) -> &dyn Debug;
[INFO] [stdout]   |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/asdebug.rs:16:28
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn as_debug(&self) -> &Debug {
[INFO] [stdout]    |                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn as_debug(&self) -> &dyn Debug {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locked`
[INFO] [stdout]    --> src/main.rs:184:24
[INFO] [stdout]     |
[INFO] [stdout] 184 |         Expr::Num { n, locked } => Ok(n),
[INFO] [stdout]     |                        ^^^^^^ help: try ignoring the field: `locked: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:225:37
[INFO] [stdout]     |
[INFO] [stdout] 225 |                         Expr::Num { n, locked } => {
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:233:29
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 Expr::Num { n, locked: true } => return Ok(()),
[INFO] [stdout]     |                             ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:241:37
[INFO] [stdout]     |
[INFO] [stdout] 241 |                         Expr::Num { n, locked } => {
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 249 |                 Expr::Num { n, locked: true } => return Ok(()),
[INFO] [stdout]     |                             ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]    --> src/main.rs:276:44
[INFO] [stdout]     |
[INFO] [stdout] 276 |             paren_mut_adjacent_num(&n, p, |num, locked| {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locked`
[INFO] [stdout]    --> src/main.rs:292:32
[INFO] [stdout]     |
[INFO] [stdout] 292 |                 Expr::Num { n, locked } => n,
[INFO] [stdout]     |                                ^^^^^^ help: try ignoring the field: `locked: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:302:65
[INFO] [stdout]     |
[INFO] [stdout] 302 |             paren_mut_adjacent_num(&close_paren, Paren::Close, |n, locked| {
[INFO] [stdout]     |                                                                 ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:305:63
[INFO] [stdout]     |
[INFO] [stdout] 305 |             paren_mut_adjacent_num(&open_paren, Paren::Open, |n, locked| {
[INFO] [stdout]     |                                                               ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:385:25
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Expr::Num { n, locked } => true,
[INFO] [stdout]     |                         ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locked`
[INFO] [stdout]    --> src/main.rs:385:28
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Expr::Num { n, locked } => true,
[INFO] [stdout]     |                            ^^^^^^ help: try ignoring the field: `locked: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate10` is never used
[INFO] [stdout]    --> src/main.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn calculate10<N: MyNum>(expr: &String) -> Result<N, (Option<usize>, CalcErr<N>)> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_num`, `is_op`, and `is_paren` are never used
[INFO] [stdout]    --> src/main.rs:383:8
[INFO] [stdout]     |
[INFO] [stdout] 382 | impl<N: MyNum> Expr<N> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 383 |     fn is_num(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     fn is_op(&self) -> bool {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     fn is_paren(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert_before_node`, `insert_before`, `split_after`, and `split_before` are never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl<T> Node<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn insert_before_node(self, node: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn insert_before(&self, val: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn split_after(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn split_before(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `iter_walk_val`, `list_iter_back`, and `list_iter_val` are never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl<T> Node<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn iter_walk_val(&self) -> WalkingIterVal<T> where T: Clone {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn list_iter_back(&self) -> Chain<Once<Self>, WalkingIterBack<T>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn list_iter_val(&self) -> Chain<Once<T>, WalkingIterVal<T>> where T: Clone {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `tail`, `head`, `list_distance`, and `list_find` are never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:227:12
[INFO] [stdout]     |
[INFO] [stdout] 226 | impl<T> Node<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 227 |     pub fn tail(&self) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn head(&self) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn list_distance(&self, following: &Self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub fn list_find(&self, other: &Self) -> Option<(bool, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `list_append_node`, `list_append`, `list_prepend_node`, and `list_prepend` are never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 250 | impl<T> Node<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 251 |     // list extension
[INFO] [stdout] 252 |     pub fn list_append_node(&self, node: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn list_append(&self, val: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn list_prepend_node(&self, node: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn list_prepend(&self, val: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_linkedlist_for_tests` is never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:345:4
[INFO] [stdout]     |
[INFO] [stdout] 345 | fn make_linkedlist_for_tests() -> [Node<i32>; 4] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `[Node<i32>; 4]` does not permit being left uninitialized
[INFO] [stdout]    --> src/nodelinkedlist.rs:347:37
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let mut n: [Node<i32>; 4] = mem::uninitialized();
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this code causes undefined behavior when executed
[INFO] [stdout]     |                                     help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: `nodelinkedlist::Node<i32>` must be non-null
[INFO] [stdout] note: because `std::rc::Rc<std::cell::RefCell<nodelinkedlist::NodeInner<i32>>>` must be non-null (in this struct field)
[INFO] [stdout]    --> src/nodelinkedlist.rs:40:21
[INFO] [stdout]     |
[INFO] [stdout] 40  | pub struct Node<T> (StrongNode<T>);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^
[INFO] [stdout]     = note: because `std::ptr::NonNull<std::rc::RcBox<std::cell::RefCell<nodelinkedlist::NodeInner<i32>>>>` must be non-null
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout]     = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors; 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rustplay` (bin "rustplay") due to 4 previous errors; 26 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/nodelinkedlist.rs:327:48
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let it = &mut iter.into_iter() as &mut Iterator<Item=A>;
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let it = &mut iter.into_iter() as &mut dyn Iterator<Item=A>;
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n4`
[INFO] [stdout]    --> src/nodelinkedlist.rs:443:9
[INFO] [stdout]     |
[INFO] [stdout] 443 |     let n4 = Node::new(4);
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_n4`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locked`
[INFO] [stdout]    --> src/main.rs:184:24
[INFO] [stdout]     |
[INFO] [stdout] 184 |         Expr::Num { n, locked } => Ok(n),
[INFO] [stdout]     |                        ^^^^^^ help: try ignoring the field: `locked: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:225:37
[INFO] [stdout]     |
[INFO] [stdout] 225 |                         Expr::Num { n, locked } => {
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:233:29
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 Expr::Num { n, locked: true } => return Ok(()),
[INFO] [stdout]     |                             ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:241:37
[INFO] [stdout]     |
[INFO] [stdout] 241 |                         Expr::Num { n, locked } => {
[INFO] [stdout]     |                                     ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:249:29
[INFO] [stdout]     |
[INFO] [stdout] 249 |                 Expr::Num { n, locked: true } => return Ok(()),
[INFO] [stdout]     |                             ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]    --> src/main.rs:276:44
[INFO] [stdout]     |
[INFO] [stdout] 276 |             paren_mut_adjacent_num(&n, p, |num, locked| {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locked`
[INFO] [stdout]    --> src/main.rs:292:32
[INFO] [stdout]     |
[INFO] [stdout] 292 |                 Expr::Num { n, locked } => n,
[INFO] [stdout]     |                                ^^^^^^ help: try ignoring the field: `locked: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:302:65
[INFO] [stdout]     |
[INFO] [stdout] 302 |             paren_mut_adjacent_num(&close_paren, Paren::Close, |n, locked| {
[INFO] [stdout]     |                                                                 ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:305:63
[INFO] [stdout]     |
[INFO] [stdout] 305 |             paren_mut_adjacent_num(&open_paren, Paren::Open, |n, locked| {
[INFO] [stdout]     |                                                               ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/main.rs:385:25
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Expr::Num { n, locked } => true,
[INFO] [stdout]     |                         ^ help: try ignoring the field: `n: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `locked`
[INFO] [stdout]    --> src/main.rs:385:28
[INFO] [stdout]     |
[INFO] [stdout] 385 |             Expr::Num { n, locked } => true,
[INFO] [stdout]     |                            ^^^^^^ help: try ignoring the field: `locked: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_num`, `is_op`, and `is_paren` are never used
[INFO] [stdout]    --> src/main.rs:383:8
[INFO] [stdout]     |
[INFO] [stdout] 382 | impl<N: MyNum> Expr<N> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 383 |     fn is_num(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     fn is_op(&self) -> bool {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     fn is_paren(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert_before`, `split_after`, and `split_before` are never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl<T> Node<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn insert_before(&self, val: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn split_after(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn split_before(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `list_append_node`, `list_append`, `list_prepend_node`, and `list_prepend` are never used
[INFO] [stdout]    --> src/nodelinkedlist.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 250 | impl<T> Node<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 251 |     // list extension
[INFO] [stdout] 252 |     pub fn list_append_node(&self, node: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn list_append(&self, val: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn list_prepend_node(&self, node: &Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn list_prepend(&self, val: T) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `[Node<i32>; 4]` does not permit being left uninitialized
[INFO] [stdout]    --> src/nodelinkedlist.rs:347:37
[INFO] [stdout]     |
[INFO] [stdout] 347 |         let mut n: [Node<i32>; 4] = mem::uninitialized();
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     this code causes undefined behavior when executed
[INFO] [stdout]     |                                     help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: `nodelinkedlist::Node<i32>` must be non-null
[INFO] [stdout] note: because `std::rc::Rc<std::cell::RefCell<nodelinkedlist::NodeInner<i32>>>` must be non-null (in this struct field)
[INFO] [stdout]    --> src/nodelinkedlist.rs:40:21
[INFO] [stdout]     |
[INFO] [stdout] 40  | pub struct Node<T> (StrongNode<T>);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^
[INFO] [stdout]     = note: because `std::ptr::NonNull<std::rc::RcBox<std::cell::RefCell<nodelinkedlist::NodeInner<i32>>>>` must be non-null
[INFO] [stdout]     = note: raw pointers must be initialized
[INFO] [stdout]     = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors; 23 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rustplay` (bin "rustplay" test) due to 4 previous errors; 23 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "581b00f23cf1d5538cd2077a1b7544b26fe29039fa5bce2ff5989f30ed857aaf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "581b00f23cf1d5538cd2077a1b7544b26fe29039fa5bce2ff5989f30ed857aaf", kill_on_drop: false }`
[INFO] [stdout] 581b00f23cf1d5538cd2077a1b7544b26fe29039fa5bce2ff5989f30ed857aaf
