[INFO] fetching crate wasm-core 0.2.15... [INFO] testing wasm-core-0.2.15 against try#ce59db7a1b1b012fb2793c4641c1bdecad7a128b for pr-85530 [INFO] extracting crate wasm-core 0.2.15 into /workspace/builds/worker-10/source [INFO] validating manifest of crates.io crate wasm-core 0.2.15 on toolchain ce59db7a1b1b012fb2793c4641c1bdecad7a128b [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate wasm-core 0.2.15 [INFO] finished tweaking crates.io crate wasm-core 0.2.15 [INFO] tweaked toml for crates.io crate wasm-core 0.2.15 written to /workspace/builds/worker-10/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded bincode-no-std v1.0.0 [INFO] [stderr] Downloaded core_io v0.1.20210325 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8a5c3b30f3951acbb81384d0c9c1e6424ee8cbbef842f2c8d645cba815178e1a [INFO] running `Command { std: "docker" "start" "-a" "8a5c3b30f3951acbb81384d0c9c1e6424ee8cbbef842f2c8d645cba815178e1a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8a5c3b30f3951acbb81384d0c9c1e6424ee8cbbef842f2c8d645cba815178e1a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8a5c3b30f3951acbb81384d0c9c1e6424ee8cbbef842f2c8d645cba815178e1a", kill_on_drop: false }` [INFO] [stdout] 8a5c3b30f3951acbb81384d0c9c1e6424ee8cbbef842f2c8d645cba815178e1a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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" "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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5e33c2a6ccbb7b11892fb48fd22c96ea5dc33ae20ea669fd2f80f8181d5f6895 [INFO] running `Command { std: "docker" "start" "-a" "5e33c2a6ccbb7b11892fb48fd22c96ea5dc33ae20ea669fd2f80f8181d5f6895", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.27 [INFO] [stderr] Compiling syn v1.0.72 [INFO] [stderr] Compiling serde_derive v1.0.126 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Compiling wasm-core v0.2.15 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> src/lib.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | #[macro_use] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:63:28 [INFO] [stdout] | [INFO] [stdout] 63 | pub type NativeEntry = Box ExecuteResult> + 'static>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(&mut GlobalStateProvider, &[Value]) -> ExecuteResult> + 'static` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:63:36 [INFO] [stdout] | [INFO] [stdout] 63 | pub type NativeEntry = Box ExecuteResult> + 'static>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:84:30 [INFO] [stdout] | [INFO] [stdout] 84 | pub(crate) resolver: Box [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn NativeResolver` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:90:23 [INFO] [stdout] | [INFO] [stdout] 90 | pub resolver: Box [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn NativeResolver` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:94:39 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn invoke(&mut self, rt: &mut GlobalStateProvider, args: &[Value]) -> ExecuteResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:118:29 [INFO] [stdout] | [INFO] [stdout] 118 | fn builtin_resolve(rt: &GlobalStateProvider, module: &str, field: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fp_ops` [INFO] [stdout] --> src/value.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use fp_ops; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ExecuteError`, `ExecuteResult` [INFO] [stdout] --> src/fp_ops.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use executor::{ExecuteResult, ExecuteError}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cfgraph.rs:47:19 [INFO] [stdout] | [INFO] [stdout] 47 | let _obj: Box> = Box::new(Opt {}); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Optimizer` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hetrans.rs:162:64 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn translate_module(m: &Module, entry_fn: usize, mni: &mut MapNativeInvoke) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MapNativeInvoke` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hetrans.rs:261:87 [INFO] [stdout] | [INFO] [stdout] 261 | fn translate_function(m: &Module, f: &Function, offset_table: &OffsetTable, mni: &mut MapNativeInvoke) -> TargetFunction { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MapNativeInvoke` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/executor.rs:423:13 [INFO] [stdout] | [INFO] [stdout] 423 | _ => return Err(ExecuteError::TypeMismatch) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/executor.rs:603:25 [INFO] [stdout] | [INFO] [stdout] 603 | _ => return Err(ExecuteError::TypeMismatch) [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text` [INFO] [stdout] --> src/executor.rs:136:21 [INFO] [stdout] | [INFO] [stdout] 136 | let text = match str::from_utf8(&mem[ptr..ptr + len]) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rt` [INFO] [stdout] --> src/executor.rs:118:24 [INFO] [stdout] | [INFO] [stdout] 118 | fn builtin_resolve(rt: &GlobalStateProvider, module: &str, field: &str) -> Option { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `debug_print` [INFO] [stdout] --> src/executor.rs:446:13 [INFO] [stdout] | [INFO] [stdout] 446 | let debug_print = self.rt.debug_print_hook; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debug_print` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/cfgraph.rs:145:14 [INFO] [stdout] | [INFO] [stdout] 145 | for (i, bb) in self.blocks.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/ssa.rs:811:43 [INFO] [stdout] | [INFO] [stdout] 811 | RawOp::NotImplemented(ref s) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/hetrans.rs:196:10 [INFO] [stdout] | [INFO] [stdout] 196 | for (i, f) in functions.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty_rets` [INFO] [stdout] --> src/hetrans.rs:244:37 [INFO] [stdout] | [INFO] [stdout] 244 | let Type::Func(ref ty_args, ref ty_rets) = &m.types[tf.typeidx as usize]; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ty_rets` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty_rets` [INFO] [stdout] --> src/hetrans.rs:284:49 [INFO] [stdout] | [INFO] [stdout] 284 | let Type::Func(ref ty_args, ref ty_rets) = &m.types[target_ty as usize]; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ty_rets` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:440:46 [INFO] [stdout] | [INFO] [stdout] 440 | Opcode::I32Load(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:444:48 [INFO] [stdout] | [INFO] [stdout] 444 | Opcode::I32Load8U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:448:48 [INFO] [stdout] | [INFO] [stdout] 448 | Opcode::I32Load8S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:452:49 [INFO] [stdout] | [INFO] [stdout] 452 | Opcode::I32Load16U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:456:49 [INFO] [stdout] | [INFO] [stdout] 456 | Opcode::I32Load16S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:460:47 [INFO] [stdout] | [INFO] [stdout] 460 | Opcode::I32Store(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:464:48 [INFO] [stdout] | [INFO] [stdout] 464 | Opcode::I32Store8(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:468:49 [INFO] [stdout] | [INFO] [stdout] 468 | Opcode::I32Store16(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:511:46 [INFO] [stdout] | [INFO] [stdout] 511 | Opcode::I64Load(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:515:48 [INFO] [stdout] | [INFO] [stdout] 515 | Opcode::I64Load8U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:519:48 [INFO] [stdout] | [INFO] [stdout] 519 | Opcode::I64Load8S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:523:49 [INFO] [stdout] | [INFO] [stdout] 523 | Opcode::I64Load16U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:527:49 [INFO] [stdout] | [INFO] [stdout] 527 | Opcode::I64Load16S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:531:49 [INFO] [stdout] | [INFO] [stdout] 531 | Opcode::I64Load32U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:535:49 [INFO] [stdout] | [INFO] [stdout] 535 | Opcode::I64Load32S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:539:47 [INFO] [stdout] | [INFO] [stdout] 539 | Opcode::I64Store(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:543:48 [INFO] [stdout] | [INFO] [stdout] 543 | Opcode::I64Store8(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:547:49 [INFO] [stdout] | [INFO] [stdout] 547 | Opcode::I64Store16(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:551:49 [INFO] [stdout] | [INFO] [stdout] 551 | Opcode::I64Store32(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/executor.rs:593:25 [INFO] [stdout] | [INFO] [stdout] 593 | let mut prev_frame = self.frames.pop().unwrap(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hetrans.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 193 | let mut entry_reloc_point = build_call(m, &mut executable, entry_fn); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | Value::I32(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | Value::I32(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:23:16 [INFO] [stdout] | [INFO] [stdout] 23 | Value::I32(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:315:16 [INFO] [stdout] | [INFO] [stdout] 315 | Value::I64(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:322:16 [INFO] [stdout] | [INFO] [stdout] 322 | Value::I64(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:329:16 [INFO] [stdout] | [INFO] [stdout] 329 | Value::I64(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_scanned` [INFO] [stdout] --> src/ssa.rs:259:8 [INFO] [stdout] | [INFO] [stdout] 259 | fn is_scanned(&self, val: &T) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `underscore_lifetimes` has been stable since 1.26.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | #![feature(underscore_lifetimes)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `alloc` has been stable since 1.36.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | #![feature(alloc)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 52 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 15.61s [INFO] running `Command { std: "docker" "inspect" "5e33c2a6ccbb7b11892fb48fd22c96ea5dc33ae20ea669fd2f80f8181d5f6895", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5e33c2a6ccbb7b11892fb48fd22c96ea5dc33ae20ea669fd2f80f8181d5f6895", kill_on_drop: false }` [INFO] [stdout] 5e33c2a6ccbb7b11892fb48fd22c96ea5dc33ae20ea669fd2f80f8181d5f6895 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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" "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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 50c346cd3af6b246270b7e42c42f851092d29bfebf423e59fcde1ea7c6da3743 [INFO] running `Command { std: "docker" "start" "-a" "50c346cd3af6b246270b7e42c42f851092d29bfebf423e59fcde1ea7c6da3743", kill_on_drop: false }` [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> src/lib.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | #[macro_use] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:63:28 [INFO] [stdout] | [INFO] [stdout] 63 | pub type NativeEntry = Box ExecuteResult> + 'static>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(&mut GlobalStateProvider, &[Value]) -> ExecuteResult> + 'static` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:63:36 [INFO] [stdout] | [INFO] [stdout] 63 | pub type NativeEntry = Box ExecuteResult> + 'static>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:84:30 [INFO] [stdout] | [INFO] [stdout] 84 | pub(crate) resolver: Box [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn NativeResolver` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:90:23 [INFO] [stdout] | [INFO] [stdout] 90 | pub resolver: Box [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn NativeResolver` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:94:39 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn invoke(&mut self, rt: &mut GlobalStateProvider, args: &[Value]) -> ExecuteResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:118:29 [INFO] [stdout] | [INFO] [stdout] 118 | fn builtin_resolve(rt: &GlobalStateProvider, module: &str, field: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fp_ops` [INFO] [stdout] --> src/value.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use fp_ops; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ExecuteError`, `ExecuteResult` [INFO] [stdout] --> src/fp_ops.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use executor::{ExecuteResult, ExecuteError}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cfgraph.rs:47:19 [INFO] [stdout] | [INFO] [stdout] 47 | let _obj: Box> = Box::new(Opt {}); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Optimizer` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hetrans.rs:162:64 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn translate_module(m: &Module, entry_fn: usize, mni: &mut MapNativeInvoke) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MapNativeInvoke` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hetrans.rs:261:87 [INFO] [stdout] | [INFO] [stdout] 261 | fn translate_function(m: &Module, f: &Function, offset_table: &OffsetTable, mni: &mut MapNativeInvoke) -> TargetFunction { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MapNativeInvoke` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/executor.rs:423:13 [INFO] [stdout] | [INFO] [stdout] 423 | _ => return Err(ExecuteError::TypeMismatch) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/executor.rs:603:25 [INFO] [stdout] | [INFO] [stdout] 603 | _ => return Err(ExecuteError::TypeMismatch) [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text` [INFO] [stdout] --> src/executor.rs:136:21 [INFO] [stdout] | [INFO] [stdout] 136 | let text = match str::from_utf8(&mem[ptr..ptr + len]) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rt` [INFO] [stdout] --> src/executor.rs:118:24 [INFO] [stdout] | [INFO] [stdout] 118 | fn builtin_resolve(rt: &GlobalStateProvider, module: &str, field: &str) -> Option { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `debug_print` [INFO] [stdout] --> src/executor.rs:446:13 [INFO] [stdout] | [INFO] [stdout] 446 | let debug_print = self.rt.debug_print_hook; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debug_print` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/cfgraph.rs:145:14 [INFO] [stdout] | [INFO] [stdout] 145 | for (i, bb) in self.blocks.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/ssa.rs:811:43 [INFO] [stdout] | [INFO] [stdout] 811 | RawOp::NotImplemented(ref s) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/hetrans.rs:196:10 [INFO] [stdout] | [INFO] [stdout] 196 | for (i, f) in functions.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty_rets` [INFO] [stdout] --> src/hetrans.rs:244:37 [INFO] [stdout] | [INFO] [stdout] 244 | let Type::Func(ref ty_args, ref ty_rets) = &m.types[tf.typeidx as usize]; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ty_rets` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty_rets` [INFO] [stdout] --> src/hetrans.rs:284:49 [INFO] [stdout] | [INFO] [stdout] 284 | let Type::Func(ref ty_args, ref ty_rets) = &m.types[target_ty as usize]; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ty_rets` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:440:46 [INFO] [stdout] | [INFO] [stdout] 440 | Opcode::I32Load(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:444:48 [INFO] [stdout] | [INFO] [stdout] 444 | Opcode::I32Load8U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:448:48 [INFO] [stdout] | [INFO] [stdout] 448 | Opcode::I32Load8S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:452:49 [INFO] [stdout] | [INFO] [stdout] 452 | Opcode::I32Load16U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:456:49 [INFO] [stdout] | [INFO] [stdout] 456 | Opcode::I32Load16S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:460:47 [INFO] [stdout] | [INFO] [stdout] 460 | Opcode::I32Store(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:464:48 [INFO] [stdout] | [INFO] [stdout] 464 | Opcode::I32Store8(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:468:49 [INFO] [stdout] | [INFO] [stdout] 468 | Opcode::I32Store16(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:511:46 [INFO] [stdout] | [INFO] [stdout] 511 | Opcode::I64Load(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:515:48 [INFO] [stdout] | [INFO] [stdout] 515 | Opcode::I64Load8U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:519:48 [INFO] [stdout] | [INFO] [stdout] 519 | Opcode::I64Load8S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:523:49 [INFO] [stdout] | [INFO] [stdout] 523 | Opcode::I64Load16U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:527:49 [INFO] [stdout] | [INFO] [stdout] 527 | Opcode::I64Load16S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:531:49 [INFO] [stdout] | [INFO] [stdout] 531 | Opcode::I64Load32U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:535:49 [INFO] [stdout] | [INFO] [stdout] 535 | Opcode::I64Load32S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:539:47 [INFO] [stdout] | [INFO] [stdout] 539 | Opcode::I64Store(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:543:48 [INFO] [stdout] | [INFO] [stdout] 543 | Opcode::I64Store8(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling wasm-core v0.2.15 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:547:49 [INFO] [stdout] | [INFO] [stdout] 547 | Opcode::I64Store16(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:551:49 [INFO] [stdout] | [INFO] [stdout] 551 | Opcode::I64Store32(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/executor.rs:593:25 [INFO] [stdout] | [INFO] [stdout] 593 | let mut prev_frame = self.frames.pop().unwrap(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hetrans.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 193 | let mut entry_reloc_point = build_call(m, &mut executable, entry_fn); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | Value::I32(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | Value::I32(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:23:16 [INFO] [stdout] | [INFO] [stdout] 23 | Value::I32(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:315:16 [INFO] [stdout] | [INFO] [stdout] 315 | Value::I64(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:322:16 [INFO] [stdout] | [INFO] [stdout] 322 | Value::I64(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:329:16 [INFO] [stdout] | [INFO] [stdout] 329 | Value::I64(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_scanned` [INFO] [stdout] --> src/ssa.rs:259:8 [INFO] [stdout] | [INFO] [stdout] 259 | fn is_scanned(&self, val: &T) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `underscore_lifetimes` has been stable since 1.26.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | #![feature(underscore_lifetimes)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `alloc` has been stable since 1.36.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | #![feature(alloc)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 52 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> src/lib.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | #[macro_use] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:63:28 [INFO] [stdout] | [INFO] [stdout] 63 | pub type NativeEntry = Box ExecuteResult> + 'static>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(&mut GlobalStateProvider, &[Value]) -> ExecuteResult> + 'static` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:63:36 [INFO] [stdout] | [INFO] [stdout] 63 | pub type NativeEntry = Box ExecuteResult> + 'static>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:84:30 [INFO] [stdout] | [INFO] [stdout] 84 | pub(crate) resolver: Box [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn NativeResolver` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:90:23 [INFO] [stdout] | [INFO] [stdout] 90 | pub resolver: Box [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn NativeResolver` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:94:39 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn invoke(&mut self, rt: &mut GlobalStateProvider, args: &[Value]) -> ExecuteResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/executor.rs:118:29 [INFO] [stdout] | [INFO] [stdout] 118 | fn builtin_resolve(rt: &GlobalStateProvider, module: &str, field: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fp_ops` [INFO] [stdout] --> src/value.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use fp_ops; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ExecuteError`, `ExecuteResult` [INFO] [stdout] --> src/fp_ops.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use executor::{ExecuteResult, ExecuteError}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cfgraph.rs:47:19 [INFO] [stdout] | [INFO] [stdout] 47 | let _obj: Box> = Box::new(Opt {}); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Optimizer` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hetrans.rs:162:64 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn translate_module(m: &Module, entry_fn: usize, mni: &mut MapNativeInvoke) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MapNativeInvoke` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/hetrans.rs:261:87 [INFO] [stdout] | [INFO] [stdout] 261 | fn translate_function(m: &Module, f: &Function, offset_table: &OffsetTable, mni: &mut MapNativeInvoke) -> TargetFunction { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MapNativeInvoke` [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stdout] = note: for more information, see issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/executor.rs:423:13 [INFO] [stdout] | [INFO] [stdout] 423 | _ => return Err(ExecuteError::TypeMismatch) [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/executor.rs:603:25 [INFO] [stdout] | [INFO] [stdout] 603 | _ => return Err(ExecuteError::TypeMismatch) [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text` [INFO] [stdout] --> src/executor.rs:136:21 [INFO] [stdout] | [INFO] [stdout] 136 | let text = match str::from_utf8(&mem[ptr..ptr + len]) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rt` [INFO] [stdout] --> src/executor.rs:118:24 [INFO] [stdout] | [INFO] [stdout] 118 | fn builtin_resolve(rt: &GlobalStateProvider, module: &str, field: &str) -> Option { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `debug_print` [INFO] [stdout] --> src/executor.rs:446:13 [INFO] [stdout] | [INFO] [stdout] 446 | let debug_print = self.rt.debug_print_hook; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debug_print` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/cfgraph.rs:145:14 [INFO] [stdout] | [INFO] [stdout] 145 | for (i, bb) in self.blocks.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/ssa.rs:811:43 [INFO] [stdout] | [INFO] [stdout] 811 | RawOp::NotImplemented(ref s) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ssa` [INFO] [stdout] --> src/ssa.rs:1029:13 [INFO] [stdout] | [INFO] [stdout] 1029 | let ssa = FlowGraph::from_cfg(&cfg, &Module::default()); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ssa` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/hetrans.rs:196:10 [INFO] [stdout] | [INFO] [stdout] 196 | for (i, f) in functions.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty_rets` [INFO] [stdout] --> src/hetrans.rs:244:37 [INFO] [stdout] | [INFO] [stdout] 244 | let Type::Func(ref ty_args, ref ty_rets) = &m.types[tf.typeidx as usize]; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ty_rets` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty_rets` [INFO] [stdout] --> src/hetrans.rs:284:49 [INFO] [stdout] | [INFO] [stdout] 284 | let Type::Func(ref ty_args, ref ty_rets) = &m.types[target_ty as usize]; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ty_rets` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:440:46 [INFO] [stdout] | [INFO] [stdout] 440 | Opcode::I32Load(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:444:48 [INFO] [stdout] | [INFO] [stdout] 444 | Opcode::I32Load8U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:448:48 [INFO] [stdout] | [INFO] [stdout] 448 | Opcode::I32Load8S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:452:49 [INFO] [stdout] | [INFO] [stdout] 452 | Opcode::I32Load16U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:456:49 [INFO] [stdout] | [INFO] [stdout] 456 | Opcode::I32Load16S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:460:47 [INFO] [stdout] | [INFO] [stdout] 460 | Opcode::I32Store(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:464:48 [INFO] [stdout] | [INFO] [stdout] 464 | Opcode::I32Store8(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:468:49 [INFO] [stdout] | [INFO] [stdout] 468 | Opcode::I32Store16(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:511:46 [INFO] [stdout] | [INFO] [stdout] 511 | Opcode::I64Load(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:515:48 [INFO] [stdout] | [INFO] [stdout] 515 | Opcode::I64Load8U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:519:48 [INFO] [stdout] | [INFO] [stdout] 519 | Opcode::I64Load8S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:523:49 [INFO] [stdout] | [INFO] [stdout] 523 | Opcode::I64Load16U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:527:49 [INFO] [stdout] | [INFO] [stdout] 527 | Opcode::I64Load16S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:531:49 [INFO] [stdout] | [INFO] [stdout] 531 | Opcode::I64Load32U(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:535:49 [INFO] [stdout] | [INFO] [stdout] 535 | Opcode::I64Load32S(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:539:47 [INFO] [stdout] | [INFO] [stdout] 539 | Opcode::I64Store(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:543:48 [INFO] [stdout] | [INFO] [stdout] 543 | Opcode::I64Store8(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:547:49 [INFO] [stdout] | [INFO] [stdout] 547 | Opcode::I64Store16(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `align` [INFO] [stdout] --> src/hetrans.rs:551:49 [INFO] [stdout] | [INFO] [stdout] 551 | Opcode::I64Store32(Memarg { offset, align }) => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/executor.rs:593:25 [INFO] [stdout] | [INFO] [stdout] 593 | let mut prev_frame = self.frames.pop().unwrap(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/hetrans.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 193 | let mut entry_reloc_point = build_call(m, &mut executable, entry_fn); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | Value::I32(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | Value::I32(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:23:16 [INFO] [stdout] | [INFO] [stdout] 23 | Value::I32(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:315:16 [INFO] [stdout] | [INFO] [stdout] 315 | Value::I64(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:322:16 [INFO] [stdout] | [INFO] [stdout] 322 | Value::I64(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/int_ops.rs:329:16 [INFO] [stdout] | [INFO] [stdout] 329 | Value::I64(unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `is_scanned` [INFO] [stdout] --> src/ssa.rs:259:8 [INFO] [stdout] | [INFO] [stdout] 259 | fn is_scanned(&self, val: &T) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `underscore_lifetimes` has been stable since 1.26.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | #![feature(underscore_lifetimes)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `alloc` has been stable since 1.36.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | #![feature(alloc)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 53 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 5.60s [INFO] running `Command { std: "docker" "inspect" "50c346cd3af6b246270b7e42c42f851092d29bfebf423e59fcde1ea7c6da3743", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "50c346cd3af6b246270b7e42c42f851092d29bfebf423e59fcde1ea7c6da3743", kill_on_drop: false }` [INFO] [stdout] 50c346cd3af6b246270b7e42c42f851092d29bfebf423e59fcde1ea7c6da3743 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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" "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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 3e6962ca59b1c8bd73ab5777a17e278c88430fbc0fa6ac20be681f55951269f8 [INFO] running `Command { std: "docker" "start" "-a" "3e6962ca59b1c8bd73ab5777a17e278c88430fbc0fa6ac20be681f55951269f8", kill_on_drop: false }` [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test cfgraph::tests::test_invalid_branch_target ... ok [INFO] [stdout] test cfgraph::tests::test_jmp ... ok [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/executor.rs:63:28 [INFO] [stderr] | [INFO] [stderr] 63 | pub type NativeEntry = Box ExecuteResult> + 'static>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(&mut GlobalStateProvider, &[Value]) -> ExecuteResult> + 'static` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/executor.rs:63:36 [INFO] [stderr] | [INFO] [stderr] 63 | pub type NativeEntry = Box ExecuteResult> + 'static>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/executor.rs:84:30 [INFO] [stderr] | [INFO] [stderr] 84 | pub(crate) resolver: Box [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn NativeResolver` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/executor.rs:90:23 [INFO] [stderr] | [INFO] [stderr] 90 | pub resolver: Box [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn NativeResolver` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/executor.rs:94:39 [INFO] [stderr] | [INFO] [stderr] 94 | pub fn invoke(&mut self, rt: &mut GlobalStateProvider, args: &[Value]) -> ExecuteResult> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/executor.rs:118:29 [INFO] [stderr] | [INFO] [stderr] 118 | fn builtin_resolve(rt: &GlobalStateProvider, module: &str, field: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: unused import: `fp_ops` [INFO] [stderr] --> src/value.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use fp_ops; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ExecuteError`, `ExecuteResult` [INFO] [stderr] --> src/fp_ops.rs:1:16 [INFO] [stderr] | [INFO] [stderr] 1 | use executor::{ExecuteResult, ExecuteError}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cfgraph.rs:47:19 [INFO] [stderr] | [INFO] [stderr] 47 | let _obj: Box> = Box::new(Opt {}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Optimizer` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/hetrans.rs:162:64 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn translate_module(m: &Module, entry_fn: usize, mni: &mut MapNativeInvoke) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MapNativeInvoke` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/hetrans.rs:261:87 [INFO] [stderr] | [INFO] [stderr] 261 | fn translate_function(m: &Module, f: &Function, offset_table: &OffsetTable, mni: &mut MapNativeInvoke) -> TargetFunction { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MapNativeInvoke` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/executor.rs:423:13 [INFO] [stderr] | [INFO] [stderr] 423 | _ => return Err(ExecuteError::TypeMismatch) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/executor.rs:603:25 [INFO] [stderr] | [INFO] [stderr] 603 | _ => return Err(ExecuteError::TypeMismatch) [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `text` [INFO] [stderr] --> src/executor.rs:136:21 [INFO] [stderr] | [INFO] [stderr] 136 | let text = match str::from_utf8(&mem[ptr..ptr + len]) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rt` [INFO] [stderr] --> src/executor.rs:118:24 [INFO] [stderr] | [INFO] [stderr] 118 | fn builtin_resolve(rt: &GlobalStateProvider, module: &str, field: &str) -> Option { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_rt` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `debug_print` [INFO] [stderr] --> src/executor.rs:446:13 [INFO] [stderr] | [INFO] [stderr] 446 | let debug_print = self.rt.debug_print_hook; [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debug_print` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/cfgraph.rs:145:14 [INFO] [stderr] | [INFO] [stderr] 145 | for (i, bb) in self.blocks.iter().enumerate() { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/ssa.rs:811:43 [INFO] [stderr] | [INFO] [stderr] 811 | RawOp::NotImplemented(ref s) => { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/hetrans.rs:196:10 [INFO] [stderr] | [INFO] [stderr] 196 | for (i, f) in functions.iter().enumerate() { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ty_rets` [INFO] [stderr] --> src/hetrans.rs:244:37 [INFO] [stderr] | [INFO] [stderr] 244 | let Type::Func(ref ty_args, ref ty_rets) = &m.types[tf.typeidx as usize]; [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ty_rets` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ty_rets` [INFO] [stderr] --> src/hetrans.rs:284:49 [INFO] [stderr] | [INFO] [stderr] 284 | let Type::Func(ref ty_args, ref ty_rets) = &m.types[target_ty as usize]; [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ty_rets` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:440:46 [INFO] [stderr] | [INFO] [stderr] 440 | Opcode::I32Load(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:444:48 [INFO] [stderr] | [INFO] [stderr] 444 | Opcode::I32Load8U(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:448:48 [INFO] [stderr] | [INFO] [stderr] 448 | Opcode::I32Load8S(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:452:49 [INFO] [stderr] | [INFO] [stderr] 452 | Opcode::I32Load16U(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:456:49 [INFO] [stderr] | [INFO] [stderr] 456 | Opcode::I32Load16S(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:460:47 [INFO] [stderr] | [INFO] [stderr] 460 | Opcode::I32Store(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:464:48 [INFO] [stderr] | [INFO] [stderr] 464 | Opcode::I32Store8(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:468:49 [INFO] [stderr] | [INFO] [stderr] 468 | Opcode::I32Store16(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:511:46 [INFO] [stderr] | [INFO] [stderr] 511 | Opcode::I64Load(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:515:48 [INFO] [stderr] | [INFO] [stderr] 515 | Opcode::I64Load8U(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:519:48 [INFO] [stderr] | [INFO] [stderr] 519 | Opcode::I64Load8S(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:523:49 [INFO] [stderr] | [INFO] [stderr] 523 | Opcode::I64Load16U(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:527:49 [INFO] [stderr] | [INFO] [stderr] 527 | Opcode::I64Load16S(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:531:49 [INFO] [stderr] | [INFO] [stderr] 531 | Opcode::I64Load32U(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:535:49 [INFO] [stderr] | [INFO] [stderr] 535 | Opcode::I64Load32S(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:539:47 [INFO] [stderr] | [INFO] [stderr] 539 | Opcode::I64Store(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:543:48 [INFO] [stderr] | [INFO] [stderr] 543 | Opcode::I64Store8(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:547:49 [INFO] [stderr] | [INFO] [stderr] 547 | Opcode::I64Store16(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:551:49 [INFO] [stderr] | [INFO] [stderr] 551 | Opcode::I64Store32(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/executor.rs:593:25 [INFO] [stderr] | [INFO] [stderr] 593 | let mut prev_frame = self.frames.pop().unwrap(); [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hetrans.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | let mut entry_reloc_point = build_call(m, &mut executable, entry_fn); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/int_ops.rs:9:16 [INFO] [stderr] | [INFO] [stderr] 9 | Value::I32(unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/int_ops.rs:16:16 [INFO] [stderr] | [INFO] [stderr] 16 | Value::I32(unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/int_ops.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | Value::I32(unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/int_ops.rs:315:16 [INFO] [stderr] | [INFO] [stderr] 315 | Value::I64(unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/int_ops.rs:322:16 [INFO] [stderr] | [INFO] [stderr] 322 | Value::I64(unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/int_ops.rs:329:16 [INFO] [stderr] | [INFO] [stderr] 329 | Value::I64(unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `is_scanned` [INFO] [stderr] --> src/ssa.rs:259:8 [INFO] [stderr] | [INFO] [stderr] 259 | fn is_scanned(&self, val: &T) -> bool { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the feature `underscore_lifetimes` has been stable since 1.26.0 and no longer requires an attribute to enable [INFO] [stderr] --> src/lib.rs:6:12 [INFO] [stderr] | [INFO] [stderr] 6 | #![feature(underscore_lifetimes)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(stable_features)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the feature `alloc` has been stable since 1.36.0 and no longer requires an attribute to enable [INFO] [stderr] --> src/lib.rs:3:12 [INFO] [stderr] | [INFO] [stderr] 3 | #![feature(alloc)] [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 52 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/executor.rs:63:28 [INFO] [stderr] | [INFO] [stderr] 63 | pub type NativeEntry = Box ExecuteResult> + 'static>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(&mut GlobalStateProvider, &[Value]) -> ExecuteResult> + 'static` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/executor.rs:63:36 [INFO] [stderr] | [INFO] [stderr] 63 | pub type NativeEntry = Box ExecuteResult> + 'static>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/executor.rs:84:30 [INFO] [stderr] | [INFO] [stderr] 84 | pub(crate) resolver: Box [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn NativeResolver` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/executor.rs:90:23 [INFO] [stderr] | [INFO] [stderr] 90 | pub resolver: Box [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn NativeResolver` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/executor.rs:94:39 [INFO] [stderr] | [INFO] [stderr] 94 | pub fn invoke(&mut self, rt: &mut GlobalStateProvider, args: &[Value]) -> ExecuteResult> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/executor.rs:118:29 [INFO] [stderr] | [INFO] [stderr] 118 | fn builtin_resolve(rt: &GlobalStateProvider, module: &str, field: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GlobalStateProvider` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: unused import: `fp_ops` [INFO] [stderr] --> src/value.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use fp_ops; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ExecuteError`, `ExecuteResult` [INFO] [stderr] --> src/fp_ops.rs:1:16 [INFO] [stderr] | [INFO] [stderr] 1 | use executor::{ExecuteResult, ExecuteError}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cfgraph.rs:47:19 [INFO] [stderr] | [INFO] [stderr] 47 | let _obj: Box> = Box::new(Opt {}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Optimizer` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/hetrans.rs:162:64 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn translate_module(m: &Module, entry_fn: usize, mni: &mut MapNativeInvoke) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MapNativeInvoke` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/hetrans.rs:261:87 [INFO] [stderr] | [INFO] [stderr] 261 | fn translate_function(m: &Module, f: &Function, offset_table: &OffsetTable, mni: &mut MapNativeInvoke) -> TargetFunction { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MapNativeInvoke` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition! [INFO] [stderr] = note: for more information, see issue #80165 [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/executor.rs:423:13 [INFO] [stderr] | [INFO] [stderr] 423 | _ => return Err(ExecuteError::TypeMismatch) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/executor.rs:603:25 [INFO] [stderr] | [INFO] [stderr] 603 | _ => return Err(ExecuteError::TypeMismatch) [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `text` [INFO] [stderr] --> src/executor.rs:136:21 [INFO] [stderr] | [INFO] [stderr] 136 | let text = match str::from_utf8(&mem[ptr..ptr + len]) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rt` [INFO] [stderr] --> src/executor.rs:118:24 [INFO] [stderr] | [INFO] [stderr] 118 | fn builtin_resolve(rt: &GlobalStateProvider, module: &str, field: &str) -> Option { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_rt` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `debug_print` [INFO] [stderr] --> src/executor.rs:446:13 [INFO] [stderr] | [INFO] [stderr] 446 | let debug_print = self.rt.debug_print_hook; [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debug_print` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/cfgraph.rs:145:14 [INFO] [stderr] | [INFO] [stderr] 145 | for (i, bb) in self.blocks.iter().enumerate() { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/ssa.rs:811:43 [INFO] [stderr] | [INFO] [stderr] 811 | RawOp::NotImplemented(ref s) => { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ssa` [INFO] [stderr] --> src/ssa.rs:1029:13 [INFO] [stderr] | [INFO] [stderr] 1029 | let ssa = FlowGraph::from_cfg(&cfg, &Module::default()); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_ssa` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/hetrans.rs:196:10 [INFO] [stderr] | [INFO] [stderr] 196 | for (i, f) in functions.iter().enumerate() { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ty_rets` [INFO] [stderr] --> src/hetrans.rs:244:37 [INFO] [stderr] | [INFO] [stderr] 244 | let Type::Func(ref ty_args, ref ty_rets) = &m.types[tf.typeidx as usize]; [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ty_rets` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ty_rets` [INFO] [stderr] --> src/hetrans.rs:284:49 [INFO] [stderr] | [INFO] [stderr] 284 | let Type::Func(ref ty_args, ref ty_rets) = &m.types[target_ty as usize]; [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ty_rets` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:440:46 [INFO] [stderr] | [INFO] [stderr] 440 | Opcode::I32Load(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:444:48 [INFO] [stderr] | [INFO] [stderr] 444 | Opcode::I32Load8U(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:448:48 [INFO] [stderr] | [INFO] [stderr] 448 | Opcode::I32Load8S(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:452:49 [INFO] [stderr] | [INFO] [stderr] 452 | Opcode::I32Load16U(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:456:49 [INFO] [stderr] | [INFO] [stderr] 456 | Opcode::I32Load16S(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:460:47 [INFO] [stderr] | [INFO] [stderr] 460 | Opcode::I32Store(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:464:48 [INFO] [stderr] | [INFO] [stderr] 464 | Opcode::I32Store8(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:468:49 [INFO] [stderr] | [INFO] [stderr] 468 | Opcode::I32Store16(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:511:46 [INFO] [stderr] | [INFO] [stderr] 511 | Opcode::I64Load(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:515:48 [INFO] [stderr] | [INFO] [stderr] 515 | Opcode::I64Load8U(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:519:48 [INFO] [stderr] | [INFO] [stderr] 519 | Opcode::I64Load8S(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:523:49 [INFO] [stderr] | [INFO] [stderr] 523 | Opcode::I64Load16U(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:527:49 [INFO] [stderr] | [INFO] [stderr] 527 | Opcode::I64Load16S(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:531:49 [INFO] [stderr] | [INFO] [stderr] 531 | Opcode::I64Load32U(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:535:49 [INFO] [stderr] | [INFO] [stderr] 535 | Opcode::I64Load32S(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:539:47 [INFO] [stderr] | [INFO] [stderr] 539 | Opcode::I64Store(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:543:48 [INFO] [stderr] | [INFO] [stderr] 543 | Opcode::I64Store8(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:547:49 [INFO] [stderr] | [INFO] [stderr] 547 | Opcode::I64Store16(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `align` [INFO] [stderr] --> src/hetrans.rs:551:49 [INFO] [stderr] | [INFO] [stderr] 551 | Opcode::I64Store32(Memarg { offset, align }) => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `align: _` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/executor.rs:593:25 [INFO] [stderr] | [INFO] [stderr] 593 | let mut prev_frame = self.frames.pop().unwrap(); [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/hetrans.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | let mut entry_reloc_point = build_call(m, &mut executable, entry_fn); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/int_ops.rs:9:16 [INFO] [stderr] | [INFO] [stderr] 9 | Value::I32(unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/int_ops.rs:16:16 [INFO] [stderr] | [INFO] [stderr] 16 | Value::I32(unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/int_ops.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | Value::I32(unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/int_ops.rs:315:16 [INFO] [stderr] | [INFO] [stderr] 315 | Value::I64(unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/int_ops.rs:322:16 [INFO] [stderr] | [INFO] [stderr] 322 | Value::I64(unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/int_ops.rs:329:16 [INFO] [stderr] | [INFO] [stderr] 329 | Value::I64(unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `is_scanned` [INFO] [stderr] --> src/ssa.rs:259:8 [INFO] [stderr] | [INFO] [stderr] 259 | fn is_scanned(&self, val: &T) -> bool { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the feature `underscore_lifetimes` has been stable since 1.26.0 and no longer requires an attribute to enable [INFO] [stderr] --> src/lib.rs:6:12 [INFO] [stderr] | [INFO] [stderr] 6 | #![feature(underscore_lifetimes)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(stable_features)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the feature `alloc` has been stable since 1.36.0 and no longer requires an attribute to enable [INFO] [stderr] --> src/lib.rs:3:12 [INFO] [stderr] | [INFO] [stderr] 3 | #![feature(alloc)] [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 53 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.02s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/wasm_core-8c8339a22e24aad9) [INFO] [stdout] test ssa::tests::test_basic_ssa_transform ... ok [INFO] [stdout] test int_ops::test_unsigned_loaded_to_signed ... ok [INFO] [stdout] test cfgraph::tests::test_jmp_if ... ok [INFO] [stderr] Doc-tests wasm-core [INFO] [stdout] test optimizers::tests::test_remove_dead_basic_blocks ... ok [INFO] [stdout] test ssa::tests::test_call ... ok [INFO] [stdout] test cfgraph::tests::test_circular ... ok [INFO] [stdout] test ssa::tests::test_circular_transform ... ok [INFO] [stdout] test ssa::tests::test_cycle_analysis ... ok [INFO] [stdout] test ssa::tests::test_unreachable ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [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" "3e6962ca59b1c8bd73ab5777a17e278c88430fbc0fa6ac20be681f55951269f8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3e6962ca59b1c8bd73ab5777a17e278c88430fbc0fa6ac20be681f55951269f8", kill_on_drop: false }` [INFO] [stdout] 3e6962ca59b1c8bd73ab5777a17e278c88430fbc0fa6ac20be681f55951269f8