[INFO] fetching crate key-lang 0.1.1... [INFO] checking key-lang-0.1.1 against master#350d0ef0ec0493e6d21cfb265cb8211a0e74d766 for pr-145342-1 [INFO] extracting crate key-lang 0.1.1 into /workspace/builds/worker-6-tc1/source [INFO] started tweaking crates.io crate key-lang 0.1.1 [INFO] finished tweaking crates.io crate key-lang 0.1.1 [INFO] tweaked toml for crates.io crate key-lang 0.1.1 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate key-lang 0.1.1 on toolchain 350d0ef0ec0493e6d21cfb265cb8211a0e74d766 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate key-lang 0.1.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8004dfcaaca72e10ebdccef699dcabed130ac3fd1f7d78c045d0515274acfa0d [INFO] running `Command { std: "docker" "start" "-a" "8004dfcaaca72e10ebdccef699dcabed130ac3fd1f7d78c045d0515274acfa0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8004dfcaaca72e10ebdccef699dcabed130ac3fd1f7d78c045d0515274acfa0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8004dfcaaca72e10ebdccef699dcabed130ac3fd1f7d78c045d0515274acfa0d", kill_on_drop: false }` [INFO] [stdout] 8004dfcaaca72e10ebdccef699dcabed130ac3fd1f7d78c045d0515274acfa0d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5815c5e9ae6d11c9316a1c21153d568f24dc9914ec71afd92ef67d018d42caf1 [INFO] running `Command { std: "docker" "start" "-a" "5815c5e9ae6d11c9316a1c21153d568f24dc9914ec71afd92ef67d018d42caf1", kill_on_drop: false }` [INFO] [stderr] Checking key-lang v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated [INFO] [stdout] --> src/runtime/externer.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | extern fn $fname($($arg:usize,)*)-> usize { [INFO] [stdout] | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"` [INFO] [stdout] ... [INFO] [stdout] 57 | Local(f)=> translate_local_impl! { f [INFO] [stdout] | ____________________- [INFO] [stdout] 58 | | 0 agent0 () [INFO] [stdout] 59 | | 1 agent1 (a) [INFO] [stdout] 60 | | 2 agent2 (a,b) [INFO] [stdout] ... | [INFO] [stdout] 65 | | 7 agent7 (a,b,c,d,e,f,g) [INFO] [stdout] 66 | | }, [INFO] [stdout] | |_________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(missing_abi)]` on by default [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: `extern` declarations without an explicit ABI are deprecated [INFO] [stdout] --> src/runtime/externer.rs:92:26 [INFO] [stdout] | [INFO] [stdout] 92 | let callable:extern fn($($arg:usize,)*)-> usize = unsafe {transmute(f.ptr)}; [INFO] [stdout] | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"` [INFO] [stdout] ... [INFO] [stdout] 109 | / impl_arg!{ [INFO] [stdout] 110 | | 0 [INFO] [stdout] 111 | | 1 a [INFO] [stdout] 112 | | 2 a b [INFO] [stdout] ... | [INFO] [stdout] 125 | | 15 a b c d e f g h i j k l m n o [INFO] [stdout] 126 | | } [INFO] [stdout] | |___- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `impl_arg` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated [INFO] [stdout] --> src/c.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | extern { [INFO] [stdout] | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated [INFO] [stdout] --> src/runtime/externer.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | extern fn $fname($($arg:usize,)*)-> usize { [INFO] [stdout] | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"` [INFO] [stdout] ... [INFO] [stdout] 57 | Local(f)=> translate_local_impl! { f [INFO] [stdout] | ____________________- [INFO] [stdout] 58 | | 0 agent0 () [INFO] [stdout] 59 | | 1 agent1 (a) [INFO] [stdout] 60 | | 2 agent2 (a,b) [INFO] [stdout] ... | [INFO] [stdout] 65 | | 7 agent7 (a,b,c,d,e,f,g) [INFO] [stdout] 66 | | }, [INFO] [stdout] | |_________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(missing_abi)]` on by default [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: `extern` declarations without an explicit ABI are deprecated [INFO] [stdout] --> src/runtime/externer.rs:92:26 [INFO] [stdout] | [INFO] [stdout] 92 | let callable:extern fn($($arg:usize,)*)-> usize = unsafe {transmute(f.ptr)}; [INFO] [stdout] | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"` [INFO] [stdout] ... [INFO] [stdout] 109 | / impl_arg!{ [INFO] [stdout] 110 | | 0 [INFO] [stdout] 111 | | 1 a [INFO] [stdout] 112 | | 2 a b [INFO] [stdout] ... | [INFO] [stdout] 125 | | 15 a b c d e f g h i j k l m n o [INFO] [stdout] 126 | | } [INFO] [stdout] | |___- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `impl_arg` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated [INFO] [stdout] --> src/c.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | extern { [INFO] [stdout] | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/main.rs:73:24 [INFO] [stdout] | [INFO] [stdout] 73 | let opts = unsafe {&mut GLOBAL_OPTIONS}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] 73 | let opts = unsafe {&raw mut GLOBAL_OPTIONS}; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/scan/stmt.rs:512:42 [INFO] [stdout] | [INFO] [stdout] 512 | let mut place = std::mem::take(&mut crate::PLACE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] 512 | let mut place = std::mem::take(&raw mut crate::PLACE); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/scan/literal.rs:303:13 [INFO] [stdout] | [INFO] [stdout] 303 | super::expr::ON_PIPE.take().expect("管道占位符只能在管道操作符'|>'后使用") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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 [INFO] [stdout] --> src/main.rs:73:24 [INFO] [stdout] | [INFO] [stdout] 73 | let opts = unsafe {&mut GLOBAL_OPTIONS}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] 73 | let opts = unsafe {&raw mut GLOBAL_OPTIONS}; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/scan/stmt.rs:512:42 [INFO] [stdout] | [INFO] [stdout] 512 | let mut place = std::mem::take(&mut crate::PLACE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] 512 | let mut place = std::mem::take(&raw mut crate::PLACE); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/scan/literal.rs:303:13 [INFO] [stdout] | [INFO] [stdout] 303 | super::expr::ON_PIPE.take().expect("管道占位符只能在管道操作符'|>'后使用") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/runtime/calc.rs:415:44 [INFO] [stdout] | [INFO] [stdout] 415 | let can_access_private = unsafe {(*inst.cls).cx.exports} == this.exports; [INFO] [stdout] | ^^--------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut stmt::ClassDef` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations [INFO] [stdout] = note: `#[deny(dangerous_implicit_autorefs)]` on by default [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 415 | let can_access_private = unsafe {(&(*inst.cls).cx).exports} == this.exports; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/runtime/calc.rs:514:44 [INFO] [stdout] | [INFO] [stdout] 514 | let can_access_private = unsafe {(*inst.cls).cx.exports} == this.exports; [INFO] [stdout] | ^^--------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut stmt::ClassDef` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 514 | let can_access_private = unsafe {(&(*inst.cls).cx).exports} == this.exports; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/runtime/call.rs:56:45 [INFO] [stdout] | [INFO] [stdout] 56 | let cannot_access_private = unsafe {(*inst.cls).cx.exports} != self.exports; [INFO] [stdout] | ^^--------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut stmt::ClassDef` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 56 | let cannot_access_private = unsafe {(&(*inst.cls).cx).exports} != self.exports; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/runtime/externer.rs:49:24 [INFO] [stdout] | [INFO] [stdout] 49 | Int(n)=> unsafe{Ok(transmute(*n))}, [INFO] [stdout] | ---------^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace this with: `isize::cast_unsigned` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/runtime/externer.rs:51:27 [INFO] [stdout] | [INFO] [stdout] 51 | Float(n)=> (unsafe{Ok(transmute(*n))}), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 51 - Float(n)=> (unsafe{Ok(transmute(*n))}), [INFO] [stdout] 51 + Float(n)=> (unsafe{Ok(f64::to_bits(*n) as usize)}), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `key-lang` (bin "key-lang" test) due to 4 previous errors; 12 warnings emitted [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/runtime/externer.rs:20:26 [INFO] [stdout] | [INFO] [stdout] 20 | let exec = unsafe {EXEC.as_mut().expect("未找到extern函数,这是bug")}; [INFO] [stdout] | ^^^^ mutable reference to mutable static [INFO] [stdout] ... [INFO] [stdout] 57 | Local(f)=> translate_local_impl! { f [INFO] [stdout] | ____________________- [INFO] [stdout] 58 | | 0 agent0 () [INFO] [stdout] 59 | | 1 agent1 (a) [INFO] [stdout] 60 | | 2 agent2 (a,b) [INFO] [stdout] ... | [INFO] [stdout] 65 | | 7 agent7 (a,b,c,d,e,f,g) [INFO] [stdout] 66 | | }, [INFO] [stdout] | |_________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/runtime/calc.rs:415:44 [INFO] [stdout] | [INFO] [stdout] 415 | let can_access_private = unsafe {(*inst.cls).cx.exports} == this.exports; [INFO] [stdout] | ^^--------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut stmt::ClassDef` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations [INFO] [stdout] = note: `#[deny(dangerous_implicit_autorefs)]` on by default [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 415 | let can_access_private = unsafe {(&(*inst.cls).cx).exports} == this.exports; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `key-lang` (bin "key-lang") due to 4 previous errors; 12 warnings emitted [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/runtime/calc.rs:514:44 [INFO] [stdout] | [INFO] [stdout] 514 | let can_access_private = unsafe {(*inst.cls).cx.exports} == this.exports; [INFO] [stdout] | ^^--------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut stmt::ClassDef` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 514 | let can_access_private = unsafe {(&(*inst.cls).cx).exports} == this.exports; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/primitive/mod.rs:76:22 [INFO] [stdout] | [INFO] [stdout] 76 | if let Some(cls) = &mut CLASSES { [INFO] [stdout] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] 76 | if let Some(cls) = &raw mut CLASSES { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/primitive/mod.rs:100:40 [INFO] [stdout] | [INFO] [stdout] 100 | let can_access_private = unsafe {(*inst.cls).cx.exports} == this.exports; [INFO] [stdout] | ^^--------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut stmt::ClassDef` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 100 | let can_access_private = unsafe {(&(*inst.cls).cx).exports} == this.exports; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/runtime/call.rs:56:45 [INFO] [stdout] | [INFO] [stdout] 56 | let cannot_access_private = unsafe {(*inst.cls).cx.exports} != self.exports; [INFO] [stdout] | ^^--------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut stmt::ClassDef` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 56 | let cannot_access_private = unsafe {(&(*inst.cls).cx).exports} != self.exports; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/primitive/kstd.rs:52:36 [INFO] [stdout] | [INFO] [stdout] 52 | let mut place = std::mem::take(&mut crate::PLACE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] 52 | let mut place = std::mem::take(&raw mut crate::PLACE); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/runtime/externer.rs:49:24 [INFO] [stdout] | [INFO] [stdout] 49 | Int(n)=> unsafe{Ok(transmute(*n))}, [INFO] [stdout] | ---------^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace this with: `isize::cast_unsigned` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/runtime/externer.rs:51:27 [INFO] [stdout] | [INFO] [stdout] 51 | Float(n)=> (unsafe{Ok(transmute(*n))}), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: replace this with [INFO] [stdout] | [INFO] [stdout] 51 - Float(n)=> (unsafe{Ok(transmute(*n))}), [INFO] [stdout] 51 + Float(n)=> (unsafe{Ok(f64::to_bits(*n) as usize)}), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/runtime/externer.rs:20:26 [INFO] [stdout] | [INFO] [stdout] 20 | let exec = unsafe {EXEC.as_mut().expect("未找到extern函数,这是bug")}; [INFO] [stdout] | ^^^^ mutable reference to mutable static [INFO] [stdout] ... [INFO] [stdout] 57 | Local(f)=> translate_local_impl! { f [INFO] [stdout] | ____________________- [INFO] [stdout] 58 | | 0 agent0 () [INFO] [stdout] 59 | | 1 agent1 (a) [INFO] [stdout] 60 | | 2 agent2 (a,b) [INFO] [stdout] ... | [INFO] [stdout] 65 | | 7 agent7 (a,b,c,d,e,f,g) [INFO] [stdout] 66 | | }, [INFO] [stdout] | |_________- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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 [INFO] [stdout] --> src/primitive/mod.rs:76:22 [INFO] [stdout] | [INFO] [stdout] 76 | if let Some(cls) = &mut CLASSES { [INFO] [stdout] | ^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] 76 | if let Some(cls) = &raw mut CLASSES { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/primitive/mod.rs:100:40 [INFO] [stdout] | [INFO] [stdout] 100 | let can_access_private = unsafe {(*inst.cls).cx.exports} == this.exports; [INFO] [stdout] | ^^--------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut stmt::ClassDef` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] = note: references are created through calls to explicit `Deref(Mut)::deref(_mut)` implementations [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 100 | let can_access_private = unsafe {(&(*inst.cls).cx).exports} == this.exports; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/primitive/float.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | unsafe{std::mem::transmute(b)} [INFO] [stdout] | -------------------^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace this with: `f64::from_ne_bytes` [INFO] [stdout] | [INFO] [stdout] = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/primitive/kstd.rs:52:36 [INFO] [stdout] | [INFO] [stdout] 52 | let mut place = std::mem::take(&mut crate::PLACE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [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] 52 | let mut place = std::mem::take(&raw mut crate::PLACE); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/primitive/float.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | unsafe{std::mem::transmute(b)} [INFO] [stdout] | -------------------^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace this with: `f64::from_ne_bytes` [INFO] [stdout] | [INFO] [stdout] = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "5815c5e9ae6d11c9316a1c21153d568f24dc9914ec71afd92ef67d018d42caf1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5815c5e9ae6d11c9316a1c21153d568f24dc9914ec71afd92ef67d018d42caf1", kill_on_drop: false }` [INFO] [stdout] 5815c5e9ae6d11c9316a1c21153d568f24dc9914ec71afd92ef67d018d42caf1