[INFO] fetching crate hexchat-api 0.3.2...
[INFO] testing hexchat-api-0.3.2 against 1.83.0 for beta-1.84.0-4-retry
[INFO] extracting crate hexchat-api 0.3.2 into /workspace/builds/worker-7-tc1/source
[INFO] validating manifest of crates.io crate hexchat-api 0.3.2 on toolchain 1.83.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.83.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate hexchat-api 0.3.2
[INFO] finished tweaking crates.io crate hexchat-api 0.3.2
[INFO] tweaked toml for crates.io crate hexchat-api 0.3.2 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.83.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 20 packages to latest compatible versions
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.83.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0b7937db0be69d5e05fa2d087604206c54b2eb647f07b19b14f8277b1e2e495c
[INFO] running `Command { std: "docker" "start" "-a" "0b7937db0be69d5e05fa2d087604206c54b2eb647f07b19b14f8277b1e2e495c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0b7937db0be69d5e05fa2d087604206c54b2eb647f07b19b14f8277b1e2e495c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0b7937db0be69d5e05fa2d087604206c54b2eb647f07b19b14f8277b1e2e495c", kill_on_drop: false }`
[INFO] [stdout] 0b7937db0be69d5e05fa2d087604206c54b2eb647f07b19b14f8277b1e2e495c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4f35e995866ef03865f1119d0e119cc26a05e0bc3efb6a2e31428a88431b1768
[INFO] running `Command { std: "docker" "start" "-a" "4f35e995866ef03865f1119d0e119cc26a05e0bc3efb6a2e31428a88431b1768", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling gimli v0.31.1
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]    Compiling rustc-demangle v0.1.24
[INFO] [stderr]    Compiling send_wrapper v0.6.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.0
[INFO] [stderr]    Compiling object v0.36.5
[INFO] [stderr]    Compiling addr2line v0.24.2
[INFO] [stderr]    Compiling backtrace v0.3.74
[INFO] [stderr]    Compiling hexchat-api v0.3.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]   --> src/hook.rs:69:50
[INFO] [stdout]    |
[INFO] [stdout] 69 |         if let Some(hook_list_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stdout]    |                                                  ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 69 |         if let Some(hook_list_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stdout]    |                                                  ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]   --> src/hook.rs:90:43
[INFO] [stdout]    |
[INFO] [stdout] 90 |         if let Some(hl_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stdout]    |                                           ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 90 |         if let Some(hl_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stdout]    |                                           ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hook.rs:104:43
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Some(hl_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stdout]     |                                           ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Some(hl_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stdout]     |                                           ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hook.rs:121:38
[INFO] [stdout]     |
[INFO] [stdout] 121 |             if let Some(hl_rwlock) = &HOOK_LIST {
[INFO] [stdout]     |                                      ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 121 |             if let Some(hl_rwlock) = &raw const HOOK_LIST {
[INFO] [stdout]     |                                      ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hook.rs:173:43
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if let Some(hl_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stdout]     |                                           ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if let Some(hl_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stdout]     |                                           ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/hook.rs:185:21
[INFO] [stdout]     |
[INFO] [stdout] 185 |             let _ = HOOK_LIST.take();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hexchat_entry_points.rs:278:12
[INFO] [stdout]     |
[INFO] [stdout] 278 |         if PLUGIN_INFO.is_none() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hexchat_entry_points.rs:282:29
[INFO] [stdout]     |
[INFO] [stdout] 282 |         if let Some(info) = &PLUGIN_INFO {
[INFO] [stdout]     |                             ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 282 |         if let Some(info) = &raw const PLUGIN_INFO {
[INFO] [stdout]     |                             ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hexchat_entry_points.rs:299:40
[INFO] [stdout]     |
[INFO] [stdout] 299 |             if let Some(plugin_info) = &PLUGIN_INFO {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 299 |             if let Some(plugin_info) = &raw const PLUGIN_INFO {
[INFO] [stdout]     |                                        ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/thread_facilities.rs:184:37
[INFO] [stdout]     |
[INFO] [stdout] 184 |         if let Some(arc) = unsafe { TASK_QUEUE.as_ref() } {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/thread_facilities.rs:208:17
[INFO] [stdout]     |
[INFO] [stdout] 208 |     if unsafe { TASK_QUEUE.is_none() } {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/thread_facilities.rs:217:45
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 if let Some(arc) = unsafe { TASK_QUEUE.as_ref() } {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/thread_facilities.rs:250:35
[INFO] [stdout]     |
[INFO] [stdout] 250 |     if let Some(queue) = unsafe { &TASK_QUEUE } {
[INFO] [stdout]     |                                   ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 250 |     if let Some(queue) = unsafe { &raw const TASK_QUEUE } {
[INFO] [stdout]     |                                   ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.46s
[INFO] running `Command { std: "docker" "inspect" "4f35e995866ef03865f1119d0e119cc26a05e0bc3efb6a2e31428a88431b1768", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4f35e995866ef03865f1119d0e119cc26a05e0bc3efb6a2e31428a88431b1768", kill_on_drop: false }`
[INFO] [stdout] 4f35e995866ef03865f1119d0e119cc26a05e0bc3efb6a2e31428a88431b1768
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 42c9c8a843f6df52bddabd0cff5402daa75128d459745f4e81fded607ecdcd84
[INFO] running `Command { std: "docker" "start" "-a" "42c9c8a843f6df52bddabd0cff5402daa75128d459745f4e81fded607ecdcd84", kill_on_drop: false }`
[INFO] [stderr]    Compiling hexchat-api v0.3.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]   --> src/hook.rs:69:50
[INFO] [stdout]    |
[INFO] [stdout] 69 |         if let Some(hook_list_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stdout]    |                                                  ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 69 |         if let Some(hook_list_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stdout]    |                                                  ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]   --> src/hook.rs:90:43
[INFO] [stdout]    |
[INFO] [stdout] 90 |         if let Some(hl_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stdout]    |                                           ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 90 |         if let Some(hl_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stdout]    |                                           ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hook.rs:104:43
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Some(hl_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stdout]     |                                           ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Some(hl_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stdout]     |                                           ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hook.rs:121:38
[INFO] [stdout]     |
[INFO] [stdout] 121 |             if let Some(hl_rwlock) = &HOOK_LIST {
[INFO] [stdout]     |                                      ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 121 |             if let Some(hl_rwlock) = &raw const HOOK_LIST {
[INFO] [stdout]     |                                      ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hook.rs:173:43
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if let Some(hl_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stdout]     |                                           ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if let Some(hl_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stdout]     |                                           ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/hook.rs:185:21
[INFO] [stdout]     |
[INFO] [stdout] 185 |             let _ = HOOK_LIST.take();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hexchat_entry_points.rs:278:12
[INFO] [stdout]     |
[INFO] [stdout] 278 |         if PLUGIN_INFO.is_none() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hexchat_entry_points.rs:282:29
[INFO] [stdout]     |
[INFO] [stdout] 282 |         if let Some(info) = &PLUGIN_INFO {
[INFO] [stdout]     |                             ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 282 |         if let Some(info) = &raw const PLUGIN_INFO {
[INFO] [stdout]     |                             ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hexchat_entry_points.rs:299:40
[INFO] [stdout]     |
[INFO] [stdout] 299 |             if let Some(plugin_info) = &PLUGIN_INFO {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 299 |             if let Some(plugin_info) = &raw const PLUGIN_INFO {
[INFO] [stdout]     |                                        ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/thread_facilities.rs:184:37
[INFO] [stdout]     |
[INFO] [stdout] 184 |         if let Some(arc) = unsafe { TASK_QUEUE.as_ref() } {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/thread_facilities.rs:208:17
[INFO] [stdout]     |
[INFO] [stdout] 208 |     if unsafe { TASK_QUEUE.is_none() } {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/thread_facilities.rs:217:45
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 if let Some(arc) = unsafe { TASK_QUEUE.as_ref() } {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/thread_facilities.rs:250:35
[INFO] [stdout]     |
[INFO] [stdout] 250 |     if let Some(queue) = unsafe { &TASK_QUEUE } {
[INFO] [stdout]     |                                   ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 250 |     if let Some(queue) = unsafe { &raw const TASK_QUEUE } {
[INFO] [stdout]     |                                   ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]   --> src/hook.rs:69:50
[INFO] [stdout]    |
[INFO] [stdout] 69 |         if let Some(hook_list_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stdout]    |                                                  ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 69 |         if let Some(hook_list_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stdout]    |                                                  ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]   --> src/hook.rs:90:43
[INFO] [stdout]    |
[INFO] [stdout] 90 |         if let Some(hl_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stdout]    |                                           ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 90 |         if let Some(hl_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stdout]    |                                           ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hook.rs:104:43
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Some(hl_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stdout]     |                                           ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 104 |         if let Some(hl_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stdout]     |                                           ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hook.rs:121:38
[INFO] [stdout]     |
[INFO] [stdout] 121 |             if let Some(hl_rwlock) = &HOOK_LIST {
[INFO] [stdout]     |                                      ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 121 |             if let Some(hl_rwlock) = &raw const HOOK_LIST {
[INFO] [stdout]     |                                      ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hook.rs:173:43
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if let Some(hl_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stdout]     |                                           ^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if let Some(hl_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stdout]     |                                           ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/hook.rs:185:21
[INFO] [stdout]     |
[INFO] [stdout] 185 |             let _ = HOOK_LIST.take();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hexchat_entry_points.rs:278:12
[INFO] [stdout]     |
[INFO] [stdout] 278 |         if PLUGIN_INFO.is_none() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hexchat_entry_points.rs:282:29
[INFO] [stdout]     |
[INFO] [stdout] 282 |         if let Some(info) = &PLUGIN_INFO {
[INFO] [stdout]     |                             ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 282 |         if let Some(info) = &raw const PLUGIN_INFO {
[INFO] [stdout]     |                             ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/hexchat_entry_points.rs:299:40
[INFO] [stdout]     |
[INFO] [stdout] 299 |             if let Some(plugin_info) = &PLUGIN_INFO {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 299 |             if let Some(plugin_info) = &raw const PLUGIN_INFO {
[INFO] [stdout]     |                                        ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/thread_facilities.rs:184:37
[INFO] [stdout]     |
[INFO] [stdout] 184 |         if let Some(arc) = unsafe { TASK_QUEUE.as_ref() } {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/thread_facilities.rs:208:17
[INFO] [stdout]     |
[INFO] [stdout] 208 |     if unsafe { TASK_QUEUE.is_none() } {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/thread_facilities.rs:217:45
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 if let Some(arc) = unsafe { TASK_QUEUE.as_ref() } {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/thread_facilities.rs:250:35
[INFO] [stdout]     |
[INFO] [stdout] 250 |     if let Some(queue) = unsafe { &TASK_QUEUE } {
[INFO] [stdout]     |                                   ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 250 |     if let Some(queue) = unsafe { &raw const TASK_QUEUE } {
[INFO] [stdout]     |                                   ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.09s
[INFO] running `Command { std: "docker" "inspect" "42c9c8a843f6df52bddabd0cff5402daa75128d459745f4e81fded607ecdcd84", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "42c9c8a843f6df52bddabd0cff5402daa75128d459745f4e81fded607ecdcd84", kill_on_drop: false }`
[INFO] [stdout] 42c9c8a843f6df52bddabd0cff5402daa75128d459745f4e81fded607ecdcd84
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 390eebf22020ff7f770d9bda1a906c3148e8afb4f4f4ef33bb7f8c80b4e0924b
[INFO] running `Command { std: "docker" "start" "-a" "390eebf22020ff7f770d9bda1a906c3148e8afb4f4f4ef33bb7f8c80b4e0924b", kill_on_drop: false }`
[INFO] [stderr] warning: creating a shared reference to mutable static is discouraged
[INFO] [stderr]   --> src/hook.rs:69:50
[INFO] [stderr]    |
[INFO] [stderr] 69 |         if let Some(hook_list_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stderr]    |                                                  ^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stderr] help: use `&raw const` instead to create a raw pointer
[INFO] [stderr]    |
[INFO] [stderr] 69 |         if let Some(hook_list_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stderr]    |                                                  ~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static is discouraged
[INFO] [stderr]   --> src/hook.rs:90:43
[INFO] [stderr]    |
[INFO] [stderr] 90 |         if let Some(hl_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stderr]    |                                           ^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr] help: use `&raw const` instead to create a raw pointer
[INFO] [stderr]    |
[INFO] [stderr] 90 |         if let Some(hl_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stderr]    |                                           ~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static is discouraged
[INFO] [stderr]    --> src/hook.rs:104:43
[INFO] [stderr]     |
[INFO] [stderr] 104 |         if let Some(hl_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stderr]     |                                           ^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr] help: use `&raw const` instead to create a raw pointer
[INFO] [stderr]     |
[INFO] [stderr] 104 |         if let Some(hl_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stderr]     |                                           ~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static is discouraged
[INFO] [stderr]    --> src/hook.rs:121:38
[INFO] [stderr]     |
[INFO] [stderr] 121 |             if let Some(hl_rwlock) = &HOOK_LIST {
[INFO] [stderr]     |                                      ^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr] help: use `&raw const` instead to create a raw pointer
[INFO] [stderr]     |
[INFO] [stderr] 121 |             if let Some(hl_rwlock) = &raw const HOOK_LIST {
[INFO] [stderr]     |                                      ~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static is discouraged
[INFO] [stderr]    --> src/hook.rs:173:43
[INFO] [stderr]     |
[INFO] [stderr] 173 |         if let Some(hl_rwlock) = unsafe { &HOOK_LIST } {
[INFO] [stderr]     |                                           ^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr] help: use `&raw const` instead to create a raw pointer
[INFO] [stderr]     |
[INFO] [stderr] 173 |         if let Some(hl_rwlock) = unsafe { &raw const HOOK_LIST } {
[INFO] [stderr]     |                                           ~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stderr]    --> src/hook.rs:185:21
[INFO] [stderr]     |
[INFO] [stderr] 185 |             let _ = HOOK_LIST.take();
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static is discouraged
[INFO] [stderr]    --> src/hexchat_entry_points.rs:278:12
[INFO] [stderr]     |
[INFO] [stderr] 278 |         if PLUGIN_INFO.is_none() {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static is discouraged
[INFO] [stderr]    --> src/hexchat_entry_points.rs:282:29
[INFO] [stderr]     |
[INFO] [stderr] 282 |         if let Some(info) = &PLUGIN_INFO {
[INFO] [stderr]     |                             ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr] help: use `&raw const` instead to create a raw pointer
[INFO] [stderr]     |
[INFO] [stderr] 282 |         if let Some(info) = &raw const PLUGIN_INFO {
[INFO] [stderr]     |                             ~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static is discouraged
[INFO] [stderr]    --> src/hexchat_entry_points.rs:299:40
[INFO] [stderr]     |
[INFO] [stderr] 299 |             if let Some(plugin_info) = &PLUGIN_INFO {
[INFO] [stderr]     |                                        ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr] help: use `&raw const` instead to create a raw pointer
[INFO] [stderr]     |
[INFO] [stderr] 299 |             if let Some(plugin_info) = &raw const PLUGIN_INFO {
[INFO] [stderr]     |                                        ~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static is discouraged
[INFO] [stderr]    --> src/thread_facilities.rs:184:37
[INFO] [stderr]     |
[INFO] [stderr] 184 |         if let Some(arc) = unsafe { TASK_QUEUE.as_ref() } {
[INFO] [stderr]     |                                     ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static is discouraged
[INFO] [stderr]    --> src/thread_facilities.rs:208:17
[INFO] [stderr]     |
[INFO] [stderr] 208 |     if unsafe { TASK_QUEUE.is_none() } {
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static is discouraged
[INFO] [stderr]    --> src/thread_facilities.rs:217:45
[INFO] [stderr]     |
[INFO] [stderr] 217 |                 if let Some(arc) = unsafe { TASK_QUEUE.as_ref() } {
[INFO] [stderr]     |                                             ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static is discouraged
[INFO] [stderr]    --> src/thread_facilities.rs:250:35
[INFO] [stderr]     |
[INFO] [stderr] 250 |     if let Some(queue) = unsafe { &TASK_QUEUE } {
[INFO] [stderr]     |                                   ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr] help: use `&raw const` instead to create a raw pointer
[INFO] [stderr]     |
[INFO] [stderr] 250 |     if let Some(queue) = unsafe { &raw const TASK_QUEUE } {
[INFO] [stderr]     |                                   ~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: `hexchat-api` (lib) generated 13 warnings
[INFO] [stderr] warning: `hexchat-api` (lib test) generated 13 warnings (13 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/hexchat_api-3ab6e49325d0dbf2)
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests hexchat_api
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test src/utils.rs - utils::hc_print_th (line 54) ... FAILED
[INFO] [stdout] test src/utils.rs - utils::hc_print (line 23) ... FAILED
[INFO] [stdout] test src/hexchat.rs - hexchat::Hexchat::hook_command (line 106) ... FAILED
[INFO] [stdout] test src/hexchat.rs - hexchat::Hexchat::hook_print_attrs (line 265) ... FAILED
[INFO] [stdout] test src/hexchat.rs - hexchat::Hexchat::hook_server (line 170) ... FAILED
[INFO] [stdout] test src/hexchat.rs - hexchat::Hexchat::hook_print (line 218) ... FAILED
[INFO] [stdout] test src/hexchat.rs - hexchat::Hexchat::hook_timer (line 313) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/utils.rs - utils::hc_print_th (line 54) stdout ----
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]  --> src/utils.rs:57:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | hc_print_th!(fmt, argv, ...);
[INFO] [stdout]   |                         ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]   |
[INFO] [stdout] 6 | hc_print_th!(fmt, argv, ..);
[INFO] [stdout]   |                         ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout] 6 | hc_print_th!(fmt, argv, ..=);
[INFO] [stdout]   |                         ~~~
[INFO] [stdout] 
[INFO] [stdout] error[E0586]: inclusive range with no end
[INFO] [stdout]  --> src/utils.rs:57:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | hc_print_th!(fmt, argv, ...);
[INFO] [stdout]   |                         ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
[INFO] [stdout] help: use `..` instead
[INFO] [stdout]   |
[INFO] [stdout] 6 - hc_print_th!(fmt, argv, ...);
[INFO] [stdout] 6 + hc_print_th!(fmt, argv, ..);
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]  --> src/utils.rs:57:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | hc_print_th!(fmt, argv, ...);
[INFO] [stdout]   |              ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]   |
[INFO] [stdout] 6 | hc_print_th!("{} {} {}", fmt, argv, ...);
[INFO] [stdout]   |              +++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]  --> src/utils.rs:58:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | hc_print_th!(arg);
[INFO] [stdout]   |              ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]   |
[INFO] [stdout] 7 | hc_print_th!("{}", arg);
[INFO] [stdout]   |              +++++
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]  --> src/utils.rs:59:44
[INFO] [stdout]   |
[INFO] [stdout] 8 | hc_print_th!(ctx=(network, channel), argv, ...);
[INFO] [stdout]   |                                            ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]   |
[INFO] [stdout] 8 | hc_print_th!(ctx=(network, channel), argv, ..);
[INFO] [stdout]   |                                            ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout] 8 | hc_print_th!(ctx=(network, channel), argv, ..=);
[INFO] [stdout]   |                                            ~~~
[INFO] [stdout] 
[INFO] [stdout] error[E0586]: inclusive range with no end
[INFO] [stdout]  --> src/utils.rs:59:44
[INFO] [stdout]   |
[INFO] [stdout] 8 | hc_print_th!(ctx=(network, channel), argv, ...);
[INFO] [stdout]   |                                            ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
[INFO] [stdout] help: use `..` instead
[INFO] [stdout]   |
[INFO] [stdout] 8 - hc_print_th!(ctx=(network, channel), argv, ...);
[INFO] [stdout] 8 + hc_print_th!(ctx=(network, channel), argv, ..);
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]  --> src/utils.rs:59:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | hc_print_th!(ctx=(network, channel), argv, ...);
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]   |
[INFO] [stdout] 8 | hc_print_th!("{} {} {}", ctx=(network, channel), argv, ...);
[INFO] [stdout]   |              +++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]  --> src/utils.rs:60:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | hc_print_th!(ctx=(network, channel), arg);
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]   |
[INFO] [stdout] 9 | hc_print_th!("{} {}", ctx=(network, channel), arg);
[INFO] [stdout]   |              ++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 8 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0586`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/utils.rs - utils::hc_print (line 23) stdout ----
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]  --> src/utils.rs:26:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | hc_print!(fmt, argv, ...);
[INFO] [stdout]   |                      ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]   |
[INFO] [stdout] 6 | hc_print!(fmt, argv, ..);
[INFO] [stdout]   |                      ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout] 6 | hc_print!(fmt, argv, ..=);
[INFO] [stdout]   |                      ~~~
[INFO] [stdout] 
[INFO] [stdout] error[E0586]: inclusive range with no end
[INFO] [stdout]  --> src/utils.rs:26:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | hc_print!(fmt, argv, ...);
[INFO] [stdout]   |                      ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
[INFO] [stdout] help: use `..` instead
[INFO] [stdout]   |
[INFO] [stdout] 6 - hc_print!(fmt, argv, ...);
[INFO] [stdout] 6 + hc_print!(fmt, argv, ..);
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]  --> src/utils.rs:26:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | hc_print!(fmt, argv, ...);
[INFO] [stdout]   |           ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]   |
[INFO] [stdout] 6 | hc_print!("{} {} {}", fmt, argv, ...);
[INFO] [stdout]   |           +++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]  --> src/utils.rs:27:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | hc_print!(arg);
[INFO] [stdout]   |           ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]   |
[INFO] [stdout] 7 | hc_print!("{}", arg);
[INFO] [stdout]   |           +++++
[INFO] [stdout] 
[INFO] [stdout] error: unexpected token: `...`
[INFO] [stdout]  --> src/utils.rs:28:41
[INFO] [stdout]   |
[INFO] [stdout] 8 | hc_print!(ctx=(network, channel), argv, ...);
[INFO] [stdout]   |                                         ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: use `..` for an exclusive range
[INFO] [stdout]   |
[INFO] [stdout] 8 | hc_print!(ctx=(network, channel), argv, ..);
[INFO] [stdout]   |                                         ~~
[INFO] [stdout] help: or `..=` for an inclusive range
[INFO] [stdout]   |
[INFO] [stdout] 8 | hc_print!(ctx=(network, channel), argv, ..=);
[INFO] [stdout]   |                                         ~~~
[INFO] [stdout] 
[INFO] [stdout] error[E0586]: inclusive range with no end
[INFO] [stdout]  --> src/utils.rs:28:41
[INFO] [stdout]   |
[INFO] [stdout] 8 | hc_print!(ctx=(network, channel), argv, ...);
[INFO] [stdout]   |                                         ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: inclusive ranges must be bounded at the end (`..=b` or `a..=b`)
[INFO] [stdout] help: use `..` instead
[INFO] [stdout]   |
[INFO] [stdout] 8 - hc_print!(ctx=(network, channel), argv, ...);
[INFO] [stdout] 8 + hc_print!(ctx=(network, channel), argv, ..);
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]  --> src/utils.rs:28:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | hc_print!(ctx=(network, channel), argv, ...);
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]   |
[INFO] [stdout] 8 | hc_print!("{} {} {}", ctx=(network, channel), argv, ...);
[INFO] [stdout]   |           +++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]  --> src/utils.rs:29:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | hc_print!(ctx=(network, channel), arg);
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]   |
[INFO] [stdout] 9 | hc_print!("{} {}", ctx=(network, channel), arg);
[INFO] [stdout]   |           ++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 8 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0586`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/hexchat.rs - hexchat::Hexchat::hook_command (line 106) stdout ----
[INFO] [stdout] error: `->` used for field access or method call
[INFO] [stdout]  --> src/hexchat.rs:108:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     -> Eat
[INFO] [stdout]   |     ^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the `.` operator will dereference the value if needed
[INFO] [stdout] help: try using `.` instead
[INFO] [stdout]   |
[INFO] [stdout] 4 |     . Eat
[INFO] [stdout]   |     ~
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Hexchat` in this scope
[INFO] [stdout]  --> src/hexchat.rs:107:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &[String], &UserData)
[INFO] [stdout]   |        ^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this unit variant
[INFO] [stdout]   |
[INFO] [stdout] 2 + use hexchat_api::Eat::Hexchat;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `String`
[INFO] [stdout]  --> src/hexchat.rs:107:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &[String], &UserData)
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout]  --> /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/string.rs:362:1
[INFO] [stdout]   |
[INFO] [stdout]   = note: `String` defined here
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `String`
[INFO] [stdout]  --> src/hexchat.rs:107:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &[String], &UserData)
[INFO] [stdout]   |                              ^^^^^^
[INFO] [stdout]  --> /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/string.rs:362:1
[INFO] [stdout]   |
[INFO] [stdout]   = note: `String` defined here
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `UserData` in this scope
[INFO] [stdout]  --> src/hexchat.rs:107:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &[String], &UserData)
[INFO] [stdout]   |                                        ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found trait `FnMut`
[INFO] [stdout]  --> src/hexchat.rs:107:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &[String], &UserData)
[INFO] [stdout]   | ^^^^^ not a function, tuple struct or tuple variant
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0423, E0425.
[INFO] [stdout] For more information about an error, try `rustc --explain E0423`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/hexchat.rs - hexchat::Hexchat::hook_print_attrs (line 265) stdout ----
[INFO] [stdout] error: `->` used for field access or method call
[INFO] [stdout]  --> src/hexchat.rs:267:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | -> Eat
[INFO] [stdout]   | ^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the `.` operator will dereference the value if needed
[INFO] [stdout] help: try using `.` instead
[INFO] [stdout]   |
[INFO] [stdout] 4 | . Eat
[INFO] [stdout]   | ~
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Hexchat` in this scope
[INFO] [stdout]  --> src/hexchat.rs:266:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &EventAttrs, &UserData)
[INFO] [stdout]   |        ^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this unit variant
[INFO] [stdout]   |
[INFO] [stdout] 2 + use hexchat_api::Eat::Hexchat;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `String`
[INFO] [stdout]  --> src/hexchat.rs:266:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &EventAttrs, &UserData)
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout]  --> /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/string.rs:362:1
[INFO] [stdout]   |
[INFO] [stdout]   = note: `String` defined here
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `EventAttrs` in this scope
[INFO] [stdout]  --> src/hexchat.rs:266:29
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &EventAttrs, &UserData)
[INFO] [stdout]   |                             ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `UserData` in this scope
[INFO] [stdout]  --> src/hexchat.rs:266:42
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &EventAttrs, &UserData)
[INFO] [stdout]   |                                          ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found trait `FnMut`
[INFO] [stdout]  --> src/hexchat.rs:266:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &EventAttrs, &UserData)
[INFO] [stdout]   | ^^^^^ not a function, tuple struct or tuple variant
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0423, E0425.
[INFO] [stdout] For more information about an error, try `rustc --explain E0423`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/hexchat.rs - hexchat::Hexchat::hook_server (line 170) stdout ----
[INFO] [stdout] error: `->` used for field access or method call
[INFO] [stdout]  --> src/hexchat.rs:172:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | -> Eat
[INFO] [stdout]   | ^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the `.` operator will dereference the value if needed
[INFO] [stdout] help: try using `.` instead
[INFO] [stdout]   |
[INFO] [stdout] 4 | . Eat
[INFO] [stdout]   | ~
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Hexchat` in this scope
[INFO] [stdout]  --> src/hexchat.rs:171:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &[String], &UserData)
[INFO] [stdout]   |        ^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this unit variant
[INFO] [stdout]   |
[INFO] [stdout] 2 + use hexchat_api::Eat::Hexchat;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `String`
[INFO] [stdout]  --> src/hexchat.rs:171:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &[String], &UserData)
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout]  --> /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/string.rs:362:1
[INFO] [stdout]   |
[INFO] [stdout]   = note: `String` defined here
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `String`
[INFO] [stdout]  --> src/hexchat.rs:171:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &[String], &UserData)
[INFO] [stdout]   |                              ^^^^^^
[INFO] [stdout]  --> /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/string.rs:362:1
[INFO] [stdout]   |
[INFO] [stdout]   = note: `String` defined here
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `UserData` in this scope
[INFO] [stdout]  --> src/hexchat.rs:171:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &[String], &UserData)
[INFO] [stdout]   |                                        ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found trait `FnMut`
[INFO] [stdout]  --> src/hexchat.rs:171:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &[String], &UserData)
[INFO] [stdout]   | ^^^^^ not a function, tuple struct or tuple variant
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0423, E0425.
[INFO] [stdout] For more information about an error, try `rustc --explain E0423`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/hexchat.rs - hexchat::Hexchat::hook_print (line 218) stdout ----
[INFO] [stdout] error: `->` used for field access or method call
[INFO] [stdout]  --> src/hexchat.rs:219:39
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &UserData) -> Eat
[INFO] [stdout]   |                                       ^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the `.` operator will dereference the value if needed
[INFO] [stdout] help: try using `.` instead
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &UserData) . Eat
[INFO] [stdout]   |                                       ~
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Hexchat` in this scope
[INFO] [stdout]  --> src/hexchat.rs:219:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &UserData) -> Eat
[INFO] [stdout]   |        ^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this unit variant
[INFO] [stdout]   |
[INFO] [stdout] 2 + use hexchat_api::Eat::Hexchat;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `String`
[INFO] [stdout]  --> src/hexchat.rs:219:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &UserData) -> Eat
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout]  --> /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/string.rs:362:1
[INFO] [stdout]   |
[INFO] [stdout]   = note: `String` defined here
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `UserData` in this scope
[INFO] [stdout]  --> src/hexchat.rs:219:29
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &UserData) -> Eat
[INFO] [stdout]   |                             ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found trait `FnMut`
[INFO] [stdout]  --> src/hexchat.rs:219:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &[String], &UserData) -> Eat
[INFO] [stdout]   | ^^^^^ not a function, tuple struct or tuple variant
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0423, E0425.
[INFO] [stdout] For more information about an error, try `rustc --explain E0423`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/hexchat.rs - hexchat::Hexchat::hook_timer (line 313) stdout ----
[INFO] [stdout] error: `->` used for field access or method call
[INFO] [stdout]  --> src/hexchat.rs:314:28
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &UserData) -> i32
[INFO] [stdout]   |                            ^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the `.` operator will dereference the value if needed
[INFO] [stdout] help: try using `.` instead
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &UserData) . i32
[INFO] [stdout]   |                            ~
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Hexchat` in this scope
[INFO] [stdout]  --> src/hexchat.rs:314:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &UserData) -> i32
[INFO] [stdout]   |        ^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this unit variant
[INFO] [stdout]   |
[INFO] [stdout] 2 + use hexchat_api::Eat::Hexchat;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `UserData` in this scope
[INFO] [stdout]  --> src/hexchat.rs:314:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &UserData) -> i32
[INFO] [stdout]   |                  ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found trait `FnMut`
[INFO] [stdout]  --> src/hexchat.rs:314:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | FnMut(&Hexchat, &UserData) -> i32
[INFO] [stdout]   | ^^^^^ not a function, tuple struct or tuple variant
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0423, E0425.
[INFO] [stdout] For more information about an error, try `rustc --explain E0423`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/hexchat.rs - hexchat::Hexchat::hook_command (line 106)
[INFO] [stdout]     src/hexchat.rs - hexchat::Hexchat::hook_print (line 218)
[INFO] [stdout]     src/hexchat.rs - hexchat::Hexchat::hook_print_attrs (line 265)
[INFO] [stdout]     src/hexchat.rs - hexchat::Hexchat::hook_server (line 170)
[INFO] [stdout]     src/hexchat.rs - hexchat::Hexchat::hook_timer (line 313)
[INFO] [stdout]     src/utils.rs - utils::hc_print (line 23)
[INFO] [stdout]     src/utils.rs - utils::hc_print_th (line 54)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 7 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "390eebf22020ff7f770d9bda1a906c3148e8afb4f4f4ef33bb7f8c80b4e0924b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "390eebf22020ff7f770d9bda1a906c3148e8afb4f4f4ef33bb7f8c80b4e0924b", kill_on_drop: false }`
[INFO] [stdout] 390eebf22020ff7f770d9bda1a906c3148e8afb4f4f4ef33bb7f8c80b4e0924b
