[INFO] cloning repository https://github.com/mfisk/unscan
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mfisk/unscan" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmfisk%2Funscan", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmfisk%2Funscan'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 64c99bfab64d1104304ef704b971e9019cc811a1
[INFO] documenting mfisk/unscan against 1.97.0-beta.6 for beta-rustdoc-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmfisk%2Funscan" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/mfisk/unscan
[INFO] finished tweaking git repo https://github.com/mfisk/unscan
[INFO] tweaked toml for git repo https://github.com/mfisk/unscan written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mfisk/unscan on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mfisk/unscan 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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded str_stack v0.1.1
[INFO] [stderr]   Downloaded subsetter v0.2.3
[INFO] [stderr]   Downloaded symbolic-common v12.18.3
[INFO] [stderr]   Downloaded pprof v0.14.1
[INFO] [stderr]   Downloaded avif-serialize v0.8.9
[INFO] [stderr]   Downloaded imgref v1.12.1
[INFO] [stderr]   Downloaded no_std_io2 v0.9.4
[INFO] [stderr]   Downloaded cpp_demangle v0.4.5
[INFO] [stderr]   Downloaded freetype-rs v0.38.0
[INFO] [stderr]   Downloaded kurbo v0.12.0
[INFO] [stderr]   Downloaded symbolic-demangle v12.18.3
[INFO] [stderr]   Downloaded skrifa v0.37.0
[INFO] [stderr]   Downloaded write-fonts v0.43.0
[INFO] [stderr]   Downloaded read-fonts v0.35.0
[INFO] [stderr]   Downloaded libz-sys v1.1.28
[INFO] [stderr]   Downloaded freetype-sys v0.23.0
[INFO] [stderr]   Downloaded lopdf v0.34.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ad2106f0d5452abb658fbc47c9d6790a72c4785cf31c07100a28f9d5cdfa7219
[INFO] running `Command { std: "docker" "start" "ad2106f0d5452abb658fbc47c9d6790a72c4785cf31c07100a28f9d5cdfa7219", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ad2106f0d5452abb658fbc47c9d6790a72c4785cf31c07100a28f9d5cdfa7219", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ad2106f0d5452abb658fbc47c9d6790a72c4785cf31c07100a28f9d5cdfa7219" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ad2106f0d5452abb658fbc47c9d6790a72c4785cf31c07100a28f9d5cdfa7219", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ad2106f0d5452abb658fbc47c9d6790a72c4785cf31c07100a28f9d5cdfa7219" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]     Checking bitflags v2.11.1
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking typenum v1.20.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]     Checking as-slice v0.2.1
[INFO] [stderr]    Compiling built v0.8.0
[INFO] [stderr]    Compiling av-scenechange v0.14.1
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking aligned v0.4.3
[INFO] [stderr]    Compiling pastey v0.1.1
[INFO] [stderr]     Checking hashbrown v0.17.1
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking no_std_io2 v0.9.4
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking y4m v0.8.0
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking anstyle-parse v1.0.0
[INFO] [stderr]     Checking bitstream-io v4.10.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling rav1e v0.8.1
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking itoa v1.0.18
[INFO] [stderr]     Checking anstyle v1.0.14
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking imgref v1.12.1
[INFO] [stderr]     Checking zune-core v0.5.1
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking new_debug_unreachable v1.0.6
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.2
[INFO] [stderr]     Checking powerfmt v0.2.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]     Checking colorchoice v1.0.5
[INFO] [stderr]     Checking zune-jpeg v0.5.15
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]     Checking kurbo v0.12.0
[INFO] [stderr]     Checking avif-serialize v0.8.9
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling libz-sys v1.1.28
[INFO] [stderr]    Compiling freetype-sys v0.23.0
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking time-core v0.1.8
[INFO] [stderr]     Checking fax v0.2.7
[INFO] [stderr]     Checking iana-time-zone v0.1.65
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking num-conv v0.2.1
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]     Checking clap_lex v1.1.0
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking pxfm v0.1.29
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking gif v0.14.2
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking core_maths v0.1.1
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking ttf-parser v0.24.1
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking rustc-hash v2.1.2
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]     Checking fastrand v2.4.1
[INFO] [stderr]     Checking unicode-bidi-mirroring v0.3.0
[INFO] [stderr]     Checking rangemap v1.7.1
[INFO] [stderr]     Checking unicode-ccc v0.3.0
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.10
[INFO] [stderr]     Checking unicode-properties v0.1.4
[INFO] [stderr]     Checking unicode-script v0.5.8
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking freetype-rs v0.38.0
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking memmap2 v0.9.11
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking lopdf v0.34.0
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling profiling-procmacros v1.0.18
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking profiling v1.0.18
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking font-types v0.10.1
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking rustybuzz v0.18.0
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking read-fonts v0.35.0
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking tiff v0.11.3
[INFO] [stderr]     Checking ravif v0.13.0
[INFO] [stderr]     Checking write-fonts v0.43.0
[INFO] [stderr]     Checking skrifa v0.37.0
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking subsetter v0.2.3
[INFO] [stderr]     Checking unprint v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]  Documenting unprint v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `NgramModel`
[INFO] [stdout]   --> src/ngram.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::classifier::{NgramModel, MmapNgramModel, ImageModel};
[INFO] [stdout]    |                         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/ocr.rs:211:5
[INFO] [stdout]     |
[INFO] [stdout] 210 |       return; // DISABLED — split_merged_lines handles the multi-line case
[INFO] [stdout]     |       ------ any code following this expression is unreachable
[INFO] [stdout] 211 | /     if lines.len() < 2 {
[INFO] [stdout] 212 | |         return;
[INFO] [stdout] 213 | |     }
[INFO] [stdout]     | |_____^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]    --> src/classifier.rs:334:13
[INFO] [stdout]     |
[INFO] [stdout] 334 |         use std::io::Write;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Font`
[INFO] [stdout]    --> src/char_render.rs:383:20
[INFO] [stdout]     |
[INFO] [stdout] 383 |     use ab_glyph::{Font, PxScale, point};
[INFO] [stdout]     |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lines`
[INFO] [stdout]    --> src/ocr.rs:209:32
[INFO] [stdout]     |
[INFO] [stdout] 209 | pub fn merge_overlapping_lines(lines: &mut Vec<TextLine>) {
[INFO] [stdout]     |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_lines`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_ink`
[INFO] [stdout]   --> src/segment.rs:71:23
[INFO] [stdout]    |
[INFO] [stdout] 71 |     _row_ink: &[f32], max_ink: f32,
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_ink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_ink`
[INFO] [stdout]    --> src/segment.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |     let initial_ink = ink_extent(&col_has_ink_strict, 0, w);
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_ink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/segment.rs:899:9
[INFO] [stdout]     |
[INFO] [stdout] 899 |     let p = seam_params();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `word_idx`
[INFO] [stdout]     --> src/segment.rs:1186:10
[INFO] [stdout]      |
[INFO] [stdout] 1186 |     for (word_idx, &(orig_idx, word)) in sorted.iter().enumerate() {
[INFO] [stdout]      |          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_word_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `0,1`
[INFO] [stdout]    --> src/features.rs:325:44
[INFO] [stdout]     |
[INFO] [stdout] 325 |     /// Counter centroid X, normalised to [0,1] within ink bbox.
[INFO] [stdout]     |                                            ^^^ no item named `0,1` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout]     = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `0,1`
[INFO] [stdout]    --> src/features.rs:327:44
[INFO] [stdout]     |
[INFO] [stdout] 327 |     /// Counter centroid Y, normalised to [0,1] within ink bbox.
[INFO] [stdout]     |                                            ^^^ no item named `0,1` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `i`
[INFO] [stdout]     --> src/segment.rs:1378:40
[INFO] [stdout]      |
[INFO] [stdout] 1378 | /// Each pair crop spans from boundary[i] to boundary[i+2], ink-cropped
[INFO] [stdout]      |                                        ^ no item named `i` in scope
[INFO] [stdout]      |
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `i`
[INFO] [stdout]     --> src/segment.rs:1387:22
[INFO] [stdout]      |
[INFO] [stdout] 1387 | /// Spans boundaries[i] to boundaries[i+n], with seam masking at the
[INFO] [stdout]      |                      ^ no item named `i` in scope
[INFO] [stdout]      |
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `FisherClassifier`
[INFO] [stdout]   --> src/classifier.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | //! - [`FisherClassifier`]: the original diagonal Fisher-weighted Euclidean
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ no item named `FisherClassifier` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `j`
[INFO] [stdout]   --> src/classifier.rs:71:25
[INFO] [stdout]    |
[INFO] [stdout] 71 |     /// Forward: output[j] = sum_i(input[i] * w[i*cols+j]) + b[j]
[INFO] [stdout]    |                         ^ no item named `j` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `i`
[INFO] [stdout]   --> src/classifier.rs:71:42
[INFO] [stdout]    |
[INFO] [stdout] 71 |     /// Forward: output[j] = sum_i(input[i] * w[i*cols+j]) + b[j]
[INFO] [stdout]    |                                          ^ no item named `i` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `j`
[INFO] [stdout]   --> src/classifier.rs:71:64
[INFO] [stdout]    |
[INFO] [stdout] 71 |     /// Forward: output[j] = sum_i(input[i] * w[i*cols+j]) + b[j]
[INFO] [stdout]    |                                                                ^ no item named `j` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `i`
[INFO] [stdout]   --> src/classifier.rs:86:30
[INFO] [stdout]    |
[INFO] [stdout] 86 | /// Dense matrix × vector: y[i] = sum_j(mat[i*FEAT_LEN + j] * x[j]).
[INFO] [stdout]    |                              ^ no item named `i` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `j`
[INFO] [stdout]   --> src/classifier.rs:86:65
[INFO] [stdout]    |
[INFO] [stdout] 86 | /// Dense matrix × vector: y[i] = sum_j(mat[i*FEAT_LEN + j] * x[j]).
[INFO] [stdout]    |                                                                 ^ no item named `j` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `FisherClassifier`
[INFO] [stdout]     --> src/classifier.rs:1201:14
[INFO] [stdout]      |
[INFO] [stdout] 1201 | /// Unlike [`FisherClassifier`] which uses a single global weight vector,
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^ no item named `FisherClassifier` in scope
[INFO] [stdout]      |
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `0,1`
[INFO] [stdout]     --> src/classifier.rs:2675:75
[INFO] [stdout]      |
[INFO] [stdout] 2675 | /// At query time, calls each child's `classify()`, normalizes scores to [0,1],
[INFO] [stdout]      |                                                                           ^^^ no item named `0,1` in scope
[INFO] [stdout]      |
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `1,2,1`
[INFO] [stdout]   --> src/compare_rasters.rs:77:43
[INFO] [stdout]    |
[INFO] [stdout] 77 | /// 3×3 Gaussian blur with σ≈0.7 (kernel [1,2,1]/4 separable).
[INFO] [stdout]    |                                           ^^^^^ no item named `1,2,1` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `j`
[INFO] [stdout]    --> src/train.rs:163:25
[INFO] [stdout]     |
[INFO] [stdout] 163 |     /// Forward: output[j] = sum_i(input[i] * w[i*cols+j]) + b[j]
[INFO] [stdout]     |                         ^ no item named `j` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `i`
[INFO] [stdout]    --> src/train.rs:163:42
[INFO] [stdout]     |
[INFO] [stdout] 163 |     /// Forward: output[j] = sum_i(input[i] * w[i*cols+j]) + b[j]
[INFO] [stdout]     |                                          ^ no item named `i` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `j`
[INFO] [stdout]    --> src/train.rs:163:64
[INFO] [stdout]     |
[INFO] [stdout] 163 |     /// Forward: output[j] = sum_i(input[i] * w[i*cols+j]) + b[j]
[INFO] [stdout]     |                                                                ^ no item named `j` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unclosed HTML tag `GlyphGroup`
[INFO] [stdout]   --> src/glyph_map.rs:30:18
[INFO] [stdout]    |
[INFO] [stdout] 30 |     /// seq → Vec<GlyphGroup>, where group index = glyph_id
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(rustdoc::invalid_html_tags)]` on by default
[INFO] [stdout] help: try marking as source code
[INFO] [stdout]    |
[INFO] [stdout] 30 |     /// seq → `Vec<GlyphGroup>`, where group index = glyph_id
[INFO] [stdout]    |               +               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/train.rs:750:9
[INFO] [stdout]     |
[INFO] [stdout] 750 |     let mut glyph_map = {
[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: `seq_to_idx`
[INFO] [stdout]    --> src/train.rs:727:9
[INFO] [stdout]     |
[INFO] [stdout] 727 |     let seq_to_idx: HashMap<Vec<char>, usize> = sequences.iter().enumerate()
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seq_to_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `delta_power`, `delta_scale_power`, `delta_row_weight`, and `delta_row_power` are never read
[INFO] [stdout]   --> src/segment.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct SeamParams {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     delta_power: f32,       // exponent on darkness delta
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 23 |     delta_scale_power: f32, // exponent on cur_dark/max_ink scaling
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     delta_row_weight: f32,  // row_ink multiplier in delta (0.0 = ignore)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     delta_row_power: f32,   // exponent on row_ink in delta
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_NGRAM_PROB` is never used
[INFO] [stdout]   --> src/font_match.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const MIN_NGRAM_PROB: f32 = 0.001;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_u32` is never used
[INFO] [stdout]    --> src/classifier.rs:432:4
[INFO] [stdout]     |
[INFO] [stdout] 432 | fn read_u32(data: &[u8], pos: &mut usize) -> Result<u32, String> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_f32s` is never used
[INFO] [stdout]    --> src/classifier.rs:440:4
[INFO] [stdout]     |
[INFO] [stdout] 440 | fn read_f32s(data: &[u8], pos: &mut usize, n: usize) -> Result<Vec<f32>, String> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&Vec<char>` instead of cloning the inner type
[INFO] [stdout]    --> src/classifier.rs:347:50
[INFO] [stdout]     |
[INFO] [stdout] 347 |         sorted_entries.sort_by_key(|(seq, _)| seq.clone());
[INFO] [stdout]     |                                                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 59.49s
[INFO] [stderr]    Generated /opt/rustwide/target/doc/unprint/index.html and 4 other files
[INFO] running `Command { std: "docker" "inspect" "ad2106f0d5452abb658fbc47c9d6790a72c4785cf31c07100a28f9d5cdfa7219", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "DOCS_RS=1" "-e" "RUSTC_BOOTSTRAP=1" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ad2106f0d5452abb658fbc47c9d6790a72c4785cf31c07100a28f9d5cdfa7219" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--document-private-items\"]" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling profiling-procmacros v1.0.18
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking profiling v1.0.18
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking font-types v0.10.1
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking rustybuzz v0.18.0
[INFO] [stderr]     Checking av-scenechange v0.14.1
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking zerocopy v0.8.48
[INFO] [stderr]     Checking read-fonts v0.35.0
[INFO] [stderr]     Checking rav1e v0.8.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking tiff v0.11.3
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking ravif v0.13.0
[INFO] [stderr]     Checking skrifa v0.37.0
[INFO] [stderr]     Checking write-fonts v0.43.0
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking subsetter v0.2.3
[INFO] [stderr]  Documenting unprint v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unresolved link to `0,1`
[INFO] [stdout]    --> src/features.rs:325:44
[INFO] [stdout]     |
[INFO] [stdout] 325 |     /// Counter centroid X, normalised to [0,1] within ink bbox.
[INFO] [stdout]     |                                            ^^^ no item named `0,1` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout]     = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `0,1`
[INFO] [stdout]    --> src/features.rs:327:44
[INFO] [stdout]     |
[INFO] [stdout] 327 |     /// Counter centroid Y, normalised to [0,1] within ink bbox.
[INFO] [stdout]     |                                            ^^^ no item named `0,1` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `i`
[INFO] [stdout]     --> src/segment.rs:1378:40
[INFO] [stdout]      |
[INFO] [stdout] 1378 | /// Each pair crop spans from boundary[i] to boundary[i+2], ink-cropped
[INFO] [stdout]      |                                        ^ no item named `i` in scope
[INFO] [stdout]      |
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `i`
[INFO] [stdout]     --> src/segment.rs:1387:22
[INFO] [stdout]      |
[INFO] [stdout] 1387 | /// Spans boundaries[i] to boundaries[i+n], with seam masking at the
[INFO] [stdout]      |                      ^ no item named `i` in scope
[INFO] [stdout]      |
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `FisherClassifier`
[INFO] [stdout]   --> src/classifier.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | //! - [`FisherClassifier`]: the original diagonal Fisher-weighted Euclidean
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ no item named `FisherClassifier` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `FisherClassifier`
[INFO] [stdout]     --> src/classifier.rs:1201:14
[INFO] [stdout]      |
[INFO] [stdout] 1201 | /// Unlike [`FisherClassifier`] which uses a single global weight vector,
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^ no item named `FisherClassifier` in scope
[INFO] [stdout]      |
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `0,1`
[INFO] [stdout]     --> src/classifier.rs:2675:75
[INFO] [stdout]      |
[INFO] [stdout] 2675 | /// At query time, calls each child's `classify()`, normalizes scores to [0,1],
[INFO] [stdout]      |                                                                           ^^^ no item named `0,1` in scope
[INFO] [stdout]      |
[INFO] [stdout]      = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `1,2,1`
[INFO] [stdout]   --> src/compare_rasters.rs:77:43
[INFO] [stdout]    |
[INFO] [stdout] 77 | /// 3×3 Gaussian blur with σ≈0.7 (kernel [1,2,1]/4 separable).
[INFO] [stdout]    |                                           ^^^^^ no item named `1,2,1` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `j`
[INFO] [stdout]    --> src/train.rs:163:25
[INFO] [stdout]     |
[INFO] [stdout] 163 |     /// Forward: output[j] = sum_i(input[i] * w[i*cols+j]) + b[j]
[INFO] [stdout]     |                         ^ no item named `j` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `i`
[INFO] [stdout]    --> src/train.rs:163:42
[INFO] [stdout]     |
[INFO] [stdout] 163 |     /// Forward: output[j] = sum_i(input[i] * w[i*cols+j]) + b[j]
[INFO] [stdout]     |                                          ^ no item named `i` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `j`
[INFO] [stdout]    --> src/train.rs:163:64
[INFO] [stdout]     |
[INFO] [stdout] 163 |     /// Forward: output[j] = sum_i(input[i] * w[i*cols+j]) + b[j]
[INFO] [stdout]     |                                                                ^ no item named `j` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unclosed HTML tag `GlyphGroup`
[INFO] [stdout]   --> src/glyph_map.rs:30:18
[INFO] [stdout]    |
[INFO] [stdout] 30 |     /// seq → Vec<GlyphGroup>, where group index = glyph_id
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(rustdoc::invalid_html_tags)]` on by default
[INFO] [stdout] help: try marking as source code
[INFO] [stdout]    |
[INFO] [stdout] 30 |     /// seq → `Vec<GlyphGroup>`, where group index = glyph_id
[INFO] [stdout]    |               +               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 33.54s
[INFO] [stderr]    Generated /opt/rustwide/target/doc/unprint/index.html
[INFO] running `Command { std: "docker" "inspect" "ad2106f0d5452abb658fbc47c9d6790a72c4785cf31c07100a28f9d5cdfa7219", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ad2106f0d5452abb658fbc47c9d6790a72c4785cf31c07100a28f9d5cdfa7219", kill_on_drop: false }`
[INFO] [stdout] ad2106f0d5452abb658fbc47c9d6790a72c4785cf31c07100a28f9d5cdfa7219
