[INFO] cloning repository https://github.com/Bylx666/key-lang
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Bylx666/key-lang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBylx666%2Fkey-lang", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBylx666%2Fkey-lang'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 51abb176cee53da57b07e423a1c29df289020771
[INFO] building Bylx666/key-lang against master#ad211ced81509462cdfe4c29ed10f97279a0acae for pr-135216
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBylx666%2Fkey-lang" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Bylx666/key-lang on toolchain ad211ced81509462cdfe4c29ed10f97279a0acae
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-2-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/Bylx666/key-lang
[INFO] finished tweaking git repo https://github.com/Bylx666/key-lang
[INFO] tweaked toml for git repo https://github.com/Bylx666/key-lang written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/Bylx666/key-lang already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5057b013ea9359382ddef20a7eb5ce766663016e7497c21b61270389f314f1a4
[INFO] running `Command { std: "docker" "start" "-a" "5057b013ea9359382ddef20a7eb5ce766663016e7497c21b61270389f314f1a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5057b013ea9359382ddef20a7eb5ce766663016e7497c21b61270389f314f1a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5057b013ea9359382ddef20a7eb5ce766663016e7497c21b61270389f314f1a4", kill_on_drop: false }`
[INFO] [stdout] 5057b013ea9359382ddef20a7eb5ce766663016e7497c21b61270389f314f1a4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b2408299ac87cb644275ed7cc7419dbe5345c2eb93573ee7c89c86ed49e49c3b
[INFO] running `Command { std: "docker" "start" "-a" "b2408299ac87cb644275ed7cc7419dbe5345c2eb93573ee7c89c86ed49e49c3b", kill_on_drop: false }`
[INFO] [stderr]    Compiling key-lang v0.1.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `ClassFunc` is never constructed
[INFO] [stdout]    --> src/scan/stmt.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct ClassFunc {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClassFunc` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kself` is never read
[INFO] [stdout]    --> src/runtime/mod.rs:218:7
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub struct RunResult {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 218 |   pub kself: Litr
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RunResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/main.rs:56:24
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let opts = unsafe {&mut GLOBAL_OPTIONS};
[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]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let opts = unsafe {&raw mut GLOBAL_OPTIONS};
[INFO] [stdout]    |                        ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]   --> src/main.rs:78:16
[INFO] [stdout]    |
[INFO] [stdout] 78 |       for n in runtime::call::CALL_STACK.iter().rev() {
[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/main.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let mut n = native::WAITING.lock().unwrap();
[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/main.rs:97:11
[INFO] [stdout]    |
[INFO] [stdout] 97 |       n = native::WAITING_CVAR.wait(n).unwrap();
[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 mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/scan/stmt.rs:576:43
[INFO] [stdout]     |
[INFO] [stdout] 576 |         let mut file_dir = std::mem::take(&mut crate::FILE_PATH);
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 576 |         let mut file_dir = std::mem::take(&raw mut crate::FILE_PATH);
[INFO] [stdout]     |                                           ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/scan/stmt.rs:590:45
[INFO] [stdout]     |
[INFO] [stdout] 590 |           let mut file_dir = std::mem::take(&mut crate::FILE_PATH);
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 590 |           let mut file_dir = std::mem::take(&raw mut crate::FILE_PATH);
[INFO] [stdout]     |                                             ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/scan/literal.rs:345:13
[INFO] [stdout]     |
[INFO] [stdout] 345 |             super::expr::ON_PIPE.take().expect("管道占位符只能在管道操作符'|>'后使用")
[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/runtime/call.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 |     if CALL_STACK.len()>MAX_CALL_COUNT {
[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 mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/runtime/call.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     CALL_STACK.push(CallStackElem{file, line:LINE, fname})
[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 mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/runtime/call.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 |   unsafe{CALL_STACK.pop();}
[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 mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/runtime/call.rs:152:42
[INFO] [stdout]     |
[INFO] [stdout] 152 |       let mut file_path = std::mem::take(&mut crate::FILE_PATH);
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 152 |       let mut file_path = std::mem::take(&raw mut crate::FILE_PATH);
[INFO] [stdout]     |                                          ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/runtime/externer.rs:21:26
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let exec = unsafe {EXEC.as_mut().expect("未找到extern函数，这是bug")};
[INFO] [stdout]    |                            ^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 56 |           Local(f)=> translate_local_impl! { f 
[INFO] [stdout]    |  ____________________-
[INFO] [stdout] 57 | |           0  agent0 ()
[INFO] [stdout] 58 | |           1  agent1 (a)
[INFO] [stdout] 59 | |           2  agent2 (a,b)
[INFO] [stdout] ...  |
[INFO] [stdout] 64 | |           7  agent7 (a,b,c,d,e,f,g)
[INFO] [stdout] 65 | |         },
[INFO] [stdout]    | |_________- in this macro invocation
[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]    = note: this warning originates in the macro `translate_local_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/primitive/mod.rs:77:22
[INFO] [stdout]    |
[INFO] [stdout] 77 |   if let Some(cls) = &mut CLASSES {
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 77 |   if let Some(cls) = &raw mut CLASSES {
[INFO] [stdout]    |                      ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/primitive/litr.rs:284:56
[INFO] [stdout]     |
[INFO] [stdout] 284 |           (Function::Native(l), Function::Native(r))=> l==r,
[INFO] [stdout]     |                                                        ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]     = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]     |
[INFO] [stdout] 284 |           (Function::Native(l), Function::Native(r))=> std::ptr::fn_addr_eq(*l, *r),
[INFO] [stdout]     |                                                        ++++++++++++++++++++++ ~~~ +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/primitive/kstd.rs:50:39
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut file_dir = std::mem::take(&mut crate::FILE_PATH);
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut file_dir = std::mem::take(&raw mut crate::FILE_PATH);
[INFO] [stdout]    |                                       ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]   --> src/utils.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 |       buf.push(&crate::FILE_PATH);
[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] 52 |       buf.push(&raw const crate::FILE_PATH);
[INFO] [stdout]    |                ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/native.rs:125:11
[INFO] [stdout]     |
[INFO] [stdout] 125 |   unsafe{*WAITING.lock().unwrap() += 1}
[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/native.rs:130:6
[INFO] [stdout]     |
[INFO] [stdout] 130 |     *WAITING.lock().unwrap() -= 1;
[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/native.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 131 |     WAITING_CVAR.notify_one();
[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] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.40s
[INFO] running `Command { std: "docker" "inspect" "b2408299ac87cb644275ed7cc7419dbe5345c2eb93573ee7c89c86ed49e49c3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b2408299ac87cb644275ed7cc7419dbe5345c2eb93573ee7c89c86ed49e49c3b", kill_on_drop: false }`
[INFO] [stdout] b2408299ac87cb644275ed7cc7419dbe5345c2eb93573ee7c89c86ed49e49c3b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8d7ab4f7545e616dddf46e080e64e94a6e146b0a7990159e53f148689adb351d
[INFO] running `Command { std: "docker" "start" "-a" "8d7ab4f7545e616dddf46e080e64e94a6e146b0a7990159e53f148689adb351d", kill_on_drop: false }`
[INFO] [stderr]    Compiling key-lang v0.1.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `ClassFunc` is never constructed
[INFO] [stdout]    --> src/scan/stmt.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct ClassFunc {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ClassFunc` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kself` is never read
[INFO] [stdout]    --> src/runtime/mod.rs:218:7
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub struct RunResult {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 218 |   pub kself: Litr
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RunResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/main.rs:56:24
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let opts = unsafe {&mut GLOBAL_OPTIONS};
[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]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let opts = unsafe {&raw mut GLOBAL_OPTIONS};
[INFO] [stdout]    |                        ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]   --> src/main.rs:78:16
[INFO] [stdout]    |
[INFO] [stdout] 78 |       for n in runtime::call::CALL_STACK.iter().rev() {
[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/main.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let mut n = native::WAITING.lock().unwrap();
[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/main.rs:97:11
[INFO] [stdout]    |
[INFO] [stdout] 97 |       n = native::WAITING_CVAR.wait(n).unwrap();
[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 mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/scan/stmt.rs:576:43
[INFO] [stdout]     |
[INFO] [stdout] 576 |         let mut file_dir = std::mem::take(&mut crate::FILE_PATH);
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 576 |         let mut file_dir = std::mem::take(&raw mut crate::FILE_PATH);
[INFO] [stdout]     |                                           ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/scan/stmt.rs:590:45
[INFO] [stdout]     |
[INFO] [stdout] 590 |           let mut file_dir = std::mem::take(&mut crate::FILE_PATH);
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 590 |           let mut file_dir = std::mem::take(&raw mut crate::FILE_PATH);
[INFO] [stdout]     |                                             ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/scan/literal.rs:345:13
[INFO] [stdout]     |
[INFO] [stdout] 345 |             super::expr::ON_PIPE.take().expect("管道占位符只能在管道操作符'|>'后使用")
[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/runtime/call.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 |     if CALL_STACK.len()>MAX_CALL_COUNT {
[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 mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/runtime/call.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     CALL_STACK.push(CallStackElem{file, line:LINE, fname})
[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 mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/runtime/call.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 |   unsafe{CALL_STACK.pop();}
[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 mutable reference to mutable static is discouraged
[INFO] [stdout]    --> src/runtime/call.rs:152:42
[INFO] [stdout]     |
[INFO] [stdout] 152 |       let mut file_path = std::mem::take(&mut crate::FILE_PATH);
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 152 |       let mut file_path = std::mem::take(&raw mut crate::FILE_PATH);
[INFO] [stdout]     |                                          ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/runtime/externer.rs:21:26
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let exec = unsafe {EXEC.as_mut().expect("未找到extern函数，这是bug")};
[INFO] [stdout]    |                            ^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 56 |           Local(f)=> translate_local_impl! { f 
[INFO] [stdout]    |  ____________________-
[INFO] [stdout] 57 | |           0  agent0 ()
[INFO] [stdout] 58 | |           1  agent1 (a)
[INFO] [stdout] 59 | |           2  agent2 (a,b)
[INFO] [stdout] ...  |
[INFO] [stdout] 64 | |           7  agent7 (a,b,c,d,e,f,g)
[INFO] [stdout] 65 | |         },
[INFO] [stdout]    | |_________- in this macro invocation
[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]    = note: this warning originates in the macro `translate_local_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/primitive/mod.rs:77:22
[INFO] [stdout]    |
[INFO] [stdout] 77 |   if let Some(cls) = &mut CLASSES {
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 77 |   if let Some(cls) = &raw mut CLASSES {
[INFO] [stdout]    |                      ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/primitive/litr.rs:284:56
[INFO] [stdout]     |
[INFO] [stdout] 284 |           (Function::Native(l), Function::Native(r))=> l==r,
[INFO] [stdout]     |                                                        ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]     = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]     |
[INFO] [stdout] 284 |           (Function::Native(l), Function::Native(r))=> std::ptr::fn_addr_eq(*l, *r),
[INFO] [stdout]     |                                                        ++++++++++++++++++++++ ~~~ +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged
[INFO] [stdout]   --> src/primitive/kstd.rs:50:39
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut file_dir = std::mem::take(&mut crate::FILE_PATH);
[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] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut file_dir = std::mem::take(&raw mut crate::FILE_PATH);
[INFO] [stdout]    |                                       ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]   --> src/utils.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 |       buf.push(&crate::FILE_PATH);
[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] 52 |       buf.push(&raw const crate::FILE_PATH);
[INFO] [stdout]    |                ~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static is discouraged
[INFO] [stdout]    --> src/native.rs:125:11
[INFO] [stdout]     |
[INFO] [stdout] 125 |   unsafe{*WAITING.lock().unwrap() += 1}
[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/native.rs:130:6
[INFO] [stdout]     |
[INFO] [stdout] 130 |     *WAITING.lock().unwrap() -= 1;
[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/native.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 131 |     WAITING_CVAR.notify_one();
[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] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.01s
[INFO] running `Command { std: "docker" "inspect" "8d7ab4f7545e616dddf46e080e64e94a6e146b0a7990159e53f148689adb351d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8d7ab4f7545e616dddf46e080e64e94a6e146b0a7990159e53f148689adb351d", kill_on_drop: false }`
[INFO] [stdout] 8d7ab4f7545e616dddf46e080e64e94a6e146b0a7990159e53f148689adb351d
