[INFO] fetching crate goscript-vm 0.1.0...
[INFO] testing goscript-vm-0.1.0 against master#d98a5da813da67eb189387b8ccfb73cf481275d8+rustflags=-Copt-level=3 for pr-138759
[INFO] extracting crate goscript-vm 0.1.0 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate goscript-vm 0.1.0
[INFO] finished tweaking crates.io crate goscript-vm 0.1.0
[INFO] tweaked toml for crates.io crate goscript-vm 0.1.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate goscript-vm 0.1.0 on toolchain d98a5da813da67eb189387b8ccfb73cf481275d8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 43 packages to latest compatible versions
[INFO] [stderr]       Adding async-channel v1.9.0 (available: v2.5.0)
[INFO] [stderr]       Adding futures-lite v1.13.0 (available: v2.6.1)
[INFO] [stderr]       Adding ordered-float v2.10.1 (available: v5.1.0)
[INFO] [stderr]       Adding rand v0.8.5 (available: v0.9.2)
[INFO] [stderr]       Adding slotmap v0.4.3 (available: v1.0.7)
[INFO] [stderr]       Adding time-test v0.2.3 (available: v0.3.0)
[INFO] [stderr]       Adding wasi v0.10.0+wasi-snapshot-preview1 (available: v0.10.2+wasi-snapshot-preview1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded time-test v0.2.3
[INFO] [stderr]   Downloaded goscript-parser v0.1.0
[INFO] [stderr]   Downloaded slotmap v0.4.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dc723a84a7e8a231e4d86bf982684f45e911c4aad8feac35dbddac850b25f8a1
[INFO] running `Command { std: "docker" "start" "-a" "dc723a84a7e8a231e4d86bf982684f45e911c4aad8feac35dbddac850b25f8a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dc723a84a7e8a231e4d86bf982684f45e911c4aad8feac35dbddac850b25f8a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dc723a84a7e8a231e4d86bf982684f45e911c4aad8feac35dbddac850b25f8a1", kill_on_drop: false }`
[INFO] [stdout] dc723a84a7e8a231e4d86bf982684f45e911c4aad8feac35dbddac850b25f8a1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 23f998f7c68ba559f27a6fee982ea8060e6a176bac6c7bc3fd6d04b62d0c3e31
[INFO] running `Command { std: "docker" "start" "-a" "23f998f7c68ba559f27a6fee982ea8060e6a176bac6c7bc3fd6d04b62d0c3e31", kill_on_drop: false }`
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling slotmap v0.4.3
[INFO] [stderr]    Compiling waker-fn v1.2.0
[INFO] [stderr]    Compiling event-listener v2.5.3
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling time-test v0.2.3
[INFO] [stderr]    Compiling ordered-float v2.10.1
[INFO] [stderr]    Compiling futures-lite v1.13.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling goscript-parser v0.1.0
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling async-channel v1.9.0
[INFO] [stderr]    Compiling async-executor v1.13.3
[INFO] [stderr]    Compiling goscript-vm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/value.rs:169:10
[INFO] [stdout]      |
[INFO] [stdout] 169  |         };
[INFO] [stdout]      |          ^
[INFO] [stdout] ...
[INFO] [stdout] 1367 |         unsafe { shift_int!(t, self, b, checked_shl) }
[INFO] [stdout]      |                  ----------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `shift_int`
[INFO] [stdout]      = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]      = note: this warning originates in the macro `shift_int` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/value.rs:169:10
[INFO] [stdout]      |
[INFO] [stdout] 169  |         };
[INFO] [stdout]      |          ^
[INFO] [stdout] ...
[INFO] [stdout] 1372 |         unsafe { shift_int!(t, self, b, checked_shr) }
[INFO] [stdout]      |                  ----------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `shift_int`
[INFO] [stdout]      = note: this warning originates in the macro `shift_int` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/vm_util.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 |         };
[INFO] [stdout]     |          ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/vm.rs:690:47
[INFO] [stdout]     |
[INFO] [stdout] 690 |                         let (unwrapped, ok) = unwrap_recv_val!(chan, val, objs.metas, gcv);
[INFO] [stdout]     |                                               -------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `unwrap_recv_val` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/vm_util.rs:160:10
[INFO] [stdout]      |
[INFO] [stdout] 160  |           };
[INFO] [stdout]      |            ^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/vm.rs:1005:67
[INFO] [stdout]      |
[INFO] [stdout] 1005 |   ...                   let (unwrapped, ok) = unwrap_recv_val!(
[INFO] [stdout]      |  _____________________________________________-
[INFO] [stdout] 1006 | | ...                       c.as_channel(),
[INFO] [stdout] 1007 | | ...                       val,
[INFO] [stdout] 1008 | | ...                       objs.metas,
[INFO] [stdout] 1009 | | ...                       gcv
[INFO] [stdout] 1010 | | ...                   );
[INFO] [stdout]      | |_______________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: this warning originates in the macro `unwrap_recv_val` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]     --> src/objects.rs:1318:5
[INFO] [stdout]      |
[INFO] [stdout] 1317 | pub struct PackageVal {
[INFO] [stdout]      |            ---------- field in this struct
[INFO] [stdout] 1318 |     name: String,
[INFO] [stdout]      |     ^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `PackageVal` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]      = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:321:32
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let uv: u32 = unsafe { std::mem::transmute(imm) };
[INFO] [stdout]     |                                -------------------^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: replace this with: `i32::cast_unsigned`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:330:31
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let u0: u8 = unsafe { std::mem::transmute(imm0 as i8) };
[INFO] [stdout]     |                               -------------------^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: replace this with: `i8::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:332:32
[INFO] [stdout]     |
[INFO] [stdout] 332 |         let u1: u32 = unsafe { std::mem::transmute(imm1) };
[INFO] [stdout]     |                                -------------------^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: replace this with: `i32::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:342:33
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let val8: u8 = unsafe { std::mem::transmute(index) };
[INFO] [stdout]     |                                 -------------------^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: replace this with: `i8::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:378:33
[INFO] [stdout]     |
[INFO] [stdout] 378 |         let ival: i8 = unsafe { std::mem::transmute(v) };
[INFO] [stdout]     |                                 -------------------^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: replace this with: `u8::cast_signed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:384:18
[INFO] [stdout]     |
[INFO] [stdout] 384 |         unsafe { std::mem::transmute((self.val & 0xffff_ffff) as u32) }
[INFO] [stdout]     |                  -------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: replace this with: `u32::cast_signed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:390:31
[INFO] [stdout]     |
[INFO] [stdout] 390 |         let i0: i8 = unsafe { std::mem::transmute((all >> 24) as u8) };
[INFO] [stdout]     |                               -------------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: replace this with: `u8::cast_signed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:394:27
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let i1 = unsafe { std::mem::transmute(all) };
[INFO] [stdout]     |                           -------------------^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: replace this with: `u32::cast_signed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:132:17
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn iter(&self) -> StringIter {
[INFO] [stdout]     |                 ^^^^^     ---------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn iter(&self) -> StringIter<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:268:28
[INFO] [stdout]     |
[INFO] [stdout] 268 |     pub fn borrow_data_mut(&self) -> RefMut<GosHashMap> {
[INFO] [stdout]     |                            ^^^^^     ------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 268 |     pub fn borrow_data_mut(&self) -> RefMut<'_, GosHashMap> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:273:24
[INFO] [stdout]     |
[INFO] [stdout] 273 |     pub fn borrow_data(&self) -> Ref<GosHashMap> {
[INFO] [stdout]     |                        ^^^^^     --------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 273 |     pub fn borrow_data(&self) -> Ref<'_, GosHashMap> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:367:28
[INFO] [stdout]     |
[INFO] [stdout] 367 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<GosVec> {
[INFO] [stdout]     |                            ^^^^^     ------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 367 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<'_, GosVec> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:372:24
[INFO] [stdout]     |
[INFO] [stdout] 372 |     pub fn borrow_data(&self) -> std::cell::Ref<GosVec> {
[INFO] [stdout]     |                        ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 372 |     pub fn borrow_data(&self) -> std::cell::Ref<'_, GosVec> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:558:19
[INFO] [stdout]     |
[INFO] [stdout] 558 |     pub fn borrow(&self) -> SliceRef {
[INFO] [stdout]     |                   ^^^^^     -------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 558 |     pub fn borrow(&self) -> SliceRef<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:563:28
[INFO] [stdout]     |
[INFO] [stdout] 563 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<GosVec> {
[INFO] [stdout]     |                            ^^^^^     ------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 563 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<'_, GosVec> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:571:24
[INFO] [stdout]     |
[INFO] [stdout] 571 |     pub fn borrow_data(&self) -> std::cell::Ref<GosVec> {
[INFO] [stdout]     |                        ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 571 |     pub fn borrow_data(&self) -> std::cell::Ref<'_, GosVec> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:688:19
[INFO] [stdout]     |
[INFO] [stdout] 688 |     pub fn new(s: &SliceObj) -> SliceRef {
[INFO] [stdout]     |                   ^^^^^^^^^     -------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 688 |     pub fn new(s: &SliceObj) -> SliceRef<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:696:17
[INFO] [stdout]     |
[INFO] [stdout] 696 |     pub fn iter(&self) -> SliceIter {
[INFO] [stdout]     |                 ^^^^^     --------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 696 |     pub fn iter(&self) -> SliceIter<'_> {
[INFO] [stdout]     |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]     --> src/objects.rs:1351:20
[INFO] [stdout]      |
[INFO] [stdout] 1351 |     pub fn var_mut(&self, fn_member_index: OpIndex) -> RefMut<GosValue> {
[INFO] [stdout]      |                    ^^^^^                               ---------------- the lifetime gets resolved as `'_`
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    this lifetime flows to the output
[INFO] [stdout]      |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]      |
[INFO] [stdout] 1351 |     pub fn var_mut(&self, fn_member_index: OpIndex) -> RefMut<'_, GosValue> {
[INFO] [stdout]      |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]     --> src/objects.rs:1373:19
[INFO] [stdout]      |
[INFO] [stdout] 1373 |     pub fn member(&self, i: OpIndex) -> Ref<GosValue> {
[INFO] [stdout]      |                   ^^^^^                 ------------- the lifetime gets resolved as `'_`
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this lifetime flows to the output
[INFO] [stdout]      |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]      |
[INFO] [stdout] 1373 |     pub fn member(&self, i: OpIndex) -> Ref<'_, GosValue> {
[INFO] [stdout]      |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]     --> src/objects.rs:1378:23
[INFO] [stdout]      |
[INFO] [stdout] 1378 |     pub fn member_mut(&self, i: OpIndex) -> RefMut<GosValue> {
[INFO] [stdout]      |                       ^^^^^                 ---------------- the lifetime gets resolved as `'_`
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this lifetime flows to the output
[INFO] [stdout]      |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]      |
[INFO] [stdout] 1378 |     pub fn member_mut(&self, i: OpIndex) -> RefMut<'_, GosValue> {
[INFO] [stdout]      |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/vm.rs:911:25
[INFO] [stdout]     |
[INFO] [stdout] 911 |                         drop(frame);
[INFO] [stdout]     |                         ^^^^^-----^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              argument has type `&mut CallFrame`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 911 -                         drop(frame);
[INFO] [stdout] 911 +                         let _ = frame;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]     --> src/vm.rs:1111:37
[INFO] [stdout]      |
[INFO] [stdout] 1111 | ...                   drop(frame);
[INFO] [stdout]      |                       ^^^^^-----^
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            argument has type `&mut CallFrame`
[INFO] [stdout]      |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1111 -                                     drop(frame);
[INFO] [stdout] 1111 +                                     let _ = frame;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/gc.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn borrow_data(&self) -> Ref<Vec<GcWeak>> {
[INFO] [stdout]    |                    ^^^^^     ---------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn borrow_data(&self) -> Ref<'_, Vec<GcWeak>> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.37s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: goscript-vm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "23f998f7c68ba559f27a6fee982ea8060e6a176bac6c7bc3fd6d04b62d0c3e31", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "23f998f7c68ba559f27a6fee982ea8060e6a176bac6c7bc3fd6d04b62d0c3e31", kill_on_drop: false }`
[INFO] [stdout] 23f998f7c68ba559f27a6fee982ea8060e6a176bac6c7bc3fd6d04b62d0c3e31
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 00bceb07243e5394e73f2bb092d78722a705d89723981d7cc4a1a8fcd8be5e93
[INFO] running `Command { std: "docker" "start" "-a" "00bceb07243e5394e73f2bb092d78722a705d89723981d7cc4a1a8fcd8be5e93", kill_on_drop: false }`
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/value.rs:169:10
[INFO] [stdout]      |
[INFO] [stdout] 169  |         };
[INFO] [stdout]      |          ^
[INFO] [stdout] ...
[INFO] [stdout] 1367 |         unsafe { shift_int!(t, self, b, checked_shl) }
[INFO] [stdout]      |                  ----------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `shift_int`
[INFO] [stdout]      = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]      = note: this warning originates in the macro `shift_int` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/value.rs:169:10
[INFO] [stdout]      |
[INFO] [stdout] 169  |         };
[INFO] [stdout]      |          ^
[INFO] [stdout] ...
[INFO] [stdout] 1372 |         unsafe { shift_int!(t, self, b, checked_shr) }
[INFO] [stdout]      |                  ----------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `shift_int`
[INFO] [stdout]      = note: this warning originates in the macro `shift_int` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/vm_util.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 |         };
[INFO] [stdout]     |          ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/vm.rs:690:47
[INFO] [stdout]     |
[INFO] [stdout] 690 |                         let (unwrapped, ok) = unwrap_recv_val!(chan, val, objs.metas, gcv);
[INFO] [stdout]     |                                               -------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `unwrap_recv_val` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/vm_util.rs:160:10
[INFO] [stdout]      |
[INFO] [stdout] 160  |           };
[INFO] [stdout]      |            ^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/vm.rs:1005:67
[INFO] [stdout]      |
[INFO] [stdout] 1005 |   ...                   let (unwrapped, ok) = unwrap_recv_val!(
[INFO] [stdout]      |  _____________________________________________-
[INFO] [stdout] 1006 | | ...                       c.as_channel(),
[INFO] [stdout] 1007 | | ...                       val,
[INFO] [stdout] 1008 | | ...                       objs.metas,
[INFO] [stdout] 1009 | | ...                       gcv
[INFO] [stdout] 1010 | | ...                   );
[INFO] [stdout]      | |_______________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: this warning originates in the macro `unwrap_recv_val` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]     --> src/objects.rs:1318:5
[INFO] [stdout]      |
[INFO] [stdout] 1317 | pub struct PackageVal {
[INFO] [stdout]      |            ---------- field in this struct
[INFO] [stdout] 1318 |     name: String,
[INFO] [stdout]      |     ^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `PackageVal` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]      = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:321:32
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let uv: u32 = unsafe { std::mem::transmute(imm) };
[INFO] [stdout]     |                                -------------------^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: replace this with: `i32::cast_unsigned`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:330:31
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let u0: u8 = unsafe { std::mem::transmute(imm0 as i8) };
[INFO] [stdout]     |                               -------------------^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: replace this with: `i8::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:332:32
[INFO] [stdout]     |
[INFO] [stdout] 332 |         let u1: u32 = unsafe { std::mem::transmute(imm1) };
[INFO] [stdout]     |                                -------------------^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: replace this with: `i32::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:342:33
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let val8: u8 = unsafe { std::mem::transmute(index) };
[INFO] [stdout]     |                                 -------------------^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: replace this with: `i8::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:378:33
[INFO] [stdout]     |
[INFO] [stdout] 378 |         let ival: i8 = unsafe { std::mem::transmute(v) };
[INFO] [stdout]     |                                 -------------------^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: replace this with: `u8::cast_signed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:384:18
[INFO] [stdout]     |
[INFO] [stdout] 384 |         unsafe { std::mem::transmute((self.val & 0xffff_ffff) as u32) }
[INFO] [stdout]     |                  -------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: replace this with: `u32::cast_signed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:390:31
[INFO] [stdout]     |
[INFO] [stdout] 390 |         let i0: i8 = unsafe { std::mem::transmute((all >> 24) as u8) };
[INFO] [stdout]     |                               -------------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: replace this with: `u8::cast_signed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:394:27
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let i1 = unsafe { std::mem::transmute(all) };
[INFO] [stdout]     |                           -------------------^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: replace this with: `u32::cast_signed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:132:17
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn iter(&self) -> StringIter {
[INFO] [stdout]     |                 ^^^^^     ---------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn iter(&self) -> StringIter<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:268:28
[INFO] [stdout]     |
[INFO] [stdout] 268 |     pub fn borrow_data_mut(&self) -> RefMut<GosHashMap> {
[INFO] [stdout]     |                            ^^^^^     ------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 268 |     pub fn borrow_data_mut(&self) -> RefMut<'_, GosHashMap> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:273:24
[INFO] [stdout]     |
[INFO] [stdout] 273 |     pub fn borrow_data(&self) -> Ref<GosHashMap> {
[INFO] [stdout]     |                        ^^^^^     --------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 273 |     pub fn borrow_data(&self) -> Ref<'_, GosHashMap> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:367:28
[INFO] [stdout]     |
[INFO] [stdout] 367 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<GosVec> {
[INFO] [stdout]     |                            ^^^^^     ------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 367 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<'_, GosVec> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:372:24
[INFO] [stdout]     |
[INFO] [stdout] 372 |     pub fn borrow_data(&self) -> std::cell::Ref<GosVec> {
[INFO] [stdout]     |                        ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 372 |     pub fn borrow_data(&self) -> std::cell::Ref<'_, GosVec> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:558:19
[INFO] [stdout]     |
[INFO] [stdout] 558 |     pub fn borrow(&self) -> SliceRef {
[INFO] [stdout]     |                   ^^^^^     -------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 558 |     pub fn borrow(&self) -> SliceRef<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:563:28
[INFO] [stdout]     |
[INFO] [stdout] 563 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<GosVec> {
[INFO] [stdout]     |                            ^^^^^     ------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 563 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<'_, GosVec> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:571:24
[INFO] [stdout]     |
[INFO] [stdout] 571 |     pub fn borrow_data(&self) -> std::cell::Ref<GosVec> {
[INFO] [stdout]     |                        ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 571 |     pub fn borrow_data(&self) -> std::cell::Ref<'_, GosVec> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:688:19
[INFO] [stdout]     |
[INFO] [stdout] 688 |     pub fn new(s: &SliceObj) -> SliceRef {
[INFO] [stdout]     |                   ^^^^^^^^^     -------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 688 |     pub fn new(s: &SliceObj) -> SliceRef<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:696:17
[INFO] [stdout]     |
[INFO] [stdout] 696 |     pub fn iter(&self) -> SliceIter {
[INFO] [stdout]     |                 ^^^^^     --------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 696 |     pub fn iter(&self) -> SliceIter<'_> {
[INFO] [stdout]     |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]     --> src/objects.rs:1351:20
[INFO] [stdout]      |
[INFO] [stdout] 1351 |     pub fn var_mut(&self, fn_member_index: OpIndex) -> RefMut<GosValue> {
[INFO] [stdout]      |                    ^^^^^                               ---------------- the lifetime gets resolved as `'_`
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    this lifetime flows to the output
[INFO] [stdout]      |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]      |
[INFO] [stdout] 1351 |     pub fn var_mut(&self, fn_member_index: OpIndex) -> RefMut<'_, GosValue> {
[INFO] [stdout]      |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]     --> src/objects.rs:1373:19
[INFO] [stdout]      |
[INFO] [stdout] 1373 |     pub fn member(&self, i: OpIndex) -> Ref<GosValue> {
[INFO] [stdout]      |                   ^^^^^                 ------------- the lifetime gets resolved as `'_`
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this lifetime flows to the output
[INFO] [stdout]      |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]      |
[INFO] [stdout] 1373 |     pub fn member(&self, i: OpIndex) -> Ref<'_, GosValue> {
[INFO] [stdout]      |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling goscript-vm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]     --> src/objects.rs:1378:23
[INFO] [stdout]      |
[INFO] [stdout] 1378 |     pub fn member_mut(&self, i: OpIndex) -> RefMut<GosValue> {
[INFO] [stdout]      |                       ^^^^^                 ---------------- the lifetime gets resolved as `'_`
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this lifetime flows to the output
[INFO] [stdout]      |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]      |
[INFO] [stdout] 1378 |     pub fn member_mut(&self, i: OpIndex) -> RefMut<'_, GosValue> {
[INFO] [stdout]      |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/vm.rs:911:25
[INFO] [stdout]     |
[INFO] [stdout] 911 |                         drop(frame);
[INFO] [stdout]     |                         ^^^^^-----^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              argument has type `&mut CallFrame`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 911 -                         drop(frame);
[INFO] [stdout] 911 +                         let _ = frame;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]     --> src/vm.rs:1111:37
[INFO] [stdout]      |
[INFO] [stdout] 1111 | ...                   drop(frame);
[INFO] [stdout]      |                       ^^^^^-----^
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            argument has type `&mut CallFrame`
[INFO] [stdout]      |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1111 -                                     drop(frame);
[INFO] [stdout] 1111 +                                     let _ = frame;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/gc.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn borrow_data(&self) -> Ref<Vec<GcWeak>> {
[INFO] [stdout]    |                    ^^^^^     ---------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn borrow_data(&self) -> Ref<'_, Vec<GcWeak>> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/value.rs:169:10
[INFO] [stdout]      |
[INFO] [stdout] 169  |         };
[INFO] [stdout]      |          ^
[INFO] [stdout] ...
[INFO] [stdout] 1367 |         unsafe { shift_int!(t, self, b, checked_shl) }
[INFO] [stdout]      |                  ----------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `shift_int`
[INFO] [stdout]      = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]      = note: this warning originates in the macro `shift_int` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/value.rs:169:10
[INFO] [stdout]      |
[INFO] [stdout] 169  |         };
[INFO] [stdout]      |          ^
[INFO] [stdout] ...
[INFO] [stdout] 1372 |         unsafe { shift_int!(t, self, b, checked_shr) }
[INFO] [stdout]      |                  ----------------------------------- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `shift_int`
[INFO] [stdout]      = note: this warning originates in the macro `shift_int` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/vm_util.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 |         };
[INFO] [stdout]     |          ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/vm.rs:690:47
[INFO] [stdout]     |
[INFO] [stdout] 690 |                         let (unwrapped, ok) = unwrap_recv_val!(chan, val, objs.metas, gcv);
[INFO] [stdout]     |                                               -------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `unwrap_recv_val` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/vm_util.rs:160:10
[INFO] [stdout]      |
[INFO] [stdout] 160  |           };
[INFO] [stdout]      |            ^
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/vm.rs:1005:67
[INFO] [stdout]      |
[INFO] [stdout] 1005 |   ...                   let (unwrapped, ok) = unwrap_recv_val!(
[INFO] [stdout]      |  _____________________________________________-
[INFO] [stdout] 1006 | | ...                       c.as_channel(),
[INFO] [stdout] 1007 | | ...                       val,
[INFO] [stdout] 1008 | | ...                       objs.metas,
[INFO] [stdout] 1009 | | ...                       gcv
[INFO] [stdout] 1010 | | ...                   );
[INFO] [stdout]      | |_______________________- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: this warning originates in the macro `unwrap_recv_val` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]     --> src/objects.rs:1318:5
[INFO] [stdout]      |
[INFO] [stdout] 1317 | pub struct PackageVal {
[INFO] [stdout]      |            ---------- field in this struct
[INFO] [stdout] 1318 |     name: String,
[INFO] [stdout]      |     ^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `PackageVal` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]      = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:321:32
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let uv: u32 = unsafe { std::mem::transmute(imm) };
[INFO] [stdout]     |                                -------------------^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: replace this with: `i32::cast_unsigned`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:330:31
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let u0: u8 = unsafe { std::mem::transmute(imm0 as i8) };
[INFO] [stdout]     |                               -------------------^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: replace this with: `i8::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:332:32
[INFO] [stdout]     |
[INFO] [stdout] 332 |         let u1: u32 = unsafe { std::mem::transmute(imm1) };
[INFO] [stdout]     |                                -------------------^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: replace this with: `i32::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:342:33
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let val8: u8 = unsafe { std::mem::transmute(index) };
[INFO] [stdout]     |                                 -------------------^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: replace this with: `i8::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:378:33
[INFO] [stdout]     |
[INFO] [stdout] 378 |         let ival: i8 = unsafe { std::mem::transmute(v) };
[INFO] [stdout]     |                                 -------------------^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: replace this with: `u8::cast_signed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:384:18
[INFO] [stdout]     |
[INFO] [stdout] 384 |         unsafe { std::mem::transmute((self.val & 0xffff_ffff) as u32) }
[INFO] [stdout]     |                  -------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: replace this with: `u32::cast_signed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:390:31
[INFO] [stdout]     |
[INFO] [stdout] 390 |         let i0: i8 = unsafe { std::mem::transmute((all >> 24) as u8) };
[INFO] [stdout]     |                               -------------------^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: replace this with: `u8::cast_signed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/instruction.rs:394:27
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let i1 = unsafe { std::mem::transmute(all) };
[INFO] [stdout]     |                           -------------------^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: replace this with: `u32::cast_signed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:132:17
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn iter(&self) -> StringIter {
[INFO] [stdout]     |                 ^^^^^     ---------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn iter(&self) -> StringIter<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:268:28
[INFO] [stdout]     |
[INFO] [stdout] 268 |     pub fn borrow_data_mut(&self) -> RefMut<GosHashMap> {
[INFO] [stdout]     |                            ^^^^^     ------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 268 |     pub fn borrow_data_mut(&self) -> RefMut<'_, GosHashMap> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:273:24
[INFO] [stdout]     |
[INFO] [stdout] 273 |     pub fn borrow_data(&self) -> Ref<GosHashMap> {
[INFO] [stdout]     |                        ^^^^^     --------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 273 |     pub fn borrow_data(&self) -> Ref<'_, GosHashMap> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:367:28
[INFO] [stdout]     |
[INFO] [stdout] 367 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<GosVec> {
[INFO] [stdout]     |                            ^^^^^     ------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 367 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<'_, GosVec> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:372:24
[INFO] [stdout]     |
[INFO] [stdout] 372 |     pub fn borrow_data(&self) -> std::cell::Ref<GosVec> {
[INFO] [stdout]     |                        ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 372 |     pub fn borrow_data(&self) -> std::cell::Ref<'_, GosVec> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:558:19
[INFO] [stdout]     |
[INFO] [stdout] 558 |     pub fn borrow(&self) -> SliceRef {
[INFO] [stdout]     |                   ^^^^^     -------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 558 |     pub fn borrow(&self) -> SliceRef<'_> {
[INFO] [stdout]     |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:563:28
[INFO] [stdout]     |
[INFO] [stdout] 563 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<GosVec> {
[INFO] [stdout]     |                            ^^^^^     ------------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 563 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<'_, GosVec> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:571:24
[INFO] [stdout]     |
[INFO] [stdout] 571 |     pub fn borrow_data(&self) -> std::cell::Ref<GosVec> {
[INFO] [stdout]     |                        ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 571 |     pub fn borrow_data(&self) -> std::cell::Ref<'_, GosVec> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:688:19
[INFO] [stdout]     |
[INFO] [stdout] 688 |     pub fn new(s: &SliceObj) -> SliceRef {
[INFO] [stdout]     |                   ^^^^^^^^^     -------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 688 |     pub fn new(s: &SliceObj) -> SliceRef<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/objects.rs:696:17
[INFO] [stdout]     |
[INFO] [stdout] 696 |     pub fn iter(&self) -> SliceIter {
[INFO] [stdout]     |                 ^^^^^     --------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 696 |     pub fn iter(&self) -> SliceIter<'_> {
[INFO] [stdout]     |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]     --> src/objects.rs:1351:20
[INFO] [stdout]      |
[INFO] [stdout] 1351 |     pub fn var_mut(&self, fn_member_index: OpIndex) -> RefMut<GosValue> {
[INFO] [stdout]      |                    ^^^^^                               ---------------- the lifetime gets resolved as `'_`
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    this lifetime flows to the output
[INFO] [stdout]      |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]      |
[INFO] [stdout] 1351 |     pub fn var_mut(&self, fn_member_index: OpIndex) -> RefMut<'_, GosValue> {
[INFO] [stdout]      |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]     --> src/objects.rs:1373:19
[INFO] [stdout]      |
[INFO] [stdout] 1373 |     pub fn member(&self, i: OpIndex) -> Ref<GosValue> {
[INFO] [stdout]      |                   ^^^^^                 ------------- the lifetime gets resolved as `'_`
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this lifetime flows to the output
[INFO] [stdout]      |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]      |
[INFO] [stdout] 1373 |     pub fn member(&self, i: OpIndex) -> Ref<'_, GosValue> {
[INFO] [stdout]      |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]     --> src/objects.rs:1378:23
[INFO] [stdout]      |
[INFO] [stdout] 1378 |     pub fn member_mut(&self, i: OpIndex) -> RefMut<GosValue> {
[INFO] [stdout]      |                       ^^^^^                 ---------------- the lifetime gets resolved as `'_`
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this lifetime flows to the output
[INFO] [stdout]      |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]      |
[INFO] [stdout] 1378 |     pub fn member_mut(&self, i: OpIndex) -> RefMut<'_, GosValue> {
[INFO] [stdout]      |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/vm.rs:911:25
[INFO] [stdout]     |
[INFO] [stdout] 911 |                         drop(frame);
[INFO] [stdout]     |                         ^^^^^-----^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              argument has type `&mut CallFrame`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 911 -                         drop(frame);
[INFO] [stdout] 911 +                         let _ = frame;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]     --> src/vm.rs:1111:37
[INFO] [stdout]      |
[INFO] [stdout] 1111 | ...                   drop(frame);
[INFO] [stdout]      |                       ^^^^^-----^
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            argument has type `&mut CallFrame`
[INFO] [stdout]      |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1111 -                                     drop(frame);
[INFO] [stdout] 1111 +                                     let _ = frame;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/gc.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn borrow_data(&self) -> Ref<Vec<GcWeak>> {
[INFO] [stdout]    |                    ^^^^^     ---------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn borrow_data(&self) -> Ref<'_, Vec<GcWeak>> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.40s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: goscript-vm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "00bceb07243e5394e73f2bb092d78722a705d89723981d7cc4a1a8fcd8be5e93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "00bceb07243e5394e73f2bb092d78722a705d89723981d7cc4a1a8fcd8be5e93", kill_on_drop: false }`
[INFO] [stdout] 00bceb07243e5394e73f2bb092d78722a705d89723981d7cc4a1a8fcd8be5e93
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 1bde3e7fe51decbd68a157c689e70660cd4f6dbe6e12ddc41722d60d9d79d750
[INFO] running `Command { std: "docker" "start" "-a" "1bde3e7fe51decbd68a157c689e70660cd4f6dbe6e12ddc41722d60d9d79d750", kill_on_drop: false }`
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]     --> src/value.rs:169:10
[INFO] [stderr]      |
[INFO] [stderr] 169  |         };
[INFO] [stderr]      |          ^
[INFO] [stderr] ...
[INFO] [stderr] 1367 |         unsafe { shift_int!(t, self, b, checked_shl) }
[INFO] [stderr]      |                  ----------------------------------- in this macro invocation
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `shift_int`
[INFO] [stderr]      = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stderr]      = note: this warning originates in the macro `shift_int` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]     --> src/value.rs:169:10
[INFO] [stderr]      |
[INFO] [stderr] 169  |         };
[INFO] [stderr]      |          ^
[INFO] [stderr] ...
[INFO] [stderr] 1372 |         unsafe { shift_int!(t, self, b, checked_shr) }
[INFO] [stderr]      |                  ----------------------------------- in this macro invocation
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]      = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]      = note: to ignore the value produced by the macro, add a semicolon after the invocation of `shift_int`
[INFO] [stderr]      = note: this warning originates in the macro `shift_int` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/vm_util.rs:160:10
[INFO] [stderr]     |
[INFO] [stderr] 160 |         };
[INFO] [stderr]     |          ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/vm.rs:690:47
[INFO] [stderr]     |
[INFO] [stderr] 690 |                         let (unwrapped, ok) = unwrap_recv_val!(chan, val, objs.metas, gcv);
[INFO] [stderr]     |                                               -------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `unwrap_recv_val` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]     --> src/vm_util.rs:160:10
[INFO] [stderr]      |
[INFO] [stderr] 160  |           };
[INFO] [stderr]      |            ^
[INFO] [stderr]      |
[INFO] [stderr]     ::: src/vm.rs:1005:67
[INFO] [stderr]      |
[INFO] [stderr] 1005 |   ...                   let (unwrapped, ok) = unwrap_recv_val!(
[INFO] [stderr]      |  _____________________________________________-
[INFO] [stderr] 1006 | | ...                       c.as_channel(),
[INFO] [stderr] 1007 | | ...                       val,
[INFO] [stderr] 1008 | | ...                       objs.metas,
[INFO] [stderr] 1009 | | ...                       gcv
[INFO] [stderr] 1010 | | ...                   );
[INFO] [stderr]      | |_______________________- in this macro invocation
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]      = note: this warning originates in the macro `unwrap_recv_val` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: field `name` is never read
[INFO] [stderr]     --> src/objects.rs:1318:5
[INFO] [stderr]      |
[INFO] [stderr] 1317 | pub struct PackageVal {
[INFO] [stderr]      |            ---------- field in this struct
[INFO] [stderr] 1318 |     name: String,
[INFO] [stderr]      |     ^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `PackageVal` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]      = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/instruction.rs:321:32
[INFO] [stderr]     |
[INFO] [stderr] 321 |         let uv: u32 = unsafe { std::mem::transmute(imm) };
[INFO] [stderr]     |                                -------------------^^^^^
[INFO] [stderr]     |                                |
[INFO] [stderr]     |                                help: replace this with: `i32::cast_unsigned`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/instruction.rs:330:31
[INFO] [stderr]     |
[INFO] [stderr] 330 |         let u0: u8 = unsafe { std::mem::transmute(imm0 as i8) };
[INFO] [stderr]     |                               -------------------^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               help: replace this with: `i8::cast_unsigned`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/instruction.rs:332:32
[INFO] [stderr]     |
[INFO] [stderr] 332 |         let u1: u32 = unsafe { std::mem::transmute(imm1) };
[INFO] [stderr]     |                                -------------------^^^^^^
[INFO] [stderr]     |                                |
[INFO] [stderr]     |                                help: replace this with: `i32::cast_unsigned`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/instruction.rs:342:33
[INFO] [stderr]     |
[INFO] [stderr] 342 |         let val8: u8 = unsafe { std::mem::transmute(index) };
[INFO] [stderr]     |                                 -------------------^^^^^^^
[INFO] [stderr]     |                                 |
[INFO] [stderr]     |                                 help: replace this with: `i8::cast_unsigned`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/instruction.rs:378:33
[INFO] [stderr]     |
[INFO] [stderr] 378 |         let ival: i8 = unsafe { std::mem::transmute(v) };
[INFO] [stderr]     |                                 -------------------^^^
[INFO] [stderr]     |                                 |
[INFO] [stderr]     |                                 help: replace this with: `u8::cast_signed`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/instruction.rs:384:18
[INFO] [stderr]     |
[INFO] [stderr] 384 |         unsafe { std::mem::transmute((self.val & 0xffff_ffff) as u32) }
[INFO] [stderr]     |                  -------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                  |
[INFO] [stderr]     |                  help: replace this with: `u32::cast_signed`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/instruction.rs:390:31
[INFO] [stderr]     |
[INFO] [stderr] 390 |         let i0: i8 = unsafe { std::mem::transmute((all >> 24) as u8) };
[INFO] [stderr]     |                               -------------------^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               help: replace this with: `u8::cast_signed`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/instruction.rs:394:27
[INFO] [stderr]     |
[INFO] [stderr] 394 |         let i1 = unsafe { std::mem::transmute(all) };
[INFO] [stderr]     |                           -------------------^^^^^
[INFO] [stderr]     |                           |
[INFO] [stderr]     |                           help: replace this with: `u32::cast_signed`
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/objects.rs:132:17
[INFO] [stderr]     |
[INFO] [stderr] 132 |     pub fn iter(&self) -> StringIter {
[INFO] [stderr]     |                 ^^^^^     ---------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 132 |     pub fn iter(&self) -> StringIter<'_> {
[INFO] [stderr]     |                                     ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/objects.rs:268:28
[INFO] [stderr]     |
[INFO] [stderr] 268 |     pub fn borrow_data_mut(&self) -> RefMut<GosHashMap> {
[INFO] [stderr]     |                            ^^^^^     ------------------ the lifetime gets resolved as `'_`
[INFO] [stderr]     |                            |
[INFO] [stderr]     |                            this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 268 |     pub fn borrow_data_mut(&self) -> RefMut<'_, GosHashMap> {
[INFO] [stderr]     |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/objects.rs:273:24
[INFO] [stderr]     |
[INFO] [stderr] 273 |     pub fn borrow_data(&self) -> Ref<GosHashMap> {
[INFO] [stderr]     |                        ^^^^^     --------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 273 |     pub fn borrow_data(&self) -> Ref<'_, GosHashMap> {
[INFO] [stderr]     |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/objects.rs:367:28
[INFO] [stderr]     |
[INFO] [stderr] 367 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<GosVec> {
[INFO] [stderr]     |                            ^^^^^     ------------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                            |
[INFO] [stderr]     |                            this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 367 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<'_, GosVec> {
[INFO] [stderr]     |                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/objects.rs:372:24
[INFO] [stderr]     |
[INFO] [stderr] 372 |     pub fn borrow_data(&self) -> std::cell::Ref<GosVec> {
[INFO] [stderr]     |                        ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 372 |     pub fn borrow_data(&self) -> std::cell::Ref<'_, GosVec> {
[INFO] [stderr]     |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/objects.rs:558:19
[INFO] [stderr]     |
[INFO] [stderr] 558 |     pub fn borrow(&self) -> SliceRef {
[INFO] [stderr]     |                   ^^^^^     -------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                   |
[INFO] [stderr]     |                   this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 558 |     pub fn borrow(&self) -> SliceRef<'_> {
[INFO] [stderr]     |                                     ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/objects.rs:563:28
[INFO] [stderr]     |
[INFO] [stderr] 563 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<GosVec> {
[INFO] [stderr]     |                            ^^^^^     ------------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                            |
[INFO] [stderr]     |                            this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 563 |     pub fn borrow_data_mut(&self) -> std::cell::RefMut<'_, GosVec> {
[INFO] [stderr]     |                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/objects.rs:571:24
[INFO] [stderr]     |
[INFO] [stderr] 571 |     pub fn borrow_data(&self) -> std::cell::Ref<GosVec> {
[INFO] [stderr]     |                        ^^^^^     ---------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 571 |     pub fn borrow_data(&self) -> std::cell::Ref<'_, GosVec> {
[INFO] [stderr]     |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/objects.rs:688:19
[INFO] [stderr]     |
[INFO] [stderr] 688 |     pub fn new(s: &SliceObj) -> SliceRef {
[INFO] [stderr]     |                   ^^^^^^^^^     -------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                   |
[INFO] [stderr]     |                   this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 688 |     pub fn new(s: &SliceObj) -> SliceRef<'_> {
[INFO] [stderr]     |                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/objects.rs:696:17
[INFO] [stderr]     |
[INFO] [stderr] 696 |     pub fn iter(&self) -> SliceIter {
[INFO] [stderr]     |                 ^^^^^     --------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 696 |     pub fn iter(&self) -> SliceIter<'_> {
[INFO] [stderr]     |                                    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]     --> src/objects.rs:1351:20
[INFO] [stderr]      |
[INFO] [stderr] 1351 |     pub fn var_mut(&self, fn_member_index: OpIndex) -> RefMut<GosValue> {
[INFO] [stderr]      |                    ^^^^^                               ---------------- the lifetime gets resolved as `'_`
[INFO] [stderr]      |                    |
[INFO] [stderr]      |                    this lifetime flows to the output
[INFO] [stderr]      |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]      |
[INFO] [stderr] 1351 |     pub fn var_mut(&self, fn_member_index: OpIndex) -> RefMut<'_, GosValue> {
[INFO] [stderr]      |                                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]     --> src/objects.rs:1373:19
[INFO] [stderr]      |
[INFO] [stderr] 1373 |     pub fn member(&self, i: OpIndex) -> Ref<GosValue> {
[INFO] [stderr]      |                   ^^^^^                 ------------- the lifetime gets resolved as `'_`
[INFO] [stderr]      |                   |
[INFO] [stderr]      |                   this lifetime flows to the output
[INFO] [stderr]      |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]      |
[INFO] [stderr] 1373 |     pub fn member(&self, i: OpIndex) -> Ref<'_, GosValue> {
[INFO] [stderr]      |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]     --> src/objects.rs:1378:23
[INFO] [stderr]      |
[INFO] [stderr] 1378 |     pub fn member_mut(&self, i: OpIndex) -> RefMut<GosValue> {
[INFO] [stderr]      |                       ^^^^^                 ---------------- the lifetime gets resolved as `'_`
[INFO] [stderr]      |                       |
[INFO] [stderr]      |                       this lifetime flows to the output
[INFO] [stderr]      |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]      |
[INFO] [stderr] 1378 |     pub fn member_mut(&self, i: OpIndex) -> RefMut<'_, GosValue> {
[INFO] [stderr]      |                                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stderr]    --> src/vm.rs:911:25
[INFO] [stderr]     |
[INFO] [stderr] 911 |                         drop(frame);
[INFO] [stderr]     |                         ^^^^^-----^
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              argument has type `&mut CallFrame`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the expression or result
[INFO] [stderr]     |
[INFO] [stderr] 911 -                         drop(frame);
[INFO] [stderr] 911 +                         let _ = frame;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stderr]     --> src/vm.rs:1111:37
[INFO] [stderr]      |
[INFO] [stderr] 1111 | ...                   drop(frame);
[INFO] [stderr]      |                       ^^^^^-----^
[INFO] [stderr]      |                            |
[INFO] [stderr]      |                            argument has type `&mut CallFrame`
[INFO] [stderr]      |
[INFO] [stderr] help: use `let _ = ...` to ignore the expression or result
[INFO] [stderr]      |
[INFO] [stderr] 1111 -                                     drop(frame);
[INFO] [stderr] 1111 +                                     let _ = frame;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/gc.rs:30:20
[INFO] [stderr]    |
[INFO] [stderr] 30 |     fn borrow_data(&self) -> Ref<Vec<GcWeak>> {
[INFO] [stderr]    |                    ^^^^^     ---------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                    |
[INFO] [stderr]    |                    this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 30 |     fn borrow_data(&self) -> Ref<'_, Vec<GcWeak>> {
[INFO] [stderr]    |                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: `goscript-vm` (lib) generated 29 warnings (run `cargo fix --lib -p goscript-vm` to apply 8 suggestions)
[INFO] [stderr] warning: `goscript-vm` (lib test) generated 29 warnings (29 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: goscript-vm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/goscript_vm-1abfe63bd3a1c5dc)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test value::test::test_size ... ok
[INFO] [stdout] test instruction::test::test_opcode ... ok
[INFO] [stdout] test stack::test::test_stack ... ok
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/goscript_vm-1abfe63bd3a1c5dc` (signal: 4, SIGILL: illegal instruction)
[INFO] running `Command { std: "docker" "inspect" "1bde3e7fe51decbd68a157c689e70660cd4f6dbe6e12ddc41722d60d9d79d750", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1bde3e7fe51decbd68a157c689e70660cd4f6dbe6e12ddc41722d60d9d79d750", kill_on_drop: false }`
[INFO] [stdout] 1bde3e7fe51decbd68a157c689e70660cd4f6dbe6e12ddc41722d60d9d79d750
