[INFO] fetching crate program_tools 0.8.1...
[INFO] documenting program_tools-0.8.1 against da3f5c31e5535b3dc210067de660a45784ae1e9c for pr-162169
[INFO] extracting crate program_tools 0.8.1 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate program_tools 0.8.1
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate program_tools 0.8.1
[INFO] tweaked toml for crates.io crate program_tools 0.8.1 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate program_tools 0.8.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 program_tools 0.8.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] [stderr] warning: Cargo.toml: `lints.rust.unsafe-code` is deprecated in favor of `lints.rust.unsafe_code` and will not work in a future edition
[INFO] [stderr] warning: `program_tools` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 4c207e2b58a2016cdc34c7fa0734d4e1e3faeb26dc449818e1857b3c4168aeb9
[INFO] running `Command { std: "docker" "start" "4c207e2b58a2016cdc34c7fa0734d4e1e3faeb26dc449818e1857b3c4168aeb9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4c207e2b58a2016cdc34c7fa0734d4e1e3faeb26dc449818e1857b3c4168aeb9", 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" "4c207e2b58a2016cdc34c7fa0734d4e1e3faeb26dc449818e1857b3c4168aeb9" "/opt/rustwide/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4c207e2b58a2016cdc34c7fa0734d4e1e3faeb26dc449818e1857b3c4168aeb9", 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" "4c207e2b58a2016cdc34c7fa0734d4e1e3faeb26dc449818e1857b3c4168aeb9" "/opt/rustwide/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unsafe-code` is deprecated in favor of `lints.rust.unsafe_code` and will not work in a future edition
[INFO] [stderr] warning: `program_tools` (manifest) generated 1 warning
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling konst_macro_rules v0.2.19
[INFO] [stderr]    Compiling component_model_types v0.56.0
[INFO] [stderr]    Compiling clone_dyn_types v0.50.0
[INFO] [stderr]    Compiling interval_adapter v0.44.0
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling convert_case v0.11.0
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.34
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling cfg_aliases v0.2.2
[INFO] [stderr]    Compiling derive_tools v0.71.1
[INFO] [stderr]    Compiling konst v0.2.20
[INFO] [stderr]    Compiling itertools v0.15.0
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling collection_tools v0.71.1
[INFO] [stderr]    Compiling former_types v2.44.1
[INFO] [stderr]     Checking clap_builder v4.6.6
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]     Checking error_tools v0.42.1
[INFO] [stderr]    Compiling const_format v0.2.36
[INFO] [stderr]    Compiling macro_tools v0.88.1
[INFO] [stderr]    Compiling derive_tools_meta v0.66.1
[INFO] [stderr]    Compiling macro_tools v0.89.1
[INFO] [stderr]    Compiling mod_interface_meta v0.65.1
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling former_meta v2.49.1
[INFO] [stderr]     Checking mod_interface v0.67.1
[INFO] [stderr]     Checking clap v4.6.6
[INFO] [stderr]     Checking former v2.53.1
[INFO] [stderr]     Checking program_tools v0.8.1 (/opt/rustwide/workdir)
[INFO] [stderr]  Documenting program_tools v0.8.1 (/opt/rustwide/workdir)
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/program.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | / /// Internal namespace.
[INFO] [stdout]  2 | | mod private
[INFO] [stdout]  3 | | {
[INFO] [stdout]  4 | |   use former::Former;
[INFO] [stdout] ...  |
[INFO] [stdout] 55 | |   };
[INFO] [stdout] 56 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Builder types for program representation.`
[INFO] [stdout]    = help: ends near `Builder types for program representation.`
[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/run_options.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | / /// Internal namespace.
[INFO] [stdout]  2 | | mod private
[INFO] [stdout]  3 | | {
[INFO] [stdout]  4 | |   /// Execution configuration for a single script run.
[INFO] [stdout] ...  |
[INFO] [stdout] 61 | |   prelude use private::RunOptions;
[INFO] [stdout] 62 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Execution configuration options.`
[INFO] [stdout]    = help: ends near `Execution configuration options.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/output.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 | / /// Internal namespace.
[INFO] [stdout]   2 | | mod private
[INFO] [stdout]   3 | | {
[INFO] [stdout]   4 | |   use std::borrow::Cow;
[INFO] [stdout] ...   |
[INFO] [stdout] 181 | |   prelude use private::CapturedOutput;
[INFO] [stdout] 182 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Captured execution output with assertion methods.`
[INFO] [stdout]     = help: ends near `Captured execution output with assertion methods.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/runner.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 | / /// Internal namespace.
[INFO] [stdout]   2 | | mod private
[INFO] [stdout]   3 | | {
[INFO] [stdout]   4 | |   use error_tools::*;
[INFO] [stdout] ...   |
[INFO] [stdout] 384 | |   prelude use private::{ run, run_source, run_file, run_project, thread_id_str };
[INFO] [stdout] 385 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Script execution runner.`
[INFO] [stdout]     = help: ends near `Script execution runner.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/program.rs:9:3
[INFO] [stdout]    |
[INFO] [stdout]  9 | /   pub struct Source
[INFO] [stdout] 10 | |   {
[INFO] [stdout] 11 | |     /// Relative path to source file within the workspace (e.g., `"src/main.rs"`).
[INFO] [stdout] 12 | |     pub file_path : String,
[INFO] [stdout] 13 | |     /// Source code content as plain text.
[INFO] [stdout] 14 | |     pub data : String,
[INFO] [stdout] 15 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Builder types for program representation.`
[INFO] [stdout]    = help: ends near `Source configuration for a program.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/program.rs:19:3
[INFO] [stdout]    |
[INFO] [stdout] 19 | /   pub struct Program
[INFO] [stdout] 20 | |   {
[INFO] [stdout] 21 | |     /// Ordered collection of source files comprising the compilable crate.
[INFO] [stdout] 22 | |     #[ subform_entry ]
[INFO] [stdout] ...  |
[INFO] [stdout] 26 | |     pub manifest : Option< String >,
[INFO] [stdout] 27 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Builder types for program representation.`
[INFO] [stdout]    = help: ends near `Program configuration: an ordered collection of source files.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/program.rs:31:3
[INFO] [stdout]    |
[INFO] [stdout] 31 | /   pub struct Plan
[INFO] [stdout] 32 | |   {
[INFO] [stdout] 33 | |     /// The program to compile and execute.
[INFO] [stdout] 34 | |     #[ subform_scalar ]
[INFO] [stdout] ...  |
[INFO] [stdout] 37 | |     pub run_options : Option< RunOptions >,
[INFO] [stdout] 38 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Builder types for program representation.`
[INFO] [stdout]    = help: ends near `Top-level execution plan: program definition and runtime configuration.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/run_options.rs:11:3
[INFO] [stdout]    |
[INFO] [stdout] 11 | /   pub struct RunOptions
[INFO] [stdout] 12 | |   {
[INFO] [stdout] 13 | |     /// Cargo build profile: `"debug"` or `"release"`. Empty means `"debug"`.
[INFO] [stdout] 14 | |     pub build_profile : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |     pub cleanup : bool,
[INFO] [stdout] 35 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Execution configuration options.`
[INFO] [stdout]    = help: ends near `Execution configuration for a single script run.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/output.rs:13:3
[INFO] [stdout]    |
[INFO] [stdout] 13 | /   pub struct CapturedOutput
[INFO] [stdout] 14 | |   {
[INFO] [stdout] 15 | |     /// Exit code of the child process. Zero indicates success.
[INFO] [stdout] 16 | |     pub exit_status : i32,
[INFO] [stdout] ...  |
[INFO] [stdout] 20 | |     pub stderr : Vec< u8 >,
[INFO] [stdout] 21 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Captured execution output with assertion methods.`
[INFO] [stdout]    = help: ends near `Captured output from a completed script execution.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/runner.rs:273:3
[INFO] [stdout]     |
[INFO] [stdout] 273 | /   pub fn run( plan : Plan ) -> Result< CapturedOutput >
[INFO] [stdout] 274 | |   {
[INFO] [stdout] 275 | |     let opts = plan.run_options.unwrap_or_default();
[INFO] [stdout] 276 | |     let program = plan.program;
[INFO] [stdout] ...   |
[INFO] [stdout] 283 | |     result
[INFO] [stdout] 284 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Script execution runner.`
[INFO] [stdout]     = help: ends near `Execute a plan and return captured output.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/runner.rs:294:3
[INFO] [stdout]     |
[INFO] [stdout] 294 | /   pub fn run_source( code : &str ) -> Result< CapturedOutput >
[INFO] [stdout] 295 | |   {
[INFO] [stdout] 296 | |     let plan = Plan::former()
[INFO] [stdout] 297 | |       .program()
[INFO] [stdout] ...   |
[INFO] [stdout] 304 | |     run( plan )
[INFO] [stdout] 305 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Script execution runner.`
[INFO] [stdout]     = help: ends near `Execute inline Rust source code and return captured output.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/runner.rs:315:3
[INFO] [stdout]     |
[INFO] [stdout] 315 | /   pub fn run_file( path : impl AsRef< Path > ) -> Result< CapturedOutput >
[INFO] [stdout] 316 | |   {
[INFO] [stdout] 317 | |     let path = path.as_ref();
[INFO] [stdout] 318 | |     let code = std::fs::read_to_string( path )
[INFO] [stdout] 319 | |       .map_err( | e | format_err!( "failed to read '{}': {e}", path.display() ) )?;
[INFO] [stdout] 320 | |     run_source( &code )
[INFO] [stdout] 321 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Script execution runner.`
[INFO] [stdout]     = help: ends near `Read a Rust source file and execute it.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/runner.rs:335:3
[INFO] [stdout]     |
[INFO] [stdout] 335 | /   pub fn run_project( dir : impl AsRef< Path >, opts : &RunOptions ) -> Result< CapturedOutput >
[INFO] [stdout] 336 | |   {
[INFO] [stdout] 337 | |     let dir = dir.as_ref();
[INFO] [stdout] 338 | |     let manifest = dir.join( "Cargo.toml" );
[INFO] [stdout] ...   |
[INFO] [stdout] 377 | |     execute_command( cmd, opts )
[INFO] [stdout] 378 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Script execution runner.`
[INFO] [stdout]     = help: ends near `Execute an existing Cargo project directory.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/runner.rs:49:3
[INFO] [stdout]    |
[INFO] [stdout] 49 | /   pub fn thread_id_str() -> String
[INFO] [stdout] 50 | |   {
[INFO] [stdout] 51 | |     format!( "{:?}", std::thread::current().id() )
[INFO] [stdout] 52 | |       .chars()
[INFO] [stdout] 53 | |       .filter( char::is_ascii_alphanumeric )
[INFO] [stdout] 54 | |       .collect()
[INFO] [stdout] 55 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Script execution runner.`
[INFO] [stdout]    = help: ends near `Return an ASCII-safe string that identifies the current thread.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/program.rs:9:3
[INFO] [stdout]    |
[INFO] [stdout]  9 | /   pub struct Source
[INFO] [stdout] 10 | |   {
[INFO] [stdout] 11 | |     /// Relative path to source file within the workspace (e.g., `"src/main.rs"`).
[INFO] [stdout] 12 | |     pub file_path : String,
[INFO] [stdout] 13 | |     /// Source code content as plain text.
[INFO] [stdout] 14 | |     pub data : String,
[INFO] [stdout] 15 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Builder types for program representation.`
[INFO] [stdout]    = help: ends near ` Builder types for program representation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/program.rs:19:3
[INFO] [stdout]    |
[INFO] [stdout] 19 | /   pub struct Program
[INFO] [stdout] 20 | |   {
[INFO] [stdout] 21 | |     /// Ordered collection of source files comprising the compilable crate.
[INFO] [stdout] 22 | |     #[ subform_entry ]
[INFO] [stdout] ...  |
[INFO] [stdout] 26 | |     pub manifest : Option< String >,
[INFO] [stdout] 27 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Builder types for program representation.`
[INFO] [stdout]    = help: ends near ` Builder types for program representation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/program.rs:31:3
[INFO] [stdout]    |
[INFO] [stdout] 31 | /   pub struct Plan
[INFO] [stdout] 32 | |   {
[INFO] [stdout] 33 | |     /// The program to compile and execute.
[INFO] [stdout] 34 | |     #[ subform_scalar ]
[INFO] [stdout] ...  |
[INFO] [stdout] 37 | |     pub run_options : Option< RunOptions >,
[INFO] [stdout] 38 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Builder types for program representation.`
[INFO] [stdout]    = help: ends near ` Builder types for program representation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/run_options.rs:11:3
[INFO] [stdout]    |
[INFO] [stdout] 11 | /   pub struct RunOptions
[INFO] [stdout] 12 | |   {
[INFO] [stdout] 13 | |     /// Cargo build profile: `"debug"` or `"release"`. Empty means `"debug"`.
[INFO] [stdout] 14 | |     pub build_profile : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |     pub cleanup : bool,
[INFO] [stdout] 35 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Execution configuration options.`
[INFO] [stdout]    = help: ends near ` Execution configuration options.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/output.rs:13:3
[INFO] [stdout]    |
[INFO] [stdout] 13 | /   pub struct CapturedOutput
[INFO] [stdout] 14 | |   {
[INFO] [stdout] 15 | |     /// Exit code of the child process. Zero indicates success.
[INFO] [stdout] 16 | |     pub exit_status : i32,
[INFO] [stdout] ...  |
[INFO] [stdout] 20 | |     pub stderr : Vec< u8 >,
[INFO] [stdout] 21 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Captured execution output with assertion methods.`
[INFO] [stdout]    = help: ends near ` Captured execution output with assertion methods.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/runner.rs:273:3
[INFO] [stdout]     |
[INFO] [stdout] 273 | /   pub fn run( plan : Plan ) -> Result< CapturedOutput >
[INFO] [stdout] 274 | |   {
[INFO] [stdout] 275 | |     let opts = plan.run_options.unwrap_or_default();
[INFO] [stdout] 276 | |     let program = plan.program;
[INFO] [stdout] ...   |
[INFO] [stdout] 283 | |     result
[INFO] [stdout] 284 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Script execution runner.`
[INFO] [stdout]     = help: ends near ` Script execution runner.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/runner.rs:294:3
[INFO] [stdout]     |
[INFO] [stdout] 294 | /   pub fn run_source( code : &str ) -> Result< CapturedOutput >
[INFO] [stdout] 295 | |   {
[INFO] [stdout] 296 | |     let plan = Plan::former()
[INFO] [stdout] 297 | |       .program()
[INFO] [stdout] ...   |
[INFO] [stdout] 304 | |     run( plan )
[INFO] [stdout] 305 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Script execution runner.`
[INFO] [stdout]     = help: ends near ` Script execution runner.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/runner.rs:315:3
[INFO] [stdout]     |
[INFO] [stdout] 315 | /   pub fn run_file( path : impl AsRef< Path > ) -> Result< CapturedOutput >
[INFO] [stdout] 316 | |   {
[INFO] [stdout] 317 | |     let path = path.as_ref();
[INFO] [stdout] 318 | |     let code = std::fs::read_to_string( path )
[INFO] [stdout] 319 | |       .map_err( | e | format_err!( "failed to read '{}': {e}", path.display() ) )?;
[INFO] [stdout] 320 | |     run_source( &code )
[INFO] [stdout] 321 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Script execution runner.`
[INFO] [stdout]     = help: ends near ` Script execution runner.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/runner.rs:335:3
[INFO] [stdout]     |
[INFO] [stdout] 335 | /   pub fn run_project( dir : impl AsRef< Path >, opts : &RunOptions ) -> Result< CapturedOutput >
[INFO] [stdout] 336 | |   {
[INFO] [stdout] 337 | |     let dir = dir.as_ref();
[INFO] [stdout] 338 | |     let manifest = dir.join( "Cargo.toml" );
[INFO] [stdout] ...   |
[INFO] [stdout] 377 | |     execute_command( cmd, opts )
[INFO] [stdout] 378 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Script execution runner.`
[INFO] [stdout]     = help: ends near ` Script execution runner.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/runner.rs:49:3
[INFO] [stdout]    |
[INFO] [stdout] 49 | /   pub fn thread_id_str() -> String
[INFO] [stdout] 50 | |   {
[INFO] [stdout] 51 | |     format!( "{:?}", std::thread::current().id() )
[INFO] [stdout] 52 | |       .chars()
[INFO] [stdout] 53 | |       .filter( char::is_ascii_alphanumeric )
[INFO] [stdout] 54 | |       .collect()
[INFO] [stdout] 55 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Script execution runner.`
[INFO] [stdout]    = help: ends near ` Script execution runner.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 |   /// Builder types for program representation.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Source configuration for a program.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 |   /// Builder types for program representation.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Program configuration: an ordered collection of source files.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 |   /// Builder types for program representation.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Top-level execution plan: program definition and runtime configuration.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 |   /// Script execution runner.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Execute a plan and return captured output.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 |   /// Script execution runner.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Execute inline Rust source code and return captured output.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 |   /// Script execution runner.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Read a Rust source file and execute it.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 |   /// Script execution runner.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Execute an existing Cargo project directory.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not document `program_tools`
[INFO] running `Command { std: "docker" "inspect" "4c207e2b58a2016cdc34c7fa0734d4e1e3faeb26dc449818e1857b3c4168aeb9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4c207e2b58a2016cdc34c7fa0734d4e1e3faeb26dc449818e1857b3c4168aeb9", kill_on_drop: false }`
[INFO] [stdout] 4c207e2b58a2016cdc34c7fa0734d4e1e3faeb26dc449818e1857b3c4168aeb9
