[INFO] cloning repository https://github.com/HBLLM/hbllm-core
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/HBLLM/hbllm-core" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHBLLM%2Fhbllm-core", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHBLLM%2Fhbllm-core'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a785d970035a2e5a37903a7ffb7c918c1ba590c5
[INFO] testing HBLLM/hbllm-core against beta-2026-03-05 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHBLLM%2Fhbllm-core" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/HBLLM/hbllm-core
[INFO] finished tweaking git repo https://github.com/HBLLM/hbllm-core
[INFO] tweaked toml for git repo https://github.com/HBLLM/hbllm-core written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/HBLLM/hbllm-core on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/HBLLM/hbllm-core 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" "+beta-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 58c0a93fe7131698709fa06d6645d57dfce8f4ee434f25b0325a0df9c694a695
[INFO] running `Command { std: "docker" "start" "-a" "58c0a93fe7131698709fa06d6645d57dfce8f4ee434f25b0325a0df9c694a695", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "58c0a93fe7131698709fa06d6645d57dfce8f4ee434f25b0325a0df9c694a695", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "58c0a93fe7131698709fa06d6645d57dfce8f4ee434f25b0325a0df9c694a695", kill_on_drop: false }`
[INFO] [stdout] 58c0a93fe7131698709fa06d6645d57dfce8f4ee434f25b0325a0df9c694a695
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8fb6e35cd14d7ab12d487828461369b85f1c8cbd8b4eaae4228bf6fe224aa61b
[INFO] running `Command { std: "docker" "start" "-a" "8fb6e35cd14d7ab12d487828461369b85f1c8cbd8b4eaae4228bf6fe224aa61b", kill_on_drop: false }`
[INFO] [stderr]    Compiling target-lexicon v0.12.16
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling xxhash-rust v0.8.15
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling pyo3-build-config v0.20.3
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling pyo3-ffi v0.20.3
[INFO] [stderr]    Compiling pyo3 v0.20.3
[INFO] [stderr]    Compiling pyo3-macros-backend v0.20.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling pyo3-macros v0.20.3
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling hbllm-tokenizer v0.1.0 (/opt/rustwide/workdir/rust/tokenizer)
[INFO] [stderr]    Compiling hbllm-data-tools v0.1.0 (/opt/rustwide/workdir/rust/data_tools)
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rust/data_tools/src/python.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[pymethods]
[INFO] [stdout]    | -^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `PyClassImplCollector` is not local
[INFO] [stdout]    | `PyClassNewTextSignature` is not local
[INFO] [stdout]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 27 | impl PyDeduplicator {
[INFO] [stdout]    |      --------------
[INFO] [stdout]    |      |
[INFO] [stdout]    |      `PyDeduplicator` is not local
[INFO] [stdout]    |      `PyDeduplicator` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> rust/tokenizer/src/vocab.rs:179:17
[INFO] [stdout]     |
[INFO] [stdout] 179 |             let left = tokens[best_idx];
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> rust/tokenizer/src/vocab.rs:180:17
[INFO] [stdout]     |
[INFO] [stdout] 180 |             let right = tokens[best_idx + 1];
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rust/tokenizer/src/python.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[pymethods]
[INFO] [stdout]    | -^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `PyClassImplCollector` is not local
[INFO] [stdout]    | `PyClassNewTextSignature` is not local
[INFO] [stdout]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 14 | impl PyVocab {
[INFO] [stdout]    |      -------
[INFO] [stdout]    |      |
[INFO] [stdout]    |      `PyVocab` is not local
[INFO] [stdout]    |      `PyVocab` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rust/tokenizer/src/python.rs:58:1
[INFO] [stdout]    |
[INFO] [stdout] 58 | #[pymethods]
[INFO] [stdout]    | -^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `PyClassImplCollector` is not local
[INFO] [stdout]    | `PyClassNewTextSignature` is not local
[INFO] [stdout]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 59 | impl PyTrainer {
[INFO] [stdout]    |      ---------
[INFO] [stdout]    |      |
[INFO] [stdout]    |      `PyTrainer` is not local
[INFO] [stdout]    |      `PyTrainer` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.91s
[INFO] running `Command { std: "docker" "inspect" "8fb6e35cd14d7ab12d487828461369b85f1c8cbd8b4eaae4228bf6fe224aa61b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8fb6e35cd14d7ab12d487828461369b85f1c8cbd8b4eaae4228bf6fe224aa61b", kill_on_drop: false }`
[INFO] [stdout] 8fb6e35cd14d7ab12d487828461369b85f1c8cbd8b4eaae4228bf6fe224aa61b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 89ac5ef8394d14179639a0e9c3d1dfe43db7bd44cbf4ebfa5c70578a2790b2a2
[INFO] running `Command { std: "docker" "start" "-a" "89ac5ef8394d14179639a0e9c3d1dfe43db7bd44cbf4ebfa5c70578a2790b2a2", kill_on_drop: false }`
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rust/data_tools/src/python.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[pymethods]
[INFO] [stdout]    | -^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `PyClassImplCollector` is not local
[INFO] [stdout]    | `PyClassNewTextSignature` is not local
[INFO] [stdout]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 27 | impl PyDeduplicator {
[INFO] [stdout]    |      --------------
[INFO] [stdout]    |      |
[INFO] [stdout]    |      `PyDeduplicator` is not local
[INFO] [stdout]    |      `PyDeduplicator` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling hbllm-tokenizer v0.1.0 (/opt/rustwide/workdir/rust/tokenizer)
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> rust/tokenizer/src/vocab.rs:179:17
[INFO] [stdout]     |
[INFO] [stdout] 179 |             let left = tokens[best_idx];
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> rust/tokenizer/src/vocab.rs:180:17
[INFO] [stdout]     |
[INFO] [stdout] 180 |             let right = tokens[best_idx + 1];
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rust/tokenizer/src/python.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[pymethods]
[INFO] [stdout]    | -^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `PyClassImplCollector` is not local
[INFO] [stdout]    | `PyClassNewTextSignature` is not local
[INFO] [stdout]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 14 | impl PyVocab {
[INFO] [stdout]    |      -------
[INFO] [stdout]    |      |
[INFO] [stdout]    |      `PyVocab` is not local
[INFO] [stdout]    |      `PyVocab` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rust/tokenizer/src/python.rs:58:1
[INFO] [stdout]    |
[INFO] [stdout] 58 | #[pymethods]
[INFO] [stdout]    | -^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `PyClassImplCollector` is not local
[INFO] [stdout]    | `PyClassNewTextSignature` is not local
[INFO] [stdout]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 59 | impl PyTrainer {
[INFO] [stdout]    |      ---------
[INFO] [stdout]    |      |
[INFO] [stdout]    |      `PyTrainer` is not local
[INFO] [stdout]    |      `PyTrainer` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling hbllm-data-tools v0.1.0 (/opt/rustwide/workdir/rust/data_tools)
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rust/data_tools/src/python.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[pymethods]
[INFO] [stdout]    | -^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `PyClassImplCollector` is not local
[INFO] [stdout]    | `PyClassNewTextSignature` is not local
[INFO] [stdout]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 27 | impl PyDeduplicator {
[INFO] [stdout]    |      --------------
[INFO] [stdout]    |      |
[INFO] [stdout]    |      `PyDeduplicator` is not local
[INFO] [stdout]    |      `PyDeduplicator` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> rust/tokenizer/src/vocab.rs:179:17
[INFO] [stdout]     |
[INFO] [stdout] 179 |             let left = tokens[best_idx];
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> rust/tokenizer/src/vocab.rs:180:17
[INFO] [stdout]     |
[INFO] [stdout] 180 |             let right = tokens[best_idx + 1];
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rust/tokenizer/src/python.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[pymethods]
[INFO] [stdout]    | -^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `PyClassImplCollector` is not local
[INFO] [stdout]    | `PyClassNewTextSignature` is not local
[INFO] [stdout]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 14 | impl PyVocab {
[INFO] [stdout]    |      -------
[INFO] [stdout]    |      |
[INFO] [stdout]    |      `PyVocab` is not local
[INFO] [stdout]    |      `PyVocab` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rust/tokenizer/src/python.rs:58:1
[INFO] [stdout]    |
[INFO] [stdout] 58 | #[pymethods]
[INFO] [stdout]    | -^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `PyClassImplCollector` is not local
[INFO] [stdout]    | `PyClassNewTextSignature` is not local
[INFO] [stdout]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 59 | impl PyTrainer {
[INFO] [stdout]    |      ---------
[INFO] [stdout]    |      |
[INFO] [stdout]    |      `PyTrainer` is not local
[INFO] [stdout]    |      `PyTrainer` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.13s
[INFO] running `Command { std: "docker" "inspect" "89ac5ef8394d14179639a0e9c3d1dfe43db7bd44cbf4ebfa5c70578a2790b2a2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "89ac5ef8394d14179639a0e9c3d1dfe43db7bd44cbf4ebfa5c70578a2790b2a2", kill_on_drop: false }`
[INFO] [stdout] 89ac5ef8394d14179639a0e9c3d1dfe43db7bd44cbf4ebfa5c70578a2790b2a2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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-03-05" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 11bb5260e27430859a697291d0561f494bc2dedab402370f853d0bf57ba29c8a
[INFO] running `Command { std: "docker" "start" "-a" "11bb5260e27430859a697291d0561f494bc2dedab402370f853d0bf57ba29c8a", kill_on_drop: false }`
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> rust/data_tools/src/python.rs:26:1
[INFO] [stderr]    |
[INFO] [stderr] 26 | #[pymethods]
[INFO] [stderr]    | -^^^^^^^^^^^
[INFO] [stderr]    | |
[INFO] [stderr]    | `PyClassImplCollector` is not local
[INFO] [stderr]    | `PyClassNewTextSignature` is not local
[INFO] [stderr]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stderr] 27 | impl PyDeduplicator {
[INFO] [stderr]    |      --------------
[INFO] [stderr]    |      |
[INFO] [stderr]    |      `PyDeduplicator` is not local
[INFO] [stderr]    |      `PyDeduplicator` is not local
[INFO] [stderr]    |
[INFO] [stderr]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stderr]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `hbllm-data-tools` (lib) generated 1 warning
[INFO] [stderr] warning: unused variable: `left`
[INFO] [stderr]    --> rust/tokenizer/src/vocab.rs:179:17
[INFO] [stderr]     |
[INFO] [stderr] 179 |             let left = tokens[best_idx];
[INFO] [stderr]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `right`
[INFO] [stderr]    --> rust/tokenizer/src/vocab.rs:180:17
[INFO] [stderr]     |
[INFO] [stderr] 180 |             let right = tokens[best_idx + 1];
[INFO] [stderr]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_right`
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> rust/tokenizer/src/python.rs:13:1
[INFO] [stderr]    |
[INFO] [stderr] 13 | #[pymethods]
[INFO] [stderr]    | -^^^^^^^^^^^
[INFO] [stderr]    | |
[INFO] [stderr]    | `PyClassImplCollector` is not local
[INFO] [stderr]    | `PyClassNewTextSignature` is not local
[INFO] [stderr]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stderr] 14 | impl PyVocab {
[INFO] [stderr]    |      -------
[INFO] [stderr]    |      |
[INFO] [stderr]    |      `PyVocab` is not local
[INFO] [stderr]    |      `PyVocab` is not local
[INFO] [stderr]    |
[INFO] [stderr]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stderr]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> rust/tokenizer/src/python.rs:58:1
[INFO] [stderr]    |
[INFO] [stderr] 58 | #[pymethods]
[INFO] [stderr]    | -^^^^^^^^^^^
[INFO] [stderr]    | |
[INFO] [stderr]    | `PyClassImplCollector` is not local
[INFO] [stderr]    | `PyClassNewTextSignature` is not local
[INFO] [stderr]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stderr] 59 | impl PyTrainer {
[INFO] [stderr]    |      ---------
[INFO] [stderr]    |      |
[INFO] [stderr]    |      `PyTrainer` is not local
[INFO] [stderr]    |      `PyTrainer` is not local
[INFO] [stderr]    |
[INFO] [stderr]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `hbllm-tokenizer` (lib) generated 4 warnings (run `cargo fix --lib -p hbllm-tokenizer` to apply 2 suggestions)
[INFO] [stderr] warning: `hbllm-data-tools` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr] warning: `hbllm-tokenizer` (lib test) generated 4 warnings (4 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/hbllm_data_tools_rs-5b52c9f2c483b8fc)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test clean::tests::test_clean_text_passes ... ok
[INFO] [stdout] test clean::tests::test_clean_text_too_short ... ok
[INFO] [stdout] test clean::tests::test_full_pipeline ... ok
[INFO] [stdout] test clean::tests::test_html_entities ... ok
[INFO] [stdout] test clean::tests::test_remove_control_chars ... ok
[INFO] [stdout] test clean::tests::test_strip_html ... ok
[INFO] [stdout] test dedup::tests::test_empty_and_single ... ok
[INFO] [stdout] test dedup::tests::test_shingle_generation ... ok
[INFO] [stdout] test clean::tests::test_normalize_whitespace ... ok
[INFO] [stdout] test dedup::tests::test_similar_documents ... ok
[INFO] [stdout] test dedup::tests::test_identical_documents ... ok
[INFO] [stdout] test dedup::tests::test_unique_documents_preserved ... ok
[INFO] [stdout] test integration_tests::test_clean_then_dedup_pipeline ... ok
[INFO] [stdout] test dedup::tests::test_different_documents ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/hbllm_tokenizer_rs-c5725d301ad289a2)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test vocab::tests::test_encode_applies_merges ... ok
[INFO] [stdout] test vocab::tests::test_add_merge ... ok
[INFO] [stdout] test vocab::tests::test_encode_empty ... ok
[INFO] [stdout] test vocab::tests::test_encode_decode_roundtrip ... ok
[INFO] [stdout] test vocab::tests::test_new_vocab_has_256_bytes ... ok
[INFO] [stdout] test vocab::tests::test_special_tokens ... ok
[INFO] [stdout] test vocab::tests::test_decode_to_string ... ok
[INFO] [stdout] test trainer::tests::test_min_frequency_cutoff ... ok
[INFO] [stdout] test trainer::tests::test_frequent_pairs_merge_first ... ok
[INFO] [stdout] test trainer::tests::test_train_encode_roundtrip ... ok
[INFO] [stdout] test trainer::tests::test_train_basic ... ok
[INFO] [stdout] test tests::test_full_pipeline ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests hbllm_data_tools_rs
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test rust/data_tools/src/lib.rs - (line 16) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- rust/data_tools/src/lib.rs - (line 16) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `hbllm_data_tools` in this scope
[INFO] [stdout]   --> rust/data_tools/src/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use hbllm_data_tools::clean::{clean_text, CleanConfig};
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `hbllm_data_tools`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a crate or module with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 17 | use hbllm_data_tools_rs::clean::{clean_text, CleanConfig};
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `hbllm_data_tools` in this scope
[INFO] [stdout]   --> rust/data_tools/src/lib.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use hbllm_data_tools::dedup::{Deduplicator, DedupConfig};
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `hbllm_data_tools`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a crate or module with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 18 | use hbllm_data_tools_rs::dedup::{Deduplicator, DedupConfig};
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     rust/data_tools/src/lib.rs - (line 16)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `-p hbllm-data-tools --doc`
[INFO] running `Command { std: "docker" "inspect" "11bb5260e27430859a697291d0561f494bc2dedab402370f853d0bf57ba29c8a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "11bb5260e27430859a697291d0561f494bc2dedab402370f853d0bf57ba29c8a", kill_on_drop: false }`
[INFO] [stdout] 11bb5260e27430859a697291d0561f494bc2dedab402370f853d0bf57ba29c8a
