[INFO] fetching crate rahti 0.0.29...
[INFO] documenting rahti-0.0.29 against da3f5c31e5535b3dc210067de660a45784ae1e9c for pr-162169
[INFO] extracting crate rahti 0.0.29 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate rahti 0.0.29
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate rahti 0.0.29
[INFO] tweaked toml for crates.io crate rahti 0.0.29 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rahti 0.0.29 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 rahti 0.0.29 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-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 5513ca52e9eab39f47ee812633aca42be9f8401f7bf9a7a061a60cf7860540e8
[INFO] running `Command { std: "docker" "start" "5513ca52e9eab39f47ee812633aca42be9f8401f7bf9a7a061a60cf7860540e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5513ca52e9eab39f47ee812633aca42be9f8401f7bf9a7a061a60cf7860540e8", 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" "5513ca52e9eab39f47ee812633aca42be9f8401f7bf9a7a061a60cf7860540e8" "/opt/rustwide/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5513ca52e9eab39f47ee812633aca42be9f8401f7bf9a7a061a60cf7860540e8", 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" "5513ca52e9eab39f47ee812633aca42be9f8401f7bf9a7a061a60cf7860540e8" "/opt/rustwide/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]     Checking futures-core v0.3.33
[INFO] [stderr]     Checking log v0.4.33
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]    Compiling inotify-sys v0.1.8
[INFO] [stderr]     Checking http v1.4.2
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]     Checking cmov v0.5.4
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]     Checking futures-task v0.3.33
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]     Checking atomic-waker v1.1.2
[INFO] [stderr]     Checking tower-layer v0.3.3
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking futures-channel v0.3.33
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]     Checking ctutils v0.4.2
[INFO] [stderr]     Checking const-oid v0.10.2
[INFO] [stderr]     Checking futures-util v0.3.33
[INFO] [stderr]     Checking mio v1.2.2
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking spin v0.9.9
[INFO] [stderr]     Checking futures-sink v0.3.33
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking notify-types v2.1.0
[INFO] [stderr]     Checking matchit v0.8.4
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking inventory v0.3.24
[INFO] [stderr]     Checking inotify v0.11.4
[INFO] [stderr]     Checking notify v8.2.0
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]     Checking http-body v1.1.0
[INFO] [stderr]    Compiling rahti-macros v0.0.29
[INFO] [stderr]     Checking http-body-util v0.1.4
[INFO] [stderr]     Checking axum-core v0.5.6
[INFO] [stderr]     Checking hybrid-array v0.4.14
[INFO] [stderr]     Checking crypto-common v0.2.2
[INFO] [stderr]     Checking block-buffer v0.12.1
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking digest v0.11.3
[INFO] [stderr]     Checking sha2 v0.11.0
[INFO] [stderr]     Checking hmac v0.13.0
[INFO] [stderr]    Compiling tokio-macros v2.7.1
[INFO] [stderr]     Checking tokio v1.53.1
[INFO] [stderr]     Checking hyper v1.11.0
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-util v0.7.19
[INFO] [stderr]     Checking tokio-stream v0.1.19
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking axum v0.8.9
[INFO] [stderr]  Documenting rahti v0.0.29 (/opt/rustwide/workdir)
[INFO] [stdout] warning: public documentation for `render_js_into` links to private item `neutralise_script_breakouts`
[INFO] [stdout]    --> src/html.rs:272:46
[INFO] [stdout]     |
[INFO] [stdout] 272 |     /// conditional comment, which is what [`neutralise_script_breakouts`] 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]     = note: `#[warn(rustdoc::private_intra_doc_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: public documentation for `Json` links to private item `neutralise_script_breakouts`
[INFO] [stdout]    --> src/html.rs:350:7
[INFO] [stdout]     |
[INFO] [stdout] 350 | /// [`neutralise_script_breakouts`]: a `<` inside a string value would close
[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: could not parse code block as Rust code
[INFO] [stdout]   --> src/attrs.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |   /// ```ignore
[INFO] [stdout]    |  _____^
[INFO] [stdout] 74 | | /// let extra = Attrs::new().set("id", "avatar").unset("stroke-width");
[INFO] [stdout] 75 | | /// html! { <svg class="size-4" @{..extra}>…</svg> }
[INFO] [stdout] 76 | | /// ```
[INFO] [stdout]    | |_______^
[INFO] [stdout]    |
[INFO] [stdout] help: `ignore` code blocks require valid Rust code for syntax highlighting; mark blocks that do not contain Rust code as text: ```text
[INFO] [stdout]   --> src/attrs.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | /// ```ignore
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    = note: error from rustc: unknown start of token: \u{2026}
[INFO] [stdout]    = note: `#[warn(rustdoc::invalid_rust_codeblocks)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: could not parse code block as Rust code
[INFO] [stdout]   --> src/auth.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |   //! ```ignore
[INFO] [stdout]    |  _____^
[INFO] [stdout] 60 | | //! #[rpc(auth)]                       // 401 unless signed in
[INFO] [stdout] 61 | | //! pub async fn rename(name: String) -> rahti::Result<Account> {
[INFO] [stdout] 62 | | //!     let account: Account = rahti::auth::user().unwrap();
[INFO] [stdout] 63 | | //!     …
[INFO] [stdout] 64 | | //! }
[INFO] [stdout] 65 | | //! ```
[INFO] [stdout]    | |_______^
[INFO] [stdout]    |
[INFO] [stdout] help: `ignore` code blocks require valid Rust code for syntax highlighting; mark blocks that do not contain Rust code as text: ```text
[INFO] [stdout]   --> src/auth.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | //! ```ignore
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    = note: error from rustc: unknown start of token: \u{2026}
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: could not parse code block as Rust code
[INFO] [stdout]    --> src/auth.rs:623:5
[INFO] [stdout]     |
[INFO] [stdout] 623 |   /// ```ignore
[INFO] [stdout]     |  _____^
[INFO] [stdout] 624 | | /// #[derive(Serialize, Deserialize)]
[INFO] [stdout] 625 | | /// struct Account { id: i32, email: String }
[INFO] [stdout] 626 | | ///
[INFO] [stdout] 627 | | /// if let Some(account) = rahti::auth::user::<Account>() { … }
[INFO] [stdout] 628 | | /// ```
[INFO] [stdout]     | |_______^
[INFO] [stdout]     |
[INFO] [stdout] help: `ignore` code blocks require valid Rust code for syntax highlighting; mark blocks that do not contain Rust code as text: ```text
[INFO] [stdout]    --> src/auth.rs:623:5
[INFO] [stdout]     |
[INFO] [stdout] 623 | /// ```ignore
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     = note: error from rustc: unknown start of token: \u{2026}
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/attrs.rs:278:1
[INFO] [stdout]     |
[INFO] [stdout] 278 | / pub struct AttrList {
[INFO] [stdout] 279 | |     entries: Vec<(String, String)>,
[INFO] [stdout] 280 | |     /// Whether the writes arriving now came out of a spread rather than off
[INFO] [stdout] 281 | |     /// the tag. Only [`COMPONENT_ATTR`] cares, and only to refuse them.
[INFO] [stdout] 282 | |     spreading: bool,
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `The auth layer, under the name generated code calls it by — beside `csrf``
[INFO] [stdout]     = help: ends near `An open tag under construction.`
[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/attrs.rs:278:1
[INFO] [stdout]     |
[INFO] [stdout] 278 | / pub struct AttrList {
[INFO] [stdout] 279 | |     entries: Vec<(String, String)>,
[INFO] [stdout] 280 | |     /// Whether the writes arriving now came out of a spread rather than off
[INFO] [stdout] 281 | |     /// the tag. Only [`COMPONENT_ATTR`] cares, and only to refuse them.
[INFO] [stdout] 282 | |     spreading: bool,
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `An open tag under construction.`
[INFO] [stdout]     = help: ends near `An open tag under construction.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/attrs.rs:193:1
[INFO] [stdout]     |
[INFO] [stdout] 193 | / pub trait Attributes {
[INFO] [stdout] 194 | |     fn write_attributes(&self, list: &mut AttrList);
[INFO] [stdout] 195 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `The auth layer, under the name generated code calls it by — beside `csrf``
[INFO] [stdout]     = help: ends near `Something `@{..expr}` can spread onto an element.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/attrs.rs:193:1
[INFO] [stdout]     |
[INFO] [stdout] 193 | / pub trait Attributes {
[INFO] [stdout] 194 | |     fn write_attributes(&self, list: &mut AttrList);
[INFO] [stdout] 195 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Something `@{..expr}` can spread onto an element.`
[INFO] [stdout]     = help: ends near `Something `@{..expr}` can spread onto an element.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: could not parse code block as Rust code
[INFO] [stdout]   |
[INFO] [stdout]   = help: `ignore` code blocks require valid Rust code for syntax highlighting; mark blocks that do not contain Rust code as text: ```text
[INFO] [stdout]   = note: error from rustc: unknown start of token: \u{2026}
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/attrs.rs:88:1
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct Attrs(Vec<(String, Option<String>)>);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `The auth layer, under the name generated code calls it by — beside `csrf``
[INFO] [stdout]    = help: ends near `A set of attributes built in Rust and spread onto an element.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/attrs.rs:88:1
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct Attrs(Vec<(String, Option<String>)>);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `A set of attributes built in Rust and spread onto an element.`
[INFO] [stdout]    = help: ends near `A set of attributes built in Rust and spread onto an element.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/attrs.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | / pub enum Presence {
[INFO] [stdout] 36 | |     /// `name="…"`, the value rendered inside the quotes. The answer for
[INFO] [stdout] 37 | |     /// everything that is not an absent optional or a boolean flag.
[INFO] [stdout] 38 | |     Value,
[INFO] [stdout] ...  |
[INFO] [stdout] 43 | |     Absent,
[INFO] [stdout] 44 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `The auth layer, under the name generated code calls it by — beside `csrf``
[INFO] [stdout]    = help: ends near `What a value makes of the attribute it was written on.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/attrs.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | / pub enum Presence {
[INFO] [stdout] 36 | |     /// `name="…"`, the value rendered inside the quotes. The answer for
[INFO] [stdout] 37 | |     /// everything that is not an absent optional or a boolean flag.
[INFO] [stdout] 38 | |     Value,
[INFO] [stdout] ...  |
[INFO] [stdout] 43 | |     Absent,
[INFO] [stdout] 44 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `What a value makes of the attribute it was written on.`
[INFO] [stdout]    = help: ends near `What a value makes of the attribute it was written on.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/attrs.rs:53:1
[INFO] [stdout]    |
[INFO] [stdout] 53 | / pub fn attribute<T: Render + ?Sized>(name: &str, value: &T, boolean: bool, out: &mut String) {
[INFO] [stdout] 54 | |     match value.attribute_presence(boolean) {
[INFO] [stdout] 55 | |         Presence::Absent => {}
[INFO] [stdout] 56 | |         Presence::Empty => {
[INFO] [stdout] ...  |
[INFO] [stdout] 67 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `The auth layer, under the name generated code calls it by — beside `csrf``
[INFO] [stdout]    = help: ends near `Write ` name="value"` into `out`, or nothing, or ` name=""`.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/attrs.rs:53:1
[INFO] [stdout]    |
[INFO] [stdout] 53 | / pub fn attribute<T: Render + ?Sized>(name: &str, value: &T, boolean: bool, out: &mut String) {
[INFO] [stdout] 54 | |     match value.attribute_presence(boolean) {
[INFO] [stdout] 55 | |         Presence::Absent => {}
[INFO] [stdout] 56 | |         Presence::Empty => {
[INFO] [stdout] ...  |
[INFO] [stdout] 67 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Write ` name="value"` into `out`, or nothing, or ` name=""`.`
[INFO] [stdout]    = help: ends near `Write ` name="value"` into `out`, or nothing, or ` name=""`.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/env.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | / pub fn load_env() {
[INFO] [stdout] 37 | |     static LOADED: OnceLock<()> = OnceLock::new();
[INFO] [stdout] 38 | |     LOADED.get_or_init(|| {
[INFO] [stdout] 39 | |         let Ok(contents) = std::fs::read_to_string(ENV_PATH) else {
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | |     });
[INFO] [stdout] 53 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ``.env` into the process environment, once. Called by `AuthSettings::from_env``
[INFO] [stdout]    = help: ends near `Read `.env` into the environment, once per process.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/env.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | / pub fn load_env() {
[INFO] [stdout] 37 | |     static LOADED: OnceLock<()> = OnceLock::new();
[INFO] [stdout] 38 | |     LOADED.get_or_init(|| {
[INFO] [stdout] 39 | |         let Ok(contents) = std::fs::read_to_string(ENV_PATH) else {
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | |     });
[INFO] [stdout] 53 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Read `.env` into the environment, once per process.`
[INFO] [stdout]    = help: ends near `Read `.env` into the environment, once per process.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/listen.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout]  69 | / pub async fn listen(host: &str, port: u16) -> TcpListener {
[INFO] [stdout] ...   |
[INFO] [stdout] 104 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `The listener `main` serves on. Binds the configured address; in dev mode a`
[INFO] [stdout]     = help: ends near `Bind the address the environment names, or the one `routes.rs` configures.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/listen.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout]  69 | / pub async fn listen(host: &str, port: u16) -> TcpListener {
[INFO] [stdout] ...   |
[INFO] [stdout] 104 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Bind the address the environment names, or the one `routes.rs` configures.`
[INFO] [stdout]     = help: ends near `Bind the address the environment names, or the one `routes.rs` configures.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/listen.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / pub fn local_url(listener: &TcpListener) -> String {
[INFO] [stdout] 167 | |     url_of(
[INFO] [stdout] 168 | |         listener
[INFO] [stdout] 169 | |             .local_addr()
[INFO] [stdout] ...   |
[INFO] [stdout] 172 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `The listener `main` serves on. Binds the configured address; in dev mode a`
[INFO] [stdout]     = help: ends near `Where to open a browser, for a listener bound anywhere.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/listen.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / pub fn local_url(listener: &TcpListener) -> String {
[INFO] [stdout] 167 | |     url_of(
[INFO] [stdout] 168 | |         listener
[INFO] [stdout] 169 | |             .local_addr()
[INFO] [stdout] ...   |
[INFO] [stdout] 172 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near `Where to open a browser, for a listener bound anywhere.`
[INFO] [stdout]     = help: ends near `Where to open a browser, for a listener bound anywhere.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/loading.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const REGION_ID: &str = "loading-file-1B87E";
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `The app's `loading.rs` files, installed once by the generated router.`
[INFO] [stdout]    = help: ends near `The id the client runtime looks the container up by.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/loading.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const REGION_ID: &str = "loading-file-1B87E";
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `The id the client runtime looks the container up by.`
[INFO] [stdout]    = help: ends near `The id the client runtime looks the container up by.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/loading.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const URL_ATTR: &str = "pp-loading-url";
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `The app's `loading.rs` files, installed once by the generated router.`
[INFO] [stdout]    = help: ends near `The attribute that says which path a region answers for.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/loading.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const URL_ATTR: &str = "pp-loading-url";
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `The attribute that says which path a region answers for.`
[INFO] [stdout]    = help: ends near `The attribute that says which path a region answers for.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/loading.rs:50:1
[INFO] [stdout]    |
[INFO] [stdout] 50 | / pub fn install(regions: &[(&str, fn() -> Html)]) {
[INFO] [stdout] 51 | |     if regions.is_empty() {
[INFO] [stdout] 52 | |         return;
[INFO] [stdout] ...  |
[INFO] [stdout] 57 | |     let _ = REGIONS.set(container(regions));
[INFO] [stdout] 58 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `The app's `loading.rs` files, installed once by the generated router.`
[INFO] [stdout]    = help: ends near `Record the app's loading regions.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/loading.rs:50:1
[INFO] [stdout]    |
[INFO] [stdout] 50 | / pub fn install(regions: &[(&str, fn() -> Html)]) {
[INFO] [stdout] 51 | |     if regions.is_empty() {
[INFO] [stdout] 52 | |         return;
[INFO] [stdout] ...  |
[INFO] [stdout] 57 | |     let _ = REGIONS.set(container(regions));
[INFO] [stdout] 58 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near `Record the app's loading regions.`
[INFO] [stdout]    = help: ends near `Record the app's loading regions.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not document `rahti`
[INFO] running `Command { std: "docker" "inspect" "5513ca52e9eab39f47ee812633aca42be9f8401f7bf9a7a061a60cf7860540e8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5513ca52e9eab39f47ee812633aca42be9f8401f7bf9a7a061a60cf7860540e8", kill_on_drop: false }`
[INFO] [stdout] 5513ca52e9eab39f47ee812633aca42be9f8401f7bf9a7a061a60cf7860540e8
