[INFO] fetching crate mandible-extract 0.6.1...
[INFO] documenting mandible-extract-0.6.1 against da3f5c31e5535b3dc210067de660a45784ae1e9c for pr-162169
[INFO] extracting crate mandible-extract 0.6.1 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate mandible-extract 0.6.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate mandible-extract 0.6.1
[INFO] tweaked toml for crates.io crate mandible-extract 0.6.1 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate mandible-extract 0.6.1 on toolchain da3f5c31e5535b3dc210067de660a45784ae1e9c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate mandible-extract 0.6.1 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" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] cd35f431f83fb2184257242059f6171754629b5afac6f89b44feccc0808f4125
[INFO] running `Command { std: "docker" "start" "cd35f431f83fb2184257242059f6171754629b5afac6f89b44feccc0808f4125", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cd35f431f83fb2184257242059f6171754629b5afac6f89b44feccc0808f4125", 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" "cd35f431f83fb2184257242059f6171754629b5afac6f89b44feccc0808f4125" "/opt/rustwide/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cd35f431f83fb2184257242059f6171754629b5afac6f89b44feccc0808f4125", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "cd35f431f83fb2184257242059f6171754629b5afac6f89b44feccc0808f4125" "/opt/rustwide/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling pest v2.8.8
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]     Checking getrandom v0.4.3
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling peg-runtime v0.8.6
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking console v0.16.4
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking cached_proc_macro_types v0.1.1
[INFO] [stderr]     Checking similar v2.7.0
[INFO] [stderr]     Checking arrayvec v0.7.8
[INFO] [stderr]     Checking winnow v0.6.26
[INFO] [stderr]     Checking utf8-chars v3.0.7
[INFO] [stderr]     Checking directories v5.0.1
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]    Compiling peg-macros v0.8.6
[INFO] [stderr]    Compiling pest_meta v2.8.8
[INFO] [stderr]     Checking peg v0.8.6
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling pest_generator v2.8.8
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling pest_derive v2.8.8
[INFO] [stderr]     Checking insta v1.48.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking mandible-core v0.6.1
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling cached_proc_macro v0.27.0
[INFO] [stderr]    Compiling bon-macros v3.9.3
[INFO] [stderr]     Checking cached v0.59.0
[INFO] [stderr]     Checking bon v3.9.3
[INFO] [stderr]     Checking brush-parser v0.4.0
[INFO] [stderr]  Documenting mandible-extract v0.6.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unresolved link to `spawn`
[INFO] [stdout]    --> src/exec/canary.rs:100:65
[INFO] [stdout]     |
[INFO] [stdout] 100 | /// devpts machinery does not hand back a path directly — see [`spawn`]) is
[INFO] [stdout]     |                                                                 ^^^^^ no item named `spawn` 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 `canary::PathCanary`
[INFO] [stdout]   --> src/exec/containment.rs:63:43
[INFO] [stdout]    |
[INFO] [stdout] 63 | //!   namespace does not shrink it, and [`canary::PathCanary`] exists
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^ no item named `canary` in scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `0`
[INFO] [stdout]   --> src/exec/policy.rs:89:14
[INFO] [stdout]    |
[INFO] [stdout] 89 |     /// argv[0], the tool path itself).
[INFO] [stdout]    |              ^ no item named `0` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `run_inert` links to private item `super::reap`
[INFO] [stdout]    --> src/exec/spawn.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 | ///   see [`super::reap`] for the mechanism and for the 622 leaked
[INFO] [stdout]     |             ^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout]     = note: `#[warn(rustdoc::private_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `is_help_only_probe` links to private item `HELP_ONLY_PROBE`
[INFO] [stdout]    --> src/exec/spawn.rs:762:48
[INFO] [stdout]     |
[INFO] [stdout] 762 | /// True if `tool_path` names a program from [`HELP_ONLY_PROBE`], i.e. one
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `crate::help_text::probe_help_text_reporting_flag`
[INFO] [stdout]   --> src/tier.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 |     /// ([`crate::help_text::probe_help_text_reporting_flag`]) — a
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `probe_help_text_reporting_flag` in module `help_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `BsdTerse` links to private item `help_text_signature`
[INFO] [stdout]   --> src/framework/mod.rs:76:11
[INFO] [stdout]    |
[INFO] [stdout] 76 |     /// [`help_text_signature`]'s doc comment on it).
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `identify_from_artifact` links to private item `artifact_cache`
[INFO] [stdout]    --> src/framework/mod.rs:191:7
[INFO] [stdout]     |
[INFO] [stdout] 191 | /// [`artifact_cache`]) so a tree with many nodes over the same tool only
[INFO] [stdout]     |       ^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `help_text` links to private item `profile::FrameworkProfile`
[INFO] [stdout]   --> src/help_text/mod.rs:22:24
[INFO] [stdout]    |
[INFO] [stdout] 22 | //! result selects a [`profile::FrameworkProfile`] that
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `help_text` links to private item `sections::parse_with_profile`
[INFO] [stdout]   --> src/help_text/mod.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | //! [`sections::parse_with_profile`] consults; `None` (unidentified) runs
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `help_text` links to private item `build_node`
[INFO] [stdout]   --> src/help_text/mod.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 | //! no profile. See [`build_node`] for the three-level staged degradation
[INFO] [stdout]    |                       ^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `confession` links to private item `match_unquoted_table_row`
[INFO] [stdout]   --> src/help_text/confession.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | //!   [`match_unquoted_table_row`] recognizes `<flag> <word> -- <description>`,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `confession` links to private item `match_flag_value_row`
[INFO] [stdout]   --> src/help_text/confession.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | //!   [`match_flag_value_row`] recognizes `<flag>=<opener>...`, requiring the
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `confession` links to private item `FOLLOWABLE_WORDS`
[INFO] [stdout]   --> src/help_text/confession.rs:71:7
[INFO] [stdout]    |
[INFO] [stdout] 71 | //! [`FOLLOWABLE_WORDS`], and no new [`crate::exec::InertArgv`]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `confession` links to private item `match_flag_value_row`
[INFO] [stdout]   --> src/help_text/confession.rs:86:42
[INFO] [stdout]    |
[INFO] [stdout] 86 | //! warnings"* — names exactly the row [`match_flag_value_row`] already
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `expandable` links to private item `FOLLOWABLE_WORDS`
[INFO] [stdout]    --> src/help_text/confession.rs:346:37
[INFO] [stdout]     |
[INFO] [stdout] 346 | /// detected names a word outside [`FOLLOWABLE_WORDS`].
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `7`
[INFO] [stdout]    --> src/help_text/grammar.rs:927:64
[INFO] [stdout]     |
[INFO] [stdout] 927 | /// shape; the existing one already closes the ambiguity spec [7] Tier B
[INFO] [stdout]     |                                                                ^ no item named `7` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `looks_like_bracket_flag_row` links to private item `bracket_flag_row_content`
[INFO] [stdout]    --> src/help_text/grammar.rs:986:28
[INFO] [stdout]     |
[INFO] [stdout] 986 | /// True if `input` is a [`bracket_flag_row_content`] row — a whole
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `parse_flag_alternation` links to private item `is_bare_flag_spelling`
[INFO] [stdout]     --> src/help_text/grammar.rs:1271:11
[INFO] [stdout]      |
[INFO] [stdout] 1271 | ///    ([`is_bare_flag_spelling`]) — this is the condition that keeps a value
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]      |
[INFO] [stdout]      = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `parse_bundled_shorts` links to private item `is_bundle_member_char`
[INFO] [stdout]     --> src/help_text/grammar.rs:1549:11
[INFO] [stdout]      |
[INFO] [stdout] 1549 | ///    ([`is_bundle_member_char`]).
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]      |
[INFO] [stdout]      = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `parse_bundled_shorts` links to private item `MIN_CLUSTER_MEMBERS`
[INFO] [stdout]     --> src/help_text/grammar.rs:1550:29
[INFO] [stdout]      |
[INFO] [stdout] 1550 | /// 3. There are at least [`MIN_CLUSTER_MEMBERS`] of them.
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]      |
[INFO] [stdout]      = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `parse_bundled_shorts` links to private item `members_are_distinct`
[INFO] [stdout]     --> src/help_text/grammar.rs:1551:38
[INFO] [stdout]      |
[INFO] [stdout] 1551 | /// 4. They are pairwise distinct ([`members_are_distinct`]).
[INFO] [stdout]      |                                      ^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]      |
[INFO] [stdout]      = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `parse_bundled_shorts` links to private item `cluster_is_ordered`
[INFO] [stdout]     --> src/help_text/grammar.rs:1552:46
[INFO] [stdout]      |
[INFO] [stdout] 1552 | /// 5. Either the cluster is alphabetized ([`cluster_is_ordered`]) or the
[INFO] [stdout]      |                                              ^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]      |
[INFO] [stdout]      = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `parse_bundled_shorts` links to private item `swallowed_members_mix_case`
[INFO] [stdout]     --> src/help_text/grammar.rs:1553:43
[INFO] [stdout]      |
[INFO] [stdout] 1553 | ///    swallowed half spans both cases ([`swallowed_members_mix_case`]) — two
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]      |
[INFO] [stdout]      = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `super::sections::scan_flags_block`
[INFO] [stdout]   --> src/help_text/profile.rs:17:46
[INFO] [stdout]    |
[INFO] [stdout] 17 | //! `--opt <value>` / `--opt[=VALUE]`, and [`super::sections::scan_flags_block`]'s
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `scan_flags_block` in module `sections`
[INFO] [stdout]    |
[INFO] [stdout] help: there's a similarly named item `scan_bare_block`
[INFO] [stdout]    |
[INFO] [stdout] 17 - //! `--opt <value>` / `--opt[=VALUE]`, and [`super::sections::scan_flags_block`]'s
[INFO] [stdout] 17 + //! `--opt <value>` / `--opt[=VALUE]`, and [`super::sections::scan_bare_block`]'s
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `super::sections::extract_positionals`
[INFO] [stdout]   --> src/help_text/profile.rs:79:36
[INFO] [stdout]    |
[INFO] [stdout] 79 |     /// this is a *declaration*. [`super::sections::extract_positionals`] can
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `extract_positionals` in module `sections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `super::sections::scan_argparse_subparsers`
[INFO] [stdout]    --> src/help_text/profile.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 120 |     /// (see [`super::sections::scan_argparse_subparsers`]'s doc comment for
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `scan_argparse_subparsers` in module `sections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `super::sections::scan_argparse_subparsers`
[INFO] [stdout]    --> src/help_text/profile.rs:143:11
[INFO] [stdout]     |
[INFO] [stdout] 143 |     /// [`super::sections::scan_argparse_subparsers`]'s doc comment) — this
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `scan_argparse_subparsers` in module `sections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `MIN_COLUMN_GAP_SPACES` links to private item `find_multi_space_gap`
[INFO] [stdout]    --> src/help_text/sections/entry.rs:387:43
[INFO] [stdout]     |
[INFO] [stdout] 387 | /// merely decorating it — the boundary [`find_multi_space_gap`] cuts at.
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `MIN_COLUMN_GAP_SPACES` links to private item `spelling_run`
[INFO] [stdout]    --> src/help_text/sections/entry.rs:398:45
[INFO] [stdout]     |
[INFO] [stdout] 398 | /// **That shape is now recovered** — see [`spelling_run`], which reads a
[INFO] [stdout]     |                                             ^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `is_option_list_placeholder` links to private item `OPTION_LIST_PLACEHOLDERS`
[INFO] [stdout]    --> src/help_text/sections/entry.rs:886:7
[INFO] [stdout]     |
[INFO] [stdout] 886 | /// [`OPTION_LIST_PLACEHOLDERS`].
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `MAX_SKIPPED_LEADING_ROWS`
[INFO] [stdout]   --> src/help_text/sections/flag_rows.rs:83:7
[INFO] [stdout]    |
[INFO] [stdout] 83 | /// [`MAX_SKIPPED_LEADING_ROWS`] of them, and there must still be a real
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^ no item named `MAX_SKIPPED_LEADING_ROWS` 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 `grammar::strip_short_abbrev_suffix`
[INFO] [stdout]    --> src/help_text/sections/flag_rows.rs:335:26
[INFO] [stdout]     |
[INFO] [stdout] 335 | /// (already closed by [`grammar::strip_short_abbrev_suffix`] before this
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `grammar` in scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `grammar::strip_short_abbrev_suffix`
[INFO] [stdout]    --> src/help_text/sections/flag_rows.rs:403:10
[INFO] [stdout]     |
[INFO] [stdout] 403 | ///    [`grammar::strip_short_abbrev_suffix`]'s own doc comment already
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `grammar` in scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `HashSet`
[INFO] [stdout]    --> src/help_text/sections/heading.rs:116:20
[INFO] [stdout]     |
[INFO] [stdout] 116 | /// The returned [`HashSet`] names, by 0-indexed line number in the
[INFO] [stdout]     |                    ^^^^^^^ no item named `HashSet` 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 `super::grammar::is_dash_underline_token`
[INFO] [stdout]    --> src/help_text/sections/heading.rs:388:21
[INFO] [stdout]     |
[INFO] [stdout] 388 | /// real heading. [`super::grammar::is_dash_underline_token`] already keeps
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `grammar` in module `sections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `super::grammar::is_dash_underline_token`
[INFO] [stdout]    --> src/help_text/sections/heading.rs:407:41
[INFO] [stdout]     |
[INFO] [stdout] 407 | /// this shape at all, and before the [`super::grammar::is_dash_underline_token`]
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `grammar` in module `sections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `is_man_page_banner` links to private item `looks_like_man_page`
[INFO] [stdout]    --> src/help_text/sections/heading.rs:728:29
[INFO] [stdout]     |
[INFO] [stdout] 728 | /// Public wrapper around [`looks_like_man_page`], for the coverage harness
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `super::build_node`
[INFO] [stdout]    --> src/help_text/sections/heading.rs:740:44
[INFO] [stdout]     |
[INFO] [stdout] 740 | /// `CommandNode::unparsed` line, set by [`super::build_node`] precisely
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^ no item named `build_node` in module `sections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `Flag`
[INFO] [stdout]    --> src/help_text/sections/heading.rs:991:39
[INFO] [stdout]     |
[INFO] [stdout] 991 | /// Emit a flags block's entries as [`Flag`]s. `group` is `None` for a
[INFO] [stdout]     |                                       ^^^^ no item named `Flag` 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 `scan_flags_block`
[INFO] [stdout]   --> src/help_text/sections/layout.rs:71:36
[INFO] [stdout]    |
[INFO] [stdout] 71 | /// same character offset before [`scan_flags_block`] reads that cell as an
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^ no item named `scan_flags_block` 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 `spelling_run`
[INFO] [stdout]   --> src/help_text/sections/layout.rs:73:24
[INFO] [stdout]    |
[INFO] [stdout] 73 | /// description (see [`spelling_run`]).
[INFO] [stdout]    |                        ^^^^^^^^^^^^ no item named `spelling_run` 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 `is_spelling_only_cell`
[INFO] [stdout]   --> src/help_text/sections/layout.rs:82:14
[INFO] [stdout]    |
[INFO] [stdout] 82 | /// alone ([`is_spelling_only_cell`]) already excludes prose: every cell in
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^ no item named `is_spelling_only_cell` 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 `block_has_aligned_spelling_column`
[INFO] [stdout]    --> src/help_text/sections/layout.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 | ///   [`block_has_aligned_spelling_column`]'s second arm — this same count
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `block_has_aligned_spelling_column` 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 `cells_name_the_same_value`
[INFO] [stdout]    --> src/help_text/sections/layout.rs:101:33
[INFO] [stdout]     |
[INFO] [stdout] 101 | ///   of *value-paired* rows ([`cells_name_the_same_value`]) — does not
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `cells_name_the_same_value` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `is_value_placeholder_only` links to private item `fields_in_line`
[INFO] [stdout]    --> src/help_text/sections/layout.rs:187:19
[INFO] [stdout]     |
[INFO] [stdout] 187 | /// cell alone. [`fields_in_line`]'s own fold-while-bare rule is what
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `documents_bare_boolean`
[INFO] [stdout]   --> src/help_text/sections/repair.rs:47:28
[INFO] [stdout]    |
[INFO] [stdout] 47 | ///    same character** ([`documents_bare_boolean`]);
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^ no item named `documents_bare_boolean` 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 `try_short`
[INFO] [stdout]    --> src/help_text/sections/repair.rs:641:7
[INFO] [stdout]     |
[INFO] [stdout] 641 | /// [`try_short`] reads `-help` as `-h` plus the glued value `"elp"`,
[INFO] [stdout]     |       ^^^^^^^^^ no item named `try_short` 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 `disabled`
[INFO] [stdout]    --> src/help_text/sections/repair.rs:690:36
[INFO] [stdout]     |
[INFO] [stdout] 690 | /// `-p`/`-pedantic-errors` (all "[disabled]", a description repeated 505
[INFO] [stdout]     |                                    ^^^^^^^^ no item named `disabled` 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 `crate::merge::pair_aliases`
[INFO] [stdout]    --> src/help_text/sections/repair.rs:693:18
[INFO] [stdout]     |
[INFO] [stdout] 693 | /// code path, [`crate::merge::pair_aliases`]'s own `complementary`
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `merge` in module `mandible_extract`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `super::profile::FrameworkProfile::argparse_subparser_quirk`
[INFO] [stdout]   --> src/help_text/sections/scan.rs:96:7
[INFO] [stdout]    |
[INFO] [stdout] 96 | /// [`super::profile::FrameworkProfile::argparse_subparser_quirk`]'s doc
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `profile` in module `sections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `super::profile::FrameworkProfile::comma_separated_command_list`
[INFO] [stdout]    --> src/help_text/sections/scan.rs:159:7
[INFO] [stdout]     |
[INFO] [stdout] 159 | /// [`super::profile::FrameworkProfile::comma_separated_command_list`]).
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `profile` in module `sections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `looks_like_unlabeled_synopsis_line` links to private item `looks_like_usage_fragment`
[INFO] [stdout]    --> src/help_text/sections/usage.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 | ///   [`looks_like_usage_fragment`] keys on for usage-block continuation.
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `looks_like_unlabeled_synopsis_line` links to private item `is_prose_sentence`
[INFO] [stdout]    --> src/help_text/sections/usage.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | ///   [`is_prose_sentence`]'s own test (period-terminated, several words,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `mandible_core::merge::flag_identity`
[INFO] [stdout]    --> src/help_text/sections/usage.rs:853:43
[INFO] [stdout]     |
[INFO] [stdout] 853 | /// (not requiring the same combination [`mandible_core::merge::flag_identity`]
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `merge` in module `mandible_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `Flag`
[INFO] [stdout]    --> src/help_text/sections/usage.rs:887:46
[INFO] [stdout]     |
[INFO] [stdout] 887 | /// single-character boolean switches, one [`Flag`] per member, or — for
[INFO] [stdout]     |                                              ^^^^ no item named `Flag` 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 `Flag`
[INFO] [stdout]    --> src/help_text/sections/usage.rs:925:34
[INFO] [stdout]     |
[INFO] [stdout] 925 | /// Turn a [`FlagSpec`] into a [`Flag`] and push it, unless the spec
[INFO] [stdout]     |                                  ^^^^ no item named `Flag` 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 `parse`
[INFO] [stdout]    --> src/help_text/sections/mod.rs:319:22
[INFO] [stdout]     |
[INFO] [stdout] 319 | /// Same engine as [`parse`], but consulting `profile`'s framework-specific
[INFO] [stdout]     |                      ^^^^^ no item named `parse` 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 `parse`
[INFO] [stdout]    --> src/help_text/sections/mod.rs:321:68
[INFO] [stdout]     |
[INFO] [stdout] 321 | /// §7 Tier B step 1, "framework identified"). `None` reproduces [`parse`]'s
[INFO] [stdout]     |                                                                    ^^^^^ no item named `parse` in scope
[INFO] [stdout]     |
[INFO] [stdout]     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `parse_bundled_shorts` links to private item `build_node`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           man-page-banner check this tier already uses at [`build_node`]'s
[INFO] [stdout]                                                            ^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `parse_bundled_shorts` links to private item `is_bundle_member_char`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]              ([`is_bundle_member_char`]).
[INFO] [stdout]                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `parse_bundled_shorts` links to private item `MIN_CLUSTER_MEMBERS`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           3. There are at least [`MIN_CLUSTER_MEMBERS`] of them.
[INFO] [stdout]                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `parse_bundled_shorts` links to private item `members_are_distinct`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           4. They are pairwise distinct ([`members_are_distinct`]).
[INFO] [stdout]                                           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `parse_bundled_shorts` links to private item `cluster_is_ordered`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           5. Either the cluster is alphabetized ([`cluster_is_ordered`]) or the
[INFO] [stdout]                                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `parse_bundled_shorts` links to private item `swallowed_members_mix_case`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]              swallowed half spans both cases ([`swallowed_members_mix_case`]) — two
[INFO] [stdout]                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `parse_flag_alternation` links to private item `is_bare_flag_spelling`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]              ([`is_bare_flag_spelling`]) — this is the condition that keeps a value
[INFO] [stdout]                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `is_value_placeholder_only` links to private item `fields_in_line`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           cell alone. [`fields_in_line`]'s own fold-while-bare rule is what
[INFO] [stdout]                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `MIN_COLUMN_GAP_SPACES` links to private item `find_multi_space_gap`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           merely decorating it — the boundary [`find_multi_space_gap`] cuts at.
[INFO] [stdout]                                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `MIN_COLUMN_GAP_SPACES` links to private item `spelling_run`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           **That shape is now recovered** — see [`spelling_run`], which reads a
[INFO] [stdout]                                                    ^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `looks_like_unlabeled_synopsis_line` links to private item `looks_like_usage_fragment`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]             [`looks_like_usage_fragment`] keys on for usage-block continuation.
[INFO] [stdout]              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `looks_like_unlabeled_synopsis_line` links to private item `is_prose_sentence`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]             [`is_prose_sentence`]'s own test (period-terminated, several words,
[INFO] [stdout]              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `looks_like_bracket_flag_row` links to private item `bracket_flag_row_content`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           True if `input` is a [`bracket_flag_row_content`] row — a whole
[INFO] [stdout]                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `is_option_list_placeholder` links to private item `OPTION_LIST_PLACEHOLDERS`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the link appears in this line:
[INFO] [stdout]           
[INFO] [stdout]           [`OPTION_LIST_PLACEHOLDERS`].
[INFO] [stdout]            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `raw_help_with_probe` links to private item `raw_probe_streams_confession_aware`
[INFO] [stdout]    --> src/help_text/mod.rs:657:9
[INFO] [stdout]     |
[INFO] [stdout] 657 | ///   [`raw_probe_streams_confession_aware`], a **separate, display-only**
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `raw_help_with_probe` links to private item `format_streams`
[INFO] [stdout]    --> src/help_text/mod.rs:659:39
[INFO] [stdout]     |
[INFO] [stdout] 659 | ///   them early, and hands them to [`format_streams`] to render — labelled
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `raw_help_with_probe` links to private item `not_attested_fallback`
[INFO] [stdout]    --> src/help_text/mod.rs:669:40
[INFO] [stdout]     |
[INFO] [stdout] 669 | ///   name isn't `heading_attested`, [`not_attested_fallback`] explains that
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `pick_stream` links to private item `RawStreams`
[INFO] [stdout]    --> src/help_text/mod.rs:692:13
[INFO] [stdout]     |
[INFO] [stdout] 692 | /// — see [`RawStreams`] and [`raw_help_with_probe`]'s doc comment.
[INFO] [stdout]     |             ^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `pick_stream` links to private item `looks_like_help_output`
[INFO] [stdout]    --> src/help_text/mod.rs:700:13
[INFO] [stdout]     |
[INFO] [stdout] 700 | /// using [`looks_like_help_output`] (D1.3.1) to judge each stream on its
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `completion_script` links to private item `names_a_completion_subcommand`
[INFO] [stdout]   --> src/completion_script/mod.rs:74:7
[INFO] [stdout]    |
[INFO] [stdout] 74 | //! [`names_a_completion_subcommand`] is the gate: this tier asks the tool
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `native` links to private item `populate_subcommands`
[INFO] [stdout]   --> src/native/mod.rs:30:43
[INFO] [stdout]    |
[INFO] [stdout] 30 | //! user's data, not with the tool. See [`populate_subcommands`] for the
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `native` links to private item `DEPTH_CAP`
[INFO] [stdout]   --> src/native/mod.rs:51:61
[INFO] [stdout]    |
[INFO] [stdout] 51 | //! the same illusory subtree forever. A path deeper than [`DEPTH_CAP`] is
[INFO] [stdout]    |                                                             ^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `native` links to private item `CobraEvidence`
[INFO] [stdout]   --> src/native/mod.rs:93:22
[INFO] [stdout]    |
[INFO] [stdout] 93 | //! measured cost. [`CobraEvidence`] is the seam that makes this testable
[INFO] [stdout]    |                      ^^^^^^^^^^^^^ this item is private
[INFO] [stdout]    |
[INFO] [stdout]    = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `new` links to private item `ArtifactEvidence`
[INFO] [stdout]    --> src/native/mod.rs:192:23
[INFO] [stdout]     |
[INFO] [stdout] 192 |     /// file-backed [`ArtifactEvidence`] check — what every production
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ this item is private
[INFO] [stdout]     |
[INFO] [stdout]     = note: this link resolves only because you passed `--document-private-items`, but will break without
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unresolved link to `detect`
[INFO] [stdout]   --> src/overrides/mod.rs:19:64
[INFO] [stdout]    |
[INFO] [stdout] 19 | //! The pipeline never depends on an override file existing: [`detect`]
[INFO] [stdout]    |                                                                ^^^^^^ no item named `detect` in scope
[INFO] [stdout]    |
[INFO] [stdout]    = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]     --> src/help_text/grammar.rs:1564:1
[INFO] [stdout]      |
[INFO] [stdout] 1564 | / pub fn parse_bundled_shorts(token: &str) -> Option<Vec<char>> {
[INFO] [stdout] 1565 | |     let members = token.strip_prefix('-')?;
[INFO] [stdout] 1566 | |     if members.chars().count() < MIN_CLUSTER_MEMBERS {
[INFO] [stdout] 1567 | |         return None;
[INFO] [stdout] ...    |
[INFO] [stdout] 1579 | |     Some(members.chars().collect())
[INFO] [stdout] 1580 | | }
[INFO] [stdout]      | |_^
[INFO] [stdout]      |
[INFO] [stdout]      = help: the way this is parsed might change in the future
[INFO] [stdout]      = help: starts near `Re-exported for the coverage harness (spec §13.1, [M-16]): the pure`
[INFO] [stdout]      = help: ends near `flags, returning its members in source order.`
[INFO] [stdout]      = note: `#[deny(rustdoc::unportable_markdown)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]     --> src/help_text/grammar.rs:1564:1
[INFO] [stdout]      |
[INFO] [stdout] 1564 | / pub fn parse_bundled_shorts(token: &str) -> Option<Vec<char>> {
[INFO] [stdout] 1565 | |     let members = token.strip_prefix('-')?;
[INFO] [stdout] 1566 | |     if members.chars().count() < MIN_CLUSTER_MEMBERS {
[INFO] [stdout] 1567 | |         return None;
[INFO] [stdout] ...    |
[INFO] [stdout] 1579 | |     Some(members.chars().collect())
[INFO] [stdout] 1580 | | }
[INFO] [stdout]      | |_^
[INFO] [stdout]      |
[INFO] [stdout]      = help: the way this is parsed might change in the future
[INFO] [stdout]      = help: starts near `Read `token` — one whitespace-delimited synopsis token, brackets already`
[INFO] [stdout]      = help: ends near `Read `token` — one whitespace-delimited synopsis token, brackets already`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]     --> src/help_text/grammar.rs:1274:1
[INFO] [stdout]      |
[INFO] [stdout] 1274 | / pub fn parse_flag_alternation(input: &str) -> Option<FlagAlternation> {
[INFO] [stdout] 1275 | |     let trimmed = input.trim_start();
[INFO] [stdout] 1276 | |     let mut chars = trimmed.chars();
[INFO] [stdout] 1277 | |     let open = chars.next()?;
[INFO] [stdout] ...    |
[INFO] [stdout] 1294 | |     })
[INFO] [stdout] 1295 | | }
[INFO] [stdout]      | |_^
[INFO] [stdout]      |
[INFO] [stdout]      = help: the way this is parsed might change in the future
[INFO] [stdout]      = help: starts near `Re-exported for `xtask/src/alternation.rs`, the `brace-alternation-flag``
[INFO] [stdout]      = help: ends near `anchored at `input`'s first non-whitespace character.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]     --> src/help_text/grammar.rs:1274:1
[INFO] [stdout]      |
[INFO] [stdout] 1274 | / pub fn parse_flag_alternation(input: &str) -> Option<FlagAlternation> {
[INFO] [stdout] 1275 | |     let trimmed = input.trim_start();
[INFO] [stdout] 1276 | |     let mut chars = trimmed.chars();
[INFO] [stdout] 1277 | |     let open = chars.next()?;
[INFO] [stdout] ...    |
[INFO] [stdout] 1294 | |     })
[INFO] [stdout] 1295 | | }
[INFO] [stdout]      | |_^
[INFO] [stdout]      |
[INFO] [stdout]      = help: the way this is parsed might change in the future
[INFO] [stdout]      = help: starts near `Read `input` as a delimited alternation of bare flag spellings —`
[INFO] [stdout]      = help: ends near `Read `input` as a delimited alternation of bare flag spellings —`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]     --> src/help_text/grammar.rs:1236:1
[INFO] [stdout]      |
[INFO] [stdout] 1236 | / pub struct FlagAlternation {
[INFO] [stdout] 1237 | |     /// The opening delimiter actually used, `'{'` or `'['`. Callers that
[INFO] [stdout] 1238 | |     /// only trust one of the two filter on this rather than on a re-parse.
[INFO] [stdout] 1239 | |     pub open: char,
[INFO] [stdout] ...    |
[INFO] [stdout] 1256 | |     pub rest: String,
[INFO] [stdout] 1257 | | }
[INFO] [stdout]      | |_^
[INFO] [stdout]      |
[INFO] [stdout]      = help: the way this is parsed might change in the future
[INFO] [stdout]      = help: starts near `Re-exported for `xtask/src/alternation.rs`, the `brace-alternation-flag``
[INFO] [stdout]      = help: ends near `the closing delimiter — see [`parse_flag_alternation`].`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]     --> src/help_text/grammar.rs:1236:1
[INFO] [stdout]      |
[INFO] [stdout] 1236 | / pub struct FlagAlternation {
[INFO] [stdout] 1237 | |     /// The opening delimiter actually used, `'{'` or `'['`. Callers that
[INFO] [stdout] 1238 | |     /// only trust one of the two filter on this rather than on a re-parse.
[INFO] [stdout] 1239 | |     pub open: char,
[INFO] [stdout] ...    |
[INFO] [stdout] 1256 | |     pub rest: String,
[INFO] [stdout] 1257 | | }
[INFO] [stdout]      | |_^
[INFO] [stdout]      |
[INFO] [stdout]      = help: the way this is parsed might change in the future
[INFO] [stdout]      = help: starts near `A delimited alternation of bare flag spellings, plus whatever followed`
[INFO] [stdout]      = help: ends near `A delimited alternation of bare flag spellings, plus whatever followed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/layout.rs:151:1
[INFO] [stdout]     |
[INFO] [stdout] 151 | / pub fn cells(line: &str) -> Vec<(usize, String)> {
[INFO] [stdout] 152 | |     let chars: Vec<char> = line.chars().collect();
[INFO] [stdout] 153 | |     let n = chars.len();
[INFO] [stdout] 154 | |     let is_gap_start = |i: usize| -> bool {
[INFO] [stdout] ...   |
[INFO] [stdout] 178 | |     out
[INFO] [stdout] 179 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Re-exported for `xtask/src/misattribution.rs`: the multi-column-table`
[INFO] [stdout]     = help: ends near `cell.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/layout.rs:151:1
[INFO] [stdout]     |
[INFO] [stdout] 151 | / pub fn cells(line: &str) -> Vec<(usize, String)> {
[INFO] [stdout] 152 | |     let chars: Vec<char> = line.chars().collect();
[INFO] [stdout] 153 | |     let n = chars.len();
[INFO] [stdout] 154 | |     let is_gap_start = |i: usize| -> bool {
[INFO] [stdout] ...   |
[INFO] [stdout] 178 | |     out
[INFO] [stdout] 179 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Split `line` into cells at a column gap — a run of two or more spaces,`
[INFO] [stdout]     = help: ends near `Split `line` into cells at a column gap — a run of two or more spaces,`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/layout.rs:135:1
[INFO] [stdout]     |
[INFO] [stdout] 135 | / pub fn first_word(s: &str) -> &str {
[INFO] [stdout] 136 | |     s.split_whitespace().next().unwrap_or("")
[INFO] [stdout] 137 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Re-exported for `xtask/src/misattribution.rs`: the multi-column-table`
[INFO] [stdout]     = help: ends near `string.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/layout.rs:135:1
[INFO] [stdout]     |
[INFO] [stdout] 135 | / pub fn first_word(s: &str) -> &str {
[INFO] [stdout] 136 | |     s.split_whitespace().next().unwrap_or("")
[INFO] [stdout] 137 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `First whitespace-delimited word of `s`, or `""` for an all-whitespace`
[INFO] [stdout]     = help: ends near `First whitespace-delimited word of `s`, or `""` for an all-whitespace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/layout.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | / pub fn is_flag_shaped(token: &str) -> bool {
[INFO] [stdout] 111 | |     if let Some(rest) = token.strip_prefix("+|-") {
[INFO] [stdout] 112 | |         return rest.chars().next().is_some_and(is_flag_char);
[INFO] [stdout] ...   |
[INFO] [stdout] 123 | |     false
[INFO] [stdout] 124 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Re-exported for `xtask/src/misattribution.rs`: the multi-column-table`
[INFO] [stdout]     = help: ends near `short prefix (`lsof`'s own `-?`).`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/layout.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | / pub fn is_flag_shaped(token: &str) -> bool {
[INFO] [stdout] 111 | |     if let Some(rest) = token.strip_prefix("+|-") {
[INFO] [stdout] 112 | |         return rest.chars().next().is_some_and(is_flag_char);
[INFO] [stdout] ...   |
[INFO] [stdout] 123 | |     false
[INFO] [stdout] 124 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `True if `token` is shaped like a flag spelling: `-x`, `--word`, `+x`, or`
[INFO] [stdout]     = help: ends near `True if `token` is shaped like a flag spelling: `-x`, `--word`, `+x`, or`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/layout.rs:190:1
[INFO] [stdout]     |
[INFO] [stdout] 190 | / pub fn is_value_placeholder_only(s: &str) -> bool {
[INFO] [stdout] 191 | |     let mut words = s.split_whitespace();
[INFO] [stdout] 192 | |     let Some(word) = words.next() else {
[INFO] [stdout] 193 | |         return true;
[INFO] [stdout] ...   |
[INFO] [stdout] 208 | |     bracketed || all_upper || upper_name_with_decoration
[INFO] [stdout] 209 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Re-exported for `xtask/src/misattribution.rs`: the multi-column-table`
[INFO] [stdout]     = help: ends near `needs to catch the *unambiguous* placeholders, not every one.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/layout.rs:190:1
[INFO] [stdout]     |
[INFO] [stdout] 190 | / pub fn is_value_placeholder_only(s: &str) -> bool {
[INFO] [stdout] 191 | |     let mut words = s.split_whitespace();
[INFO] [stdout] 192 | |     let Some(word) = words.next() else {
[INFO] [stdout] 193 | |         return true;
[INFO] [stdout] ...   |
[INFO] [stdout] 208 | |     bracketed || all_upper || upper_name_with_decoration
[INFO] [stdout] 209 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `True if `s` is nothing but a single value-placeholder token — bracket-`
[INFO] [stdout]     = help: ends near `True if `s` is nothing but a single value-placeholder token — bracket-`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/entry.rs:403:1
[INFO] [stdout]     |
[INFO] [stdout] 403 | pub const MIN_COLUMN_GAP_SPACES: usize = 2;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Re-exported for `xtask/src/misattribution.rs`: the multi-column-table`
[INFO] [stdout]     = help: ends near `merely decorating it — the boundary [`find_multi_space_gap`] cuts at.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/entry.rs:403:1
[INFO] [stdout]     |
[INFO] [stdout] 403 | pub const MIN_COLUMN_GAP_SPACES: usize = 2;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `The fewest consecutive spaces that separate a row's columns rather than`
[INFO] [stdout]     = help: ends near `The fewest consecutive spaces that separate a row's columns rather than`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/help_text/sections/layout.rs:68:1
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub const MIN_COLUMN_RECURRENCE: usize = 3;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Re-exported for `xtask/src/misattribution.rs`: the multi-column-table`
[INFO] [stdout]    = help: ends near `different offsets. `3` sits strictly between the two.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/help_text/sections/layout.rs:68:1
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub const MIN_COLUMN_RECURRENCE: usize = 3;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Minimum number of distinct entry lines a secondary column offset must`
[INFO] [stdout]    = help: ends near `Minimum number of distinct entry lines a secondary column offset must`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/emit.rs:360:1
[INFO] [stdout]     |
[INFO] [stdout] 360 | / pub fn strip_optional_modifier_suffix(name: &str) -> &str {
[INFO] [stdout] 361 | |     let Some(open) = name.find('[') else {
[INFO] [stdout] 362 | |         return name;
[INFO] [stdout] 363 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 379 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Re-exported for `xtask/src/existence.rs`, and for exactly the reason the`
[INFO] [stdout]     = help: ends near `name token: `m[ab]` names the command `m`, `r[ab][f][u]` names `r`.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/emit.rs:360:1
[INFO] [stdout]     |
[INFO] [stdout] 360 | / pub fn strip_optional_modifier_suffix(name: &str) -> &str {
[INFO] [stdout] 361 | |     let Some(open) = name.find('[') else {
[INFO] [stdout] 362 | |         return name;
[INFO] [stdout] 363 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 379 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Strip trailing bracketed optional-modifier groups from a command entry's`
[INFO] [stdout]     = help: ends near `Strip trailing bracketed optional-modifier groups from a command entry's`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/usage.rs:120:1
[INFO] [stdout]     |
[INFO] [stdout] 120 | / pub fn looks_like_unlabeled_synopsis_line(t: &str, name: &str) -> bool {
[INFO] [stdout] 121 | |     let Some(rest) = t.strip_prefix(name) else {
[INFO] [stdout] 122 | |         return false;
[INFO] [stdout] 123 | |     };
[INFO] [stdout] ...   |
[INFO] [stdout] 131 | |     rest.contains(['[', '<', '{']) && !is_prose_sentence(rest)
[INFO] [stdout] 132 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `What the oracle does **not** borrow is the block-continuation rule — how`
[INFO] [stdout]     = help: ends near `with no marker anywhere.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/help_text/sections/usage.rs:86:1
[INFO] [stdout]    |
[INFO] [stdout] 86 | / pub fn starts_with_name_prefixed_usage(t: &str, name: &str) -> bool {
[INFO] [stdout] 87 | |     if name.is_empty() {
[INFO] [stdout] 88 | |         return false;
[INFO] [stdout] ...  |
[INFO] [stdout] 92 | |         .is_some_and(starts_with_usage_prefix)
[INFO] [stdout] 93 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `What the oracle does **not** borrow is the block-continuation rule — how`
[INFO] [stdout]    = help: ends near ``nfsidmap`'s `nfsidmap: Usage: nfsidmap [-vh] [-c || ...]`.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/help_text/sections/usage.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | / pub fn starts_with_or_marker(t: &str) -> bool {
[INFO] [stdout] 36 | |     t.as_bytes()
[INFO] [stdout] 37 | |         .get(..3)
[INFO] [stdout] 38 | |         .map(|b| b.eq_ignore_ascii_case(b"or:"))
[INFO] [stdout] 39 | |         .unwrap_or(false)
[INFO] [stdout] 40 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `What the oracle does **not** borrow is the block-continuation rule — how`
[INFO] [stdout]    = help: ends near `fact that `du` can be invoked either way.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/help_text/sections/usage.rs:60:1
[INFO] [stdout]    |
[INFO] [stdout] 60 | / pub fn starts_with_tool_name(t: &str, name: &str) -> bool {
[INFO] [stdout] 61 | |     if name.is_empty() {
[INFO] [stdout] 62 | |         return false;
[INFO] [stdout] ...  |
[INFO] [stdout] 68 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `What the oracle does **not** borrow is the block-continuation rule — how`
[INFO] [stdout]    = help: ends near ``usage:` marker, by literally repeating itself —`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/help_text/sections/usage.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | / pub fn starts_with_usage_prefix(t: &str) -> bool {
[INFO] [stdout] 16 | |     t.as_bytes()
[INFO] [stdout] 17 | |         .get(..6)
[INFO] [stdout] 18 | |         .map(|b| b.eq_ignore_ascii_case(b"usage:"))
[INFO] [stdout] 19 | |         .unwrap_or(false)
[INFO] [stdout] 20 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `What the oracle does **not** borrow is the block-continuation rule — how`
[INFO] [stdout]    = help: ends near `True if `t` starts with `"usage:"`, case-insensitively.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/grammar.rs:989:1
[INFO] [stdout]     |
[INFO] [stdout] 989 | / pub fn looks_like_bracket_flag_row(input: &str) -> bool {
[INFO] [stdout] 990 | |     bracket_flag_row_content(input).is_some()
[INFO] [stdout] 991 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Re-exported for `xtask/src/existence.rs`, alongside`
[INFO] [stdout]     = help: ends near `opens with a dash.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/grammar.rs:989:1
[INFO] [stdout]     |
[INFO] [stdout] 989 | / pub fn looks_like_bracket_flag_row(input: &str) -> bool {
[INFO] [stdout] 990 | |     bracket_flag_row_content(input).is_some()
[INFO] [stdout] 991 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `True if `input` is a [`bracket_flag_row_content`] row — a whole`
[INFO] [stdout]     = help: ends near `True if `input` is a [`bracket_flag_row_content`] row — a whole`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/entry.rs:887:1
[INFO] [stdout]     |
[INFO] [stdout] 887 | / pub fn is_option_list_placeholder(name: &str) -> bool {
[INFO] [stdout] 888 | |     OPTION_LIST_PLACEHOLDERS
[INFO] [stdout] 889 | |         .iter()
[INFO] [stdout] 890 | |         .any(|p| name.eq_ignore_ascii_case(p))
[INFO] [stdout] 891 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Re-exported for `xtask/src/existence.rs`'s `option_list_slot`, and for`
[INFO] [stdout]     = help: ends near `[`OPTION_LIST_PLACEHOLDERS`].`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/help_text/sections/entry.rs:887:1
[INFO] [stdout]     |
[INFO] [stdout] 887 | / pub fn is_option_list_placeholder(name: &str) -> bool {
[INFO] [stdout] 888 | |     OPTION_LIST_PLACEHOLDERS
[INFO] [stdout] 889 | |         .iter()
[INFO] [stdout] 890 | |         .any(|p| name.eq_ignore_ascii_case(p))
[INFO] [stdout] 891 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `True when `name` (already unwrapped from its notation) is one of`
[INFO] [stdout]     = help: ends near `True when `name` (already unwrapped from its notation) is one of`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not document `mandible-extract`
[INFO] running `Command { std: "docker" "inspect" "cd35f431f83fb2184257242059f6171754629b5afac6f89b44feccc0808f4125", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cd35f431f83fb2184257242059f6171754629b5afac6f89b44feccc0808f4125", kill_on_drop: false }`
[INFO] [stdout] cd35f431f83fb2184257242059f6171754629b5afac6f89b44feccc0808f4125
