[INFO] fetching crate observe 1.2.0...
[INFO] testing observe-1.2.0 against beta-2025-10-28 for beta-1.92-2
[INFO] extracting crate observe 1.2.0 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate observe 1.2.0
[INFO] finished tweaking crates.io crate observe 1.2.0
[INFO] tweaked toml for crates.io crate observe 1.2.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate observe 1.2.0 on toolchain beta-2025-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 42 packages to latest compatible versions
[INFO] [stderr]       Adding mockall v0.11.4 (available: v0.13.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 07145618a5a9b44f809c055db3165ba54cfe1657eaf882d2d345ab4627da9c03
[INFO] running `Command { std: "docker" "start" "-a" "07145618a5a9b44f809c055db3165ba54cfe1657eaf882d2d345ab4627da9c03", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "07145618a5a9b44f809c055db3165ba54cfe1657eaf882d2d345ab4627da9c03", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "07145618a5a9b44f809c055db3165ba54cfe1657eaf882d2d345ab4627da9c03", kill_on_drop: false }`
[INFO] [stdout] 07145618a5a9b44f809c055db3165ba54cfe1657eaf882d2d345ab4627da9c03
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4e8cf3ee98d060f032c9a88d11cd614b3a213136a83217c0f61d2b8a9fcd96e2
[INFO] running `Command { std: "docker" "start" "-a" "4e8cf3ee98d060f032c9a88d11cd614b3a213136a83217c0f61d2b8a9fcd96e2", kill_on_drop: false }`
[INFO] [stderr]    Compiling enclose v1.2.1
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling observe v1.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:24:3
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Rc::as_ptr(&self.ptr).eq(&Rc::as_ptr(&other.ptr))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_wide_pointer_comparisons)]` on by default
[INFO] [stdout] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 24 -         Rc::as_ptr(&self.ptr).eq(&Rc::as_ptr(&other.ptr))
[INFO] [stdout] 24 +         std::ptr::addr_eq(Rc::as_ptr(&self.ptr), Rc::as_ptr(&other.ptr))
[INFO] [stdout]    |
[INFO] [stdout] help: use explicit `std::ptr::eq` method to compare metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 24 -         Rc::as_ptr(&self.ptr).eq(&Rc::as_ptr(&other.ptr))
[INFO] [stdout] 24 +         std::ptr::eq(Rc::as_ptr(&self.ptr), Rc::as_ptr(&other.ptr))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:32:3
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Rc::as_ptr(&self.ptr).cast::<()>().cmp(&Rc::as_ptr(&other.ptr).cast::<()>())
[INFO] [stdout]    |                              +++++++++++++                            +++++++++++++
[INFO] [stdout] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 32 |         { #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr)) }
[INFO] [stdout]    |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Some(Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr)))
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Some(Rc::as_ptr(&self.ptr).cast::<()>().cmp(&Rc::as_ptr(&other.ptr).cast::<()>()))
[INFO] [stdout]    |                                   +++++++++++++                            +++++++++++++
[INFO] [stdout] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Some({ #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr)) })
[INFO] [stdout]    |              +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:61:3
[INFO] [stdout]    |
[INFO] [stdout] 61 |         Weak::as_ptr(&self.ptr).eq(&Weak::as_ptr(&other.ptr))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 61 -         Weak::as_ptr(&self.ptr).eq(&Weak::as_ptr(&other.ptr))
[INFO] [stdout] 61 +         std::ptr::addr_eq(Weak::as_ptr(&self.ptr), Weak::as_ptr(&other.ptr))
[INFO] [stdout]    |
[INFO] [stdout] help: use explicit `std::ptr::eq` method to compare metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 61 -         Weak::as_ptr(&self.ptr).eq(&Weak::as_ptr(&other.ptr))
[INFO] [stdout] 61 +         std::ptr::eq(Weak::as_ptr(&self.ptr), Weak::as_ptr(&other.ptr))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:69:3
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Weak::as_ptr(&self.ptr).cast::<()>().cmp(&Weak::as_ptr(&other.ptr).cast::<()>())
[INFO] [stdout]    |                                +++++++++++++                              +++++++++++++
[INFO] [stdout] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 69 |         { #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr)) }
[INFO] [stdout]    |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Some(Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr)))
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Some(Weak::as_ptr(&self.ptr).cast::<()>().cmp(&Weak::as_ptr(&other.ptr).cast::<()>()))
[INFO] [stdout]    |                                     +++++++++++++                              +++++++++++++
[INFO] [stdout] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Some({ #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr)) })
[INFO] [stdout]    |              +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]  --> src/batch.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 |     unsafe { STARTED.get() }
[INFO] [stdout]   |              ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]   |
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/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)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/batch.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 |         if !STARTED.get() {
[INFO] [stdout]    |             ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 |             STARTED.set(true);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 |         if !MICROTASK.get() {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 |             MICROTASK.set(true);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 |     unsafe { MICROTASK.get() }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:54:3
[INFO] [stdout]    |
[INFO] [stdout] 54 |         STARTED.set(false);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:61:30
[INFO] [stdout]    |
[INFO] [stdout] 61 |             let mut borrow = unsafe { CHANGED.borrow_mut() };
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]    --> src/reaction.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 138 | /                 CHANGED
[INFO] [stdout] 139 | |                     .borrow_mut()
[INFO] [stdout]     | |_________________________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/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] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.92s
[INFO] running `Command { std: "docker" "inspect" "4e8cf3ee98d060f032c9a88d11cd614b3a213136a83217c0f61d2b8a9fcd96e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4e8cf3ee98d060f032c9a88d11cd614b3a213136a83217c0f61d2b8a9fcd96e2", kill_on_drop: false }`
[INFO] [stdout] 4e8cf3ee98d060f032c9a88d11cd614b3a213136a83217c0f61d2b8a9fcd96e2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a327ab2d99e6d2b1ca189214b0b307c2a06b6de8ea238bf4ba765e64c46551e6
[INFO] running `Command { std: "docker" "start" "-a" "a327ab2d99e6d2b1ca189214b0b307c2a06b6de8ea238bf4ba765e64c46551e6", kill_on_drop: false }`
[INFO] [stderr]    Compiling predicates-core v1.0.9
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling fragile v2.0.1
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stderr]    Compiling float-cmp v0.9.0
[INFO] [stderr]    Compiling mockall_derive v0.11.4
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:24:3
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Rc::as_ptr(&self.ptr).eq(&Rc::as_ptr(&other.ptr))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_wide_pointer_comparisons)]` on by default
[INFO] [stdout] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 24 -         Rc::as_ptr(&self.ptr).eq(&Rc::as_ptr(&other.ptr))
[INFO] [stdout] 24 +         std::ptr::addr_eq(Rc::as_ptr(&self.ptr), Rc::as_ptr(&other.ptr))
[INFO] [stdout]    |
[INFO] [stdout] help: use explicit `std::ptr::eq` method to compare metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 24 -         Rc::as_ptr(&self.ptr).eq(&Rc::as_ptr(&other.ptr))
[INFO] [stdout] 24 +         std::ptr::eq(Rc::as_ptr(&self.ptr), Rc::as_ptr(&other.ptr))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:32:3
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Rc::as_ptr(&self.ptr).cast::<()>().cmp(&Rc::as_ptr(&other.ptr).cast::<()>())
[INFO] [stdout]    |                              +++++++++++++                            +++++++++++++
[INFO] [stdout] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 32 |         { #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr)) }
[INFO] [stdout]    |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Some(Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr)))
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Some(Rc::as_ptr(&self.ptr).cast::<()>().cmp(&Rc::as_ptr(&other.ptr).cast::<()>()))
[INFO] [stdout]    |                                   +++++++++++++                            +++++++++++++
[INFO] [stdout] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Some({ #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr)) })
[INFO] [stdout]    |              +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:61:3
[INFO] [stdout]    |
[INFO] [stdout] 61 |         Weak::as_ptr(&self.ptr).eq(&Weak::as_ptr(&other.ptr))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 61 -         Weak::as_ptr(&self.ptr).eq(&Weak::as_ptr(&other.ptr))
[INFO] [stdout] 61 +         std::ptr::addr_eq(Weak::as_ptr(&self.ptr), Weak::as_ptr(&other.ptr))
[INFO] [stdout]    |
[INFO] [stdout] help: use explicit `std::ptr::eq` method to compare metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 61 -         Weak::as_ptr(&self.ptr).eq(&Weak::as_ptr(&other.ptr))
[INFO] [stdout] 61 +         std::ptr::eq(Weak::as_ptr(&self.ptr), Weak::as_ptr(&other.ptr))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:69:3
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Weak::as_ptr(&self.ptr).cast::<()>().cmp(&Weak::as_ptr(&other.ptr).cast::<()>())
[INFO] [stdout]    |                                +++++++++++++                              +++++++++++++
[INFO] [stdout] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 69 |         { #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr)) }
[INFO] [stdout]    |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Some(Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr)))
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Some(Weak::as_ptr(&self.ptr).cast::<()>().cmp(&Weak::as_ptr(&other.ptr).cast::<()>()))
[INFO] [stdout]    |                                     +++++++++++++                              +++++++++++++
[INFO] [stdout] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Some({ #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr)) })
[INFO] [stdout]    |              +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]  --> src/batch.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 |     unsafe { STARTED.get() }
[INFO] [stdout]   |              ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]   |
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/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)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/batch.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 |         if !STARTED.get() {
[INFO] [stdout]    |             ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 |             STARTED.set(true);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 |         if !MICROTASK.get() {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 |             MICROTASK.set(true);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 |     unsafe { MICROTASK.get() }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:54:3
[INFO] [stdout]    |
[INFO] [stdout] 54 |         STARTED.set(false);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:61:30
[INFO] [stdout]    |
[INFO] [stdout] 61 |             let mut borrow = unsafe { CHANGED.borrow_mut() };
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]    --> src/reaction.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 138 | /                 CHANGED
[INFO] [stdout] 139 | |                     .borrow_mut()
[INFO] [stdout]     | |_________________________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/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] [stderr]    Compiling predicates-tree v1.0.12
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling predicates v2.1.5
[INFO] [stderr]    Compiling mockall v0.11.4
[INFO] [stderr]    Compiling observe v1.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:24:3
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Rc::as_ptr(&self.ptr).eq(&Rc::as_ptr(&other.ptr))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_wide_pointer_comparisons)]` on by default
[INFO] [stdout] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 24 -         Rc::as_ptr(&self.ptr).eq(&Rc::as_ptr(&other.ptr))
[INFO] [stdout] 24 +         std::ptr::addr_eq(Rc::as_ptr(&self.ptr), Rc::as_ptr(&other.ptr))
[INFO] [stdout]    |
[INFO] [stdout] help: use explicit `std::ptr::eq` method to compare metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 24 -         Rc::as_ptr(&self.ptr).eq(&Rc::as_ptr(&other.ptr))
[INFO] [stdout] 24 +         std::ptr::eq(Rc::as_ptr(&self.ptr), Rc::as_ptr(&other.ptr))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:32:3
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Rc::as_ptr(&self.ptr).cast::<()>().cmp(&Rc::as_ptr(&other.ptr).cast::<()>())
[INFO] [stdout]    |                              +++++++++++++                            +++++++++++++
[INFO] [stdout] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 32 |         { #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr)) }
[INFO] [stdout]    |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Some(Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr)))
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Some(Rc::as_ptr(&self.ptr).cast::<()>().cmp(&Rc::as_ptr(&other.ptr).cast::<()>()))
[INFO] [stdout]    |                                   +++++++++++++                            +++++++++++++
[INFO] [stdout] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 38 |         Some({ #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr)) })
[INFO] [stdout]    |              +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:61:3
[INFO] [stdout]    |
[INFO] [stdout] 61 |         Weak::as_ptr(&self.ptr).eq(&Weak::as_ptr(&other.ptr))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 61 -         Weak::as_ptr(&self.ptr).eq(&Weak::as_ptr(&other.ptr))
[INFO] [stdout] 61 +         std::ptr::addr_eq(Weak::as_ptr(&self.ptr), Weak::as_ptr(&other.ptr))
[INFO] [stdout]    |
[INFO] [stdout] help: use explicit `std::ptr::eq` method to compare metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 61 -         Weak::as_ptr(&self.ptr).eq(&Weak::as_ptr(&other.ptr))
[INFO] [stdout] 61 +         std::ptr::eq(Weak::as_ptr(&self.ptr), Weak::as_ptr(&other.ptr))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:69:3
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 69 |         Weak::as_ptr(&self.ptr).cast::<()>().cmp(&Weak::as_ptr(&other.ptr).cast::<()>())
[INFO] [stdout]    |                                +++++++++++++                              +++++++++++++
[INFO] [stdout] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 69 |         { #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr)) }
[INFO] [stdout]    |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stdout]   --> src/addr.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Some(Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr)))
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: use untyped pointers to only compare their addresses
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Some(Weak::as_ptr(&self.ptr).cast::<()>().cmp(&Weak::as_ptr(&other.ptr).cast::<()>()))
[INFO] [stdout]    |                                     +++++++++++++                              +++++++++++++
[INFO] [stdout] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Some({ #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr)) })
[INFO] [stdout]    |              +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]  --> src/batch.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 |     unsafe { STARTED.get() }
[INFO] [stdout]   |              ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]   |
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/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)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/batch.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 |         if !STARTED.get() {
[INFO] [stdout]    |             ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 |             STARTED.set(true);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 |         if !MICROTASK.get() {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 |             MICROTASK.set(true);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 |     unsafe { MICROTASK.get() }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:54:3
[INFO] [stdout]    |
[INFO] [stdout] 54 |         STARTED.set(false);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]   --> src/batch.rs:61:30
[INFO] [stdout]    |
[INFO] [stdout] 61 |             let mut borrow = unsafe { CHANGED.borrow_mut() };
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stdout]    --> src/reaction.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 138 | /                 CHANGED
[INFO] [stdout] 139 | |                     .borrow_mut()
[INFO] [stdout]     | |_________________________________^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/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] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 8.53s
[INFO] running `Command { std: "docker" "inspect" "a327ab2d99e6d2b1ca189214b0b307c2a06b6de8ea238bf4ba765e64c46551e6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a327ab2d99e6d2b1ca189214b0b307c2a06b6de8ea238bf4ba765e64c46551e6", kill_on_drop: false }`
[INFO] [stdout] a327ab2d99e6d2b1ca189214b0b307c2a06b6de8ea238bf4ba765e64c46551e6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d9eeed8ca70cd65e5b7a76ac110257fda0961ffd6bd3ccaa6a84305d42a30d38
[INFO] running `Command { std: "docker" "start" "-a" "d9eeed8ca70cd65e5b7a76ac110257fda0961ffd6bd3ccaa6a84305d42a30d38", kill_on_drop: false }`
[INFO] [stderr] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stderr]   --> src/addr.rs:24:3
[INFO] [stderr]    |
[INFO] [stderr] 24 |         Rc::as_ptr(&self.ptr).eq(&Rc::as_ptr(&other.ptr))
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(ambiguous_wide_pointer_comparisons)]` on by default
[INFO] [stderr] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stderr]    |
[INFO] [stderr] 24 -         Rc::as_ptr(&self.ptr).eq(&Rc::as_ptr(&other.ptr))
[INFO] [stderr] 24 +         std::ptr::addr_eq(Rc::as_ptr(&self.ptr), Rc::as_ptr(&other.ptr))
[INFO] [stderr]    |
[INFO] [stderr] help: use explicit `std::ptr::eq` method to compare metadata and addresses
[INFO] [stderr]    |
[INFO] [stderr] 24 -         Rc::as_ptr(&self.ptr).eq(&Rc::as_ptr(&other.ptr))
[INFO] [stderr] 24 +         std::ptr::eq(Rc::as_ptr(&self.ptr), Rc::as_ptr(&other.ptr))
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stderr]   --> src/addr.rs:32:3
[INFO] [stderr]    |
[INFO] [stderr] 32 |         Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr))
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: use untyped pointers to only compare their addresses
[INFO] [stderr]    |
[INFO] [stderr] 32 |         Rc::as_ptr(&self.ptr).cast::<()>().cmp(&Rc::as_ptr(&other.ptr).cast::<()>())
[INFO] [stderr]    |                              +++++++++++++                            +++++++++++++
[INFO] [stderr] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stderr]    |
[INFO] [stderr] 32 |         { #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr)) }
[INFO] [stderr]    |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                    +
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stderr]   --> src/addr.rs:38:8
[INFO] [stderr]    |
[INFO] [stderr] 38 |         Some(Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr)))
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: use untyped pointers to only compare their addresses
[INFO] [stderr]    |
[INFO] [stderr] 38 |         Some(Rc::as_ptr(&self.ptr).cast::<()>().cmp(&Rc::as_ptr(&other.ptr).cast::<()>()))
[INFO] [stderr]    |                                   +++++++++++++                            +++++++++++++
[INFO] [stderr] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stderr]    |
[INFO] [stderr] 38 |         Some({ #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Rc::as_ptr(&self.ptr).cmp(&Rc::as_ptr(&other.ptr)) })
[INFO] [stderr]    |              +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                    +
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stderr]   --> src/addr.rs:61:3
[INFO] [stderr]    |
[INFO] [stderr] 61 |         Weak::as_ptr(&self.ptr).eq(&Weak::as_ptr(&other.ptr))
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: use `std::ptr::addr_eq` or untyped pointers to only compare their addresses
[INFO] [stderr]    |
[INFO] [stderr] 61 -         Weak::as_ptr(&self.ptr).eq(&Weak::as_ptr(&other.ptr))
[INFO] [stderr] 61 +         std::ptr::addr_eq(Weak::as_ptr(&self.ptr), Weak::as_ptr(&other.ptr))
[INFO] [stderr]    |
[INFO] [stderr] help: use explicit `std::ptr::eq` method to compare metadata and addresses
[INFO] [stderr]    |
[INFO] [stderr] 61 -         Weak::as_ptr(&self.ptr).eq(&Weak::as_ptr(&other.ptr))
[INFO] [stderr] 61 +         std::ptr::eq(Weak::as_ptr(&self.ptr), Weak::as_ptr(&other.ptr))
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stderr]   --> src/addr.rs:69:3
[INFO] [stderr]    |
[INFO] [stderr] 69 |         Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr))
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: use untyped pointers to only compare their addresses
[INFO] [stderr]    |
[INFO] [stderr] 69 |         Weak::as_ptr(&self.ptr).cast::<()>().cmp(&Weak::as_ptr(&other.ptr).cast::<()>())
[INFO] [stderr]    |                                +++++++++++++                              +++++++++++++
[INFO] [stderr] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stderr]    |
[INFO] [stderr] 69 |         { #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr)) }
[INFO] [stderr]    |         +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                        +
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous wide pointer comparison, the comparison includes metadata which may not be expected
[INFO] [stderr]   --> src/addr.rs:75:8
[INFO] [stderr]    |
[INFO] [stderr] 75 |         Some(Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr)))
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: use untyped pointers to only compare their addresses
[INFO] [stderr]    |
[INFO] [stderr] 75 |         Some(Weak::as_ptr(&self.ptr).cast::<()>().cmp(&Weak::as_ptr(&other.ptr).cast::<()>()))
[INFO] [stderr]    |                                     +++++++++++++                              +++++++++++++
[INFO] [stderr] help: or expect the lint to compare the pointers metadata and addresses
[INFO] [stderr]    |
[INFO] [stderr] 75 |         Some({ #[expect(ambiguous_wide_pointer_comparisons, reason = "...")] Weak::as_ptr(&self.ptr).cmp(&Weak::as_ptr(&other.ptr)) })
[INFO] [stderr]    |              +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                        +
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]  --> src/batch.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 |     unsafe { STARTED.get() }
[INFO] [stderr]   |              ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]   |
[INFO] [stderr]   = note: for more information, see <https://doc.rust-lang.org/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)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]   --> src/batch.rs:26:7
[INFO] [stderr]    |
[INFO] [stderr] 26 |         if !STARTED.get() {
[INFO] [stderr]    |             ^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stderr]   --> src/batch.rs:27:4
[INFO] [stderr]    |
[INFO] [stderr] 27 |             STARTED.set(true);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stderr]   --> src/batch.rs:39:7
[INFO] [stderr]    |
[INFO] [stderr] 39 |         if !MICROTASK.get() {
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stderr]   --> src/batch.rs:40:4
[INFO] [stderr]    |
[INFO] [stderr] 40 |             MICROTASK.set(true);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stderr]   --> src/batch.rs:49:11
[INFO] [stderr]    |
[INFO] [stderr] 49 |     unsafe { MICROTASK.get() }
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stderr]   --> src/batch.rs:54:3
[INFO] [stderr]    |
[INFO] [stderr] 54 |         STARTED.set(false);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stderr]   --> src/batch.rs:61:30
[INFO] [stderr]    |
[INFO] [stderr] 61 |             let mut borrow = unsafe { CHANGED.borrow_mut() };
[INFO] [stderr]    |                                       ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stderr]    |
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/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
[INFO] [stderr]    --> src/reaction.rs:138:5
[INFO] [stderr]     |
[INFO] [stderr] 138 | /                 CHANGED
[INFO] [stderr] 139 | |                     .borrow_mut()
[INFO] [stderr]     | |_________________________________^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/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: `observe` (lib) generated 15 warnings
[INFO] [stderr] warning: `observe` (lib test) generated 15 warnings (15 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/observe-f46abfe2967cea45)
[INFO] [stdout] 
[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] [stderr]      Running tests/main.rs (/opt/rustwide/target/debug/deps/main-f9f00a8fa2b1aeb3)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test check_invalidation ... ok
[INFO] [stdout] test computed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/mock.rs (/opt/rustwide/target/debug/deps/mock-c00a0488a08c2f89)
[INFO] [stdout] 
[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] [stderr]    Doc-tests observe
[INFO] [stdout] 
[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] running `Command { std: "docker" "inspect" "d9eeed8ca70cd65e5b7a76ac110257fda0961ffd6bd3ccaa6a84305d42a30d38", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d9eeed8ca70cd65e5b7a76ac110257fda0961ffd6bd3ccaa6a84305d42a30d38", kill_on_drop: false }`
[INFO] [stdout] d9eeed8ca70cd65e5b7a76ac110257fda0961ffd6bd3ccaa6a84305d42a30d38
