[INFO] fetching crate reductionml-core 0.1.0...
[INFO] testing reductionml-core-0.1.0 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate reductionml-core 0.1.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate reductionml-core 0.1.0
[INFO] finished tweaking crates.io crate reductionml-core 0.1.0
[INFO] tweaked toml for crates.io crate reductionml-core 0.1.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate reductionml-core 0.1.0 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "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" "+beta-2026-04-21" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 78 packages to latest compatible versions
[INFO] [stderr]       Adding derive_more v0.99.20 (available: v2.1.1)
[INFO] [stderr]       Adding flexbuffers v2.0.0 (available: v25.12.19)
[INFO] [stderr]       Adding itertools v0.10.5 (available: v0.14.0)
[INFO] [stderr]       Adding schemars v0.8.22 (available: v1.2.1)
[INFO] [stderr]       Adding serde_default v0.1.0 (available: v0.2.0)
[INFO] [stderr]       Adding serde_json_borrow v0.1.4 (available: v0.9.0)
[INFO] [stderr]       Adding thiserror v1.0.69 (available: v2.0.18)
[INFO] [stderr]       Adding twox-hash v1.6.3 (available: v2.1.2)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 465d65e33e1c8823a8638c65b441b8962ebed3c7d569dc2a09f931fc2faa0f50
[INFO] running `Command { std: "docker" "start" "-a" "465d65e33e1c8823a8638c65b441b8962ebed3c7d569dc2a09f931fc2faa0f50", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "465d65e33e1c8823a8638c65b441b8962ebed3c7d569dc2a09f931fc2faa0f50", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "465d65e33e1c8823a8638c65b441b8962ebed3c7d569dc2a09f931fc2faa0f50", kill_on_drop: false }`
[INFO] [stdout] 465d65e33e1c8823a8638c65b441b8962ebed3c7d569dc2a09f931fc2faa0f50
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e1765e895eb9ae4e3d4078df9642e5c810d6f7cad0c3102a6a589aa51b719f1e
[INFO] running `Command { std: "docker" "start" "-a" "e1765e895eb9ae4e3d4078df9642e5c810d6f7cad0c3102a6a589aa51b719f1e", kill_on_drop: false }`
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling erased-serde v0.4.10
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling typetag v0.2.21
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]    Compiling typetag-impl v0.2.21
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling inventory v0.3.24
[INFO] [stderr]    Compiling twox-hash v1.6.3
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling darling_core v0.13.4
[INFO] [stderr]    Compiling schemars_derive v0.8.22
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling serde_json_borrow v0.1.4
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling num_enum_derive v0.5.11
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]    Compiling serde_default v0.1.0
[INFO] [stderr]    Compiling num_enum v0.5.11
[INFO] [stderr]    Compiling flexbuffers v2.0.0
[INFO] [stderr]    Compiling reductionml-core v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/reduction_registry.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeMap, HashMap};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chunk`
[INFO] [stdout]   --> src/parsers/text_parser.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         chunk: &'a str,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredOutcome` is never constructed
[INFO] [stdout]    --> src/reductions/coin.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | struct PredOutcome(f32, f32);
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parsers/vw_text_parser.rs:284:32
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn parse_namespace_info(input: &str) -> Result<(&str, (ParsedNamespaceInfo, f32))> {
[INFO] [stdout]     |                                ^^^^             ^^^^   ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                |                |
[INFO] [stdout]     |                                |                the same lifetime is elided here
[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] 284 | fn parse_namespace_info(input: &str) -> Result<(&str, (ParsedNamespaceInfo<'_>, f32))> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parsers/vw_text_parser.rs:301:24
[INFO] [stdout]     |
[INFO] [stdout] 301 |     namespace_segment: &str,
[INFO] [stdout]     |                        ^^^^ the lifetime is elided here
[INFO] [stdout] 302 | ) -> Result<(ParsedNamespaceInfo, Vec<ParsedFeature>)> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |              |
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 302 | ) -> Result<(ParsedNamespaceInfo<'_>, Vec<ParsedFeature<'_>>)> {
[INFO] [stdout]     |                                 ++++                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/sparse_namespaced_features.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn iter(&self) -> NamespaceIterator {
[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] 92 |     pub fn iter(&self) -> NamespaceIterator<'_> {
[INFO] [stdout]    |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sparse_namespaced_features.rs:264:23
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn namespaces(&self) -> NamespacesIterator {
[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] 264 |     pub fn namespaces(&self) -> NamespacesIterator<'_> {
[INFO] [stdout]     |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.52s
[INFO] running `Command { std: "docker" "inspect" "e1765e895eb9ae4e3d4078df9642e5c810d6f7cad0c3102a6a589aa51b719f1e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e1765e895eb9ae4e3d4078df9642e5c810d6f7cad0c3102a6a589aa51b719f1e", kill_on_drop: false }`
[INFO] [stdout] e1765e895eb9ae4e3d4078df9642e5c810d6f7cad0c3102a6a589aa51b719f1e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 41f2b0e013017d09110d6ab2badb306d7f86a2769d5f7ba8e5065e3487795198
[INFO] running `Command { std: "docker" "start" "-a" "41f2b0e013017d09110d6ab2badb306d7f86a2769d5f7ba8e5065e3487795198", kill_on_drop: false }`
[INFO] [stderr]    Compiling reductionml-core v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/reduction_registry.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeMap, HashMap};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chunk`
[INFO] [stdout]   --> src/parsers/text_parser.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         chunk: &'a str,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredOutcome` is never constructed
[INFO] [stdout]    --> src/reductions/coin.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | struct PredOutcome(f32, f32);
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parsers/vw_text_parser.rs:284:32
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn parse_namespace_info(input: &str) -> Result<(&str, (ParsedNamespaceInfo, f32))> {
[INFO] [stdout]     |                                ^^^^             ^^^^   ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                |                |
[INFO] [stdout]     |                                |                the same lifetime is elided here
[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] 284 | fn parse_namespace_info(input: &str) -> Result<(&str, (ParsedNamespaceInfo<'_>, f32))> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parsers/vw_text_parser.rs:301:24
[INFO] [stdout]     |
[INFO] [stdout] 301 |     namespace_segment: &str,
[INFO] [stdout]     |                        ^^^^ the lifetime is elided here
[INFO] [stdout] 302 | ) -> Result<(ParsedNamespaceInfo, Vec<ParsedFeature>)> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |              |
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 302 | ) -> Result<(ParsedNamespaceInfo<'_>, Vec<ParsedFeature<'_>>)> {
[INFO] [stdout]     |                                 ++++                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/sparse_namespaced_features.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn iter(&self) -> NamespaceIterator {
[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] 92 |     pub fn iter(&self) -> NamespaceIterator<'_> {
[INFO] [stdout]    |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sparse_namespaced_features.rs:264:23
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn namespaces(&self) -> NamespacesIterator {
[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] 264 |     pub fn namespaces(&self) -> NamespacesIterator<'_> {
[INFO] [stdout]     |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/cb.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 197 |     for mut learner in learners.iter_mut() {
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> tests/cb.rs:243:16
[INFO] [stdout]     |
[INFO] [stdout] 243 |     fn context(i: i32) -> String {
[INFO] [stdout]     |                ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> tests/cb.rs:246:15
[INFO] [stdout]     |
[INFO] [stdout] 246 |     fn chosen(context: &str, i: i32) -> (i32, f32) {
[INFO] [stdout]     |               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> tests/cb.rs:249:10
[INFO] [stdout]     |
[INFO] [stdout] 249 |     fn r(context: &str, action: &str, i: i32) -> f32 {
[INFO] [stdout]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> tests/cb.rs:249:39
[INFO] [stdout]     |
[INFO] [stdout] 249 |     fn r(context: &str, action: &str, i: i32) -> f32 {
[INFO] [stdout]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> tests/cb.rs:297:15
[INFO] [stdout]     |
[INFO] [stdout] 297 |     fn chosen(context: &str, i: i32) -> (i32, f32) {
[INFO] [stdout]     |               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> tests/cb.rs:300:39
[INFO] [stdout]     |
[INFO] [stdout] 300 |     fn r(context: &str, action: &str, i: i32) -> f32 {
[INFO] [stdout]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> tests/cb.rs:360:15
[INFO] [stdout]     |
[INFO] [stdout] 360 |     fn chosen(context: &str, i: i32) -> (i32, f32) {
[INFO] [stdout]     |               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/reduction_registry.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeMap, HashMap};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chunk`
[INFO] [stdout]   --> src/parsers/text_parser.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         chunk: &'a str,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredOutcome` is never constructed
[INFO] [stdout]    --> src/reductions/coin.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | struct PredOutcome(f32, f32);
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parsers/vw_text_parser.rs:284:32
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn parse_namespace_info(input: &str) -> Result<(&str, (ParsedNamespaceInfo, f32))> {
[INFO] [stdout]     |                                ^^^^             ^^^^   ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                |                |
[INFO] [stdout]     |                                |                the same lifetime is elided here
[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] 284 | fn parse_namespace_info(input: &str) -> Result<(&str, (ParsedNamespaceInfo<'_>, f32))> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parsers/vw_text_parser.rs:301:24
[INFO] [stdout]     |
[INFO] [stdout] 301 |     namespace_segment: &str,
[INFO] [stdout]     |                        ^^^^ the lifetime is elided here
[INFO] [stdout] 302 | ) -> Result<(ParsedNamespaceInfo, Vec<ParsedFeature>)> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |              |
[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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 302 | ) -> Result<(ParsedNamespaceInfo<'_>, Vec<ParsedFeature<'_>>)> {
[INFO] [stdout]     |                                 ++++                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/sparse_namespaced_features.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn iter(&self) -> NamespaceIterator {
[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] 92 |     pub fn iter(&self) -> NamespaceIterator<'_> {
[INFO] [stdout]    |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sparse_namespaced_features.rs:264:23
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn namespaces(&self) -> NamespacesIterator {
[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] 264 |     pub fn namespaces(&self) -> NamespacesIterator<'_> {
[INFO] [stdout]     |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 6.25s
[INFO] running `Command { std: "docker" "inspect" "41f2b0e013017d09110d6ab2badb306d7f86a2769d5f7ba8e5065e3487795198", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "41f2b0e013017d09110d6ab2badb306d7f86a2769d5f7ba8e5065e3487795198", kill_on_drop: false }`
[INFO] [stdout] 41f2b0e013017d09110d6ab2badb306d7f86a2769d5f7ba8e5065e3487795198
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 814dbb44adbd7b5d74cdd38b9ed182ce8c82fe108de5dd539758f6a381a99a9d
[INFO] running `Command { std: "docker" "start" "-a" "814dbb44adbd7b5d74cdd38b9ed182ce8c82fe108de5dd539758f6a381a99a9d", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `HashMap`
[INFO] [stderr]  --> src/reduction_registry.rs:1:34
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::{BTreeMap, HashMap};
[INFO] [stderr]   |                                  ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `chunk`
[INFO] [stderr]   --> src/parsers/text_parser.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 35 |         chunk: &'a str,
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PredOutcome` is never constructed
[INFO] [stderr]    --> src/reductions/coin.rs:283:8
[INFO] [stderr]     |
[INFO] [stderr] 283 | struct PredOutcome(f32, f32);
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parsers/vw_text_parser.rs:284:32
[INFO] [stderr]     |
[INFO] [stderr] 284 | fn parse_namespace_info(input: &str) -> Result<(&str, (ParsedNamespaceInfo, f32))> {
[INFO] [stderr]     |                                ^^^^             ^^^^   ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                                |                |
[INFO] [stderr]     |                                |                the same lifetime is elided here
[INFO] [stderr]     |                                the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 284 | fn parse_namespace_info(input: &str) -> Result<(&str, (ParsedNamespaceInfo<'_>, f32))> {
[INFO] [stderr]     |                                                                           ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parsers/vw_text_parser.rs:301:24
[INFO] [stderr]     |
[INFO] [stderr] 301 |     namespace_segment: &str,
[INFO] [stderr]     |                        ^^^^ the lifetime is elided here
[INFO] [stderr] 302 | ) -> Result<(ParsedNamespaceInfo, Vec<ParsedFeature>)> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |              |
[INFO] [stderr]     |              the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 302 | ) -> Result<(ParsedNamespaceInfo<'_>, Vec<ParsedFeature<'_>>)> {
[INFO] [stderr]     |                                 ++++                   ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/sparse_namespaced_features.rs:92:17
[INFO] [stderr]    |
[INFO] [stderr] 92 |     pub fn iter(&self) -> NamespaceIterator {
[INFO] [stderr]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 92 |     pub fn iter(&self) -> NamespaceIterator<'_> {
[INFO] [stderr]    |                                            ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/sparse_namespaced_features.rs:264:23
[INFO] [stderr]     |
[INFO] [stderr] 264 |     pub fn namespaces(&self) -> NamespacesIterator {
[INFO] [stderr]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                       |
[INFO] [stderr]     |                       the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 264 |     pub fn namespaces(&self) -> NamespacesIterator<'_> {
[INFO] [stderr]     |                                                   ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `reductionml-core` (lib) generated 7 warnings (run `cargo fix --lib -p reductionml-core` to apply 6 suggestions)
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/cb.rs:197:9
[INFO] [stderr]     |
[INFO] [stderr] 197 |     for mut learner in learners.iter_mut() {
[INFO] [stderr]     |         ----^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> tests/cb.rs:243:16
[INFO] [stderr]     |
[INFO] [stderr] 243 |     fn context(i: i32) -> String {
[INFO] [stderr]     |                ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]    --> tests/cb.rs:246:15
[INFO] [stderr]     |
[INFO] [stderr] 246 |     fn chosen(context: &str, i: i32) -> (i32, f32) {
[INFO] [stderr]     |               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]    --> tests/cb.rs:249:10
[INFO] [stderr]     |
[INFO] [stderr] 249 |     fn r(context: &str, action: &str, i: i32) -> f32 {
[INFO] [stderr]     |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> tests/cb.rs:249:39
[INFO] [stderr]     |
[INFO] [stderr] 249 |     fn r(context: &str, action: &str, i: i32) -> f32 {
[INFO] [stderr]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]    --> tests/cb.rs:297:15
[INFO] [stderr]     |
[INFO] [stderr] 297 |     fn chosen(context: &str, i: i32) -> (i32, f32) {
[INFO] [stderr]     |               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> tests/cb.rs:300:39
[INFO] [stderr]     |
[INFO] [stderr] 300 |     fn r(context: &str, action: &str, i: i32) -> f32 {
[INFO] [stderr]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]    --> tests/cb.rs:360:15
[INFO] [stderr]     |
[INFO] [stderr] 360 |     fn chosen(context: &str, i: i32) -> (i32, f32) {
[INFO] [stderr]     |               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: `reductionml-core` (test "cb") generated 8 warnings (run `cargo fix --test "cb" -p reductionml-core` to apply 8 suggestions)
[INFO] [stderr] warning: `reductionml-core` (lib test) generated 7 warnings (7 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/reductionml_core-aa663f5f6ae9af06)
[INFO] [stdout] 
[INFO] [stdout] running 28 tests
[INFO] [stdout] test parsers::json_parser::test::json_parse_simple ... ok
[INFO] [stdout] test dense_weights::tests::weights_equality ... ok
[INFO] [stdout] test dense_weights::tests::weights_roundtrip ... ok
[INFO] [stdout] test parsers::json_parser::test::json_parse_cb ... ok
[INFO] [stdout] test dense_weights::tests::test_num_bits_to_represent ... ok
[INFO] [stdout] test object_pool::tests::test_pool ... ok
[INFO] [stdout] test reductions::cb_explore_adf_squarecb::tests::test_enforce_minimum_probability ... ok
[INFO] [stdout] test reductions::cb_explore_adf_squarecb::tests::test_enforce_minimum_probability_all_zeros_and_dont_consider ... ok
[INFO] [stdout] test reductions::cb_explore_adf_squarecb::tests::test_enforce_minimum_probability_bug_incl_zero ... ok
[INFO] [stdout] test reductions::cb_explore_adf_squarecb::tests::test_enforce_minimum_probability_no_zeros ... ok
[INFO] [stdout] test reductions::cb_explore_adf_squarecb::tests::test_enforce_minimum_probability_uniform ... ok
[INFO] [stdout] test reductions::cb_explore_adf_squarecb::tests::test_enforce_minimum_probability_uniform1 ... ok
[INFO] [stdout] test reductions::cb_explore_adf_squarecb::tests::test_enforce_minimum_probability_equal_to_amt ... ok
[INFO] [stdout] test reductions::cb_explore_adf_squarecb::tests::test_enforce_minimum_probability_zero_epsilon_consider ... ok
[INFO] [stdout] test reductions::cb_explore_adf_squarecb::tests::test_enforce_minimum_probability_uniform_unsorted ... ok
[INFO] [stdout] test reductions::cb_explore_adf_squarecb::tests::test_enforce_minimum_probability_zero_epsilon_dont_consider ... ok
[INFO] [stdout] test reductions::coin::tests::test_coin_betting_predict ... ok
[INFO] [stdout] test workspace::tests::test_create_workspace ... ok
[INFO] [stdout] test parsers::vw_text_parser::tests::chunk_singleline ... ok
[INFO] [stdout] test parsers::vw_text_parser::tests::chunk_multiline ... ok
[INFO] [stdout] test reductions::cb_explore_adf_squarecb::tests::test_enforce_minimum_probability_all_zeros_and_consider ... ok
[INFO] [stdout] test parsers::dsjson_parser::test::extract_dsjson_test_chain_hash ... ok
[INFO] [stdout] test reductions::coin::tests::test_learning_const ... ok
[INFO] [stdout] test reductions::cb_explore_adf_squarecb::tests::test_enforce_minimum_probability_bad_range - should panic ... ok
[INFO] [stdout] test reductions::coin::tests::test_learning ... ok
[INFO] [stdout] test reductions::cb_explore_adf_squarecb::tests::test_enforce_minimum_probability_uniform2 ... ok
[INFO] [stdout] test reductions::coin::tests::test_learning_linear ... ok
[INFO] [stdout] test reductions::coin::tests::test_learning_quadratic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.73s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cb.rs (/opt/rustwide/target/debug/deps/cb-498f64e828d267da)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test test_greedy_predict ... ok
[INFO] [stdout] test test_greedy_predict_json ... ok
[INFO] [stdout] test test_cb_stationary_deterministic_actions_with_personalization ... ok
[INFO] [stdout] test test_cb_stationary_deterministic_actions_single_context ... ok
[INFO] [stderr]    Doc-tests reductionml_core
[INFO] [stdout] test test_cb_nonstationary_deterministic_actions_with_personalization ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.58s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "814dbb44adbd7b5d74cdd38b9ed182ce8c82fe108de5dd539758f6a381a99a9d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "814dbb44adbd7b5d74cdd38b9ed182ce8c82fe108de5dd539758f6a381a99a9d", kill_on_drop: false }`
[INFO] [stdout] 814dbb44adbd7b5d74cdd38b9ed182ce8c82fe108de5dd539758f6a381a99a9d
