[INFO] cloning repository https://github.com/qiaojinxia/gwvm
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/qiaojinxia/gwvm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqiaojinxia%2Fgwvm", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqiaojinxia%2Fgwvm'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1fa8bfe52fcbb7bb615b2d88ce1cadfb249ce84a
[INFO] checking qiaojinxia/gwvm against 24e1a22664233bce1f9b5dc6eee7c1f74327e28c for pr-159343-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqiaojinxia%2Fgwvm" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/qiaojinxia/gwvm
[INFO] finished tweaking git repo https://github.com/qiaojinxia/gwvm
[INFO] tweaked toml for git repo https://github.com/qiaojinxia/gwvm written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/qiaojinxia/gwvm on toolchain 24e1a22664233bce1f9b5dc6eee7c1f74327e28c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+24e1a22664233bce1f9b5dc6eee7c1f74327e28c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/qiaojinxia/gwvm already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+24e1a22664233bce1f9b5dc6eee7c1f74327e28c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7c7fc834dd6c52bbfb28506f1b4d2b4f3275361e4aa51043e59151950c77e7c1
[INFO] running `Command { std: "docker" "start" "7c7fc834dd6c52bbfb28506f1b4d2b4f3275361e4aa51043e59151950c77e7c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7c7fc834dd6c52bbfb28506f1b4d2b4f3275361e4aa51043e59151950c77e7c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7c7fc834dd6c52bbfb28506f1b4d2b4f3275361e4aa51043e59151950c77e7c1" "/opt/rustwide/cargo-home/bin/cargo" "+24e1a22664233bce1f9b5dc6eee7c1f74327e28c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7c7fc834dd6c52bbfb28506f1b4d2b4f3275361e4aa51043e59151950c77e7c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7c7fc834dd6c52bbfb28506f1b4d2b4f3275361e4aa51043e59151950c77e7c1" "/opt/rustwide/cargo-home/bin/cargo" "+24e1a22664233bce1f9b5dc6eee7c1f74327e28c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.71
[INFO] [stderr]    Compiling pkg-config v0.3.17
[INFO] [stderr]    Compiling cc v1.0.54
[INFO] [stderr]    Compiling crc32fast v1.2.0
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking adler32 v1.0.4
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]     Checking unicode-width v0.1.7
[INFO] [stderr]     Checking podio v0.1.7
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking hex v0.3.2
[INFO] [stderr]     Checking walkdir v2.3.1
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking miniz_oxide v0.3.6
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking time v0.1.43
[INFO] [stderr]     Checking clap v2.33.1
[INFO] [stderr]     Checking flate2 v1.0.14
[INFO] [stderr]    Compiling bzip2-sys v0.1.9+1.0.8
[INFO] [stderr]     Checking bzip2 v0.3.3
[INFO] [stderr]     Checking zip v0.5.5
[INFO] [stderr]     Checking gwvm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0583]: file not found for module `instructions`
[INFO] [stdout]  --> src/vm/mod.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub mod instructions;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `instructions`, create file "src/vm/instructions.rs" or "src/vm/instructions/mod.rs"
[INFO] [stdout]   = note: if there is a `mod instructions` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Exceptions` and `LocalVaribleTable`
[INFO] [stdout]  --> src/classpath/class_reader.rs:6:56
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::classpath::classfile_attribute::Attribute::{Exceptions, LocalVaribleTable};
[INFO] [stdout]   |                                                        ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::read`
[INFO] [stdout]   --> src/classpath/class_reader.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::fs::read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/classpath/class_reader.rs:401:14
[INFO] [stdout]     |
[INFO] [stdout] 401 |             0...63 => StackMapFrameBody::SameFrame,
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/classpath/class_reader.rs:402:15
[INFO] [stdout]     |
[INFO] [stdout] 402 |             64...127 => {
[INFO] [stdout]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/classpath/class_reader.rs:414:16
[INFO] [stdout]     |
[INFO] [stdout] 414 |             248...250 => {
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/classpath/class_reader.rs:422:16
[INFO] [stdout]     |
[INFO] [stdout] 422 |             252...254 => {
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Attribute`
[INFO] [stdout]  --> src/classpath/classfile.rs:2:45
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::classpath::classfile_attribute::{Attribute, AttributeInfo};
[INFO] [stdout]   |                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::classpath::classfile::Constant`
[INFO] [stdout]  --> src/classpath/classfile_attribute.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::classpath::classfile::Constant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/classpath/classfile_attribute.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::fmt::{Error, Formatter};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `const_value_index` should have an upper camel case name
[INFO] [stdout]   --> src/classpath/classfile_attribute.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     const_value_index(U16ConstantIndex),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ConstValueIndex`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `enum_const_value` should have an upper camel case name
[INFO] [stdout]   --> src/classpath/classfile_attribute.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     enum_const_value {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `EnumConstValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `class_info_index` should have an upper camel case name
[INFO] [stdout]   --> src/classpath/classfile_attribute.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     class_info_index(U16ConstantIndex),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ClassInfoIndex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `annotation_value` should have an upper camel case name
[INFO] [stdout]   --> src/classpath/classfile_attribute.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     annotation_value(Annotation),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AnnotationValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `array_value` should have an upper camel case name
[INFO] [stdout]   --> src/classpath/classfile_attribute.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     array_value {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ArrayValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::classpath::vmcode::Inst::Code`
[INFO] [stdout]  --> src/classpath/vmcode.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::classpath::vmcode::Inst::Code;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/vm/stack.rs:168:31
[INFO] [stdout]     |
[INFO] [stdout] 168 |             Slot::Num(val) => (*val as i64),
[INFO] [stdout]     |                               ^           ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 168 -             Slot::Num(val) => (*val as i64),
[INFO] [stdout] 168 +             Slot::Num(val) => *val as i64,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/vm/stack.rs:172:31
[INFO] [stdout]     |
[INFO] [stdout] 172 |             Slot::Num(val) => (*val as i64),
[INFO] [stdout]     |                               ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 172 -             Slot::Num(val) => (*val as i64),
[INFO] [stdout] 172 +             Slot::Num(val) => *val as i64,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `instructions`
[INFO] [stdout]  --> src/vm/mod.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub mod instructions;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `instructions`, create file "src/vm/instructions.rs" or "src/vm/instructions/mod.rs"
[INFO] [stdout]   = note: if there is a `mod instructions` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `buffered_io_capacity` has been stable since 1.46.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(buffered_io_capacity)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_strip` has been stable since 1.45.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(str_strip)]
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Exceptions` and `LocalVaribleTable`
[INFO] [stdout]  --> src/classpath/class_reader.rs:6:56
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::classpath::classfile_attribute::Attribute::{Exceptions, LocalVaribleTable};
[INFO] [stdout]   |                                                        ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::read`
[INFO] [stdout]   --> src/classpath/class_reader.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::fs::read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/classpath/class_reader.rs:401:14
[INFO] [stdout]     |
[INFO] [stdout] 401 |             0...63 => StackMapFrameBody::SameFrame,
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/classpath/class_reader.rs:402:15
[INFO] [stdout]     |
[INFO] [stdout] 402 |             64...127 => {
[INFO] [stdout]     |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/classpath/class_reader.rs:414:16
[INFO] [stdout]     |
[INFO] [stdout] 414 |             248...250 => {
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/classpath/class_reader.rs:422:16
[INFO] [stdout]     |
[INFO] [stdout] 422 |             252...254 => {
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Attribute`
[INFO] [stdout]  --> src/classpath/classfile.rs:2:45
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::classpath::classfile_attribute::{Attribute, AttributeInfo};
[INFO] [stdout]   |                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::classpath::classfile::Constant`
[INFO] [stdout]  --> src/classpath/classfile_attribute.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::classpath::classfile::Constant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/classpath/classfile_attribute.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::fmt::{Error, Formatter};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `const_value_index` should have an upper camel case name
[INFO] [stdout]   --> src/classpath/classfile_attribute.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     const_value_index(U16ConstantIndex),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ConstValueIndex`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `enum_const_value` should have an upper camel case name
[INFO] [stdout]   --> src/classpath/classfile_attribute.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     enum_const_value {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `EnumConstValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `class_info_index` should have an upper camel case name
[INFO] [stdout]   --> src/classpath/classfile_attribute.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     class_info_index(U16ConstantIndex),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ClassInfoIndex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `annotation_value` should have an upper camel case name
[INFO] [stdout]   --> src/classpath/classfile_attribute.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     annotation_value(Annotation),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AnnotationValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `array_value` should have an upper camel case name
[INFO] [stdout]   --> src/classpath/classfile_attribute.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     array_value {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ArrayValue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::classpath::vmcode::Inst::Code`
[INFO] [stdout]  --> src/classpath/vmcode.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::classpath::vmcode::Inst::Code;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/vm/stack.rs:168:31
[INFO] [stdout]     |
[INFO] [stdout] 168 |             Slot::Num(val) => (*val as i64),
[INFO] [stdout]     |                               ^           ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 168 -             Slot::Num(val) => (*val as i64),
[INFO] [stdout] 168 +             Slot::Num(val) => *val as i64,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around match arm expression
[INFO] [stdout]    --> src/vm/stack.rs:172:31
[INFO] [stdout]     |
[INFO] [stdout] 172 |             Slot::Num(val) => (*val as i64),
[INFO] [stdout]     |                               ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 172 -             Slot::Num(val) => (*val as i64),
[INFO] [stdout] 172 +             Slot::Num(val) => *val as i64,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/vm/stack.rs:332:5
[INFO] [stdout]     |
[INFO] [stdout] 332 |     ///测试 Stack 压入farame 弹出 frame
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 333 |     let f = Frame::new(10, 10);
[INFO] [stdout]     |     --------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `buffered_io_capacity` has been stable since 1.46.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(buffered_io_capacity)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `str_strip` has been stable since 1.45.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(str_strip)]
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/classpath/class_reader.rs:86:21
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 let mut attribute = self.read_attribute_info(constant_pool.as_ref())?;
[INFO] [stdout]    |                     ----^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/classpath/class_reader.rs:282:13
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let mut buf = &self.classreader[self.index..self.index + 4];
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/classpath/class_reader.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let mut buf = &self.classreader[self.index];
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/classpath/classfile.rs:139:18
[INFO] [stdout]     |
[INFO] [stdout] 139 |             for (i, v) in methodinfo.attribute_info.iter().enumerate() {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut res = String::new();
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut res = String::new();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/classpath/class_reader.rs:86:21
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 let mut attribute = self.read_attribute_info(constant_pool.as_ref())?;
[INFO] [stdout]    |                     ----^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/classpath/class_reader.rs:282:13
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let mut buf = &self.classreader[self.index..self.index + 4];
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/classpath/class_reader.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let mut buf = &self.classreader[self.index];
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let mut output = String::new();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:379:19
[INFO] [stdout]     |
[INFO] [stdout] 379 |     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:392:19
[INFO] [stdout]     |
[INFO] [stdout] 392 |     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:413:19
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:433:19
[INFO] [stdout]     |
[INFO] [stdout] 433 |     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:445:19
[INFO] [stdout]     |
[INFO] [stdout] 445 |     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:485:19
[INFO] [stdout]     |
[INFO] [stdout] 485 |     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/classpath/classfile.rs:139:18
[INFO] [stdout]     |
[INFO] [stdout] 139 |             for (i, v) in methodinfo.attribute_info.iter().enumerate() {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/vm/stack.rs:213:31
[INFO] [stdout]     |
[INFO] [stdout] 213 |     pub fn pop_int(&mut self, index: usize) {
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/vm/stack.rs:227:25
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 let m = unsafe { val as u32 };
[INFO] [stdout]     |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut res = String::new();
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut res = String::new();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let mut output = String::new();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:379:19
[INFO] [stdout]     |
[INFO] [stdout] 379 |     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:392:19
[INFO] [stdout]     |
[INFO] [stdout] 392 |     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0583`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:413:19
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:433:19
[INFO] [stdout]     |
[INFO] [stdout] 433 |     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:445:19
[INFO] [stdout]     |
[INFO] [stdout] 445 |     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/classpath/classfile_attribute.rs:485:19
[INFO] [stdout]     |
[INFO] [stdout] 485 |     fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `gwvm` (bin "gwvm") due to 1 previous error; 34 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/vm/stack.rs:213:31
[INFO] [stdout]     |
[INFO] [stdout] 213 |     pub fn pop_int(&mut self, index: usize) {
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/vm/stack.rs:227:25
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 let m = unsafe { val as u32 };
[INFO] [stdout]     |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: the type `Arc` does not implement `Copy`
[INFO] [stdout]    --> src/vm/stack.rs:321:37
[INFO] [stdout]     |
[INFO] [stdout] 318 |     let oo = Arc::new(Object {});
[INFO] [stdout]     |         -- this move could be avoided by cloning the original `Arc`, which is inexpensive
[INFO] [stdout] 319 |     assert_eq!(1, Arc::strong_count(&oo));
[INFO] [stdout] 320 |     b.push_ref(oo);
[INFO] [stdout]     |                -- value moved here
[INFO] [stdout] 321 |     assert_eq!(2, Arc::strong_count(&oo));
[INFO] [stdout]     |                                     ^^^ value borrowed here after move
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `Arc::clone`
[INFO] [stdout] note: consider changing this parameter type in method `push_ref` to borrow instead if owning the value isn't necessary
[INFO] [stdout]    --> src/vm/stack.rs:265:37
[INFO] [stdout]     |
[INFO] [stdout] 265 |     pub fn push_ref(&mut self, obj: Arc<Object>) {
[INFO] [stdout]     |            -------- in this method  ^^^^^^^^^^^ this parameter takes ownership of the value
[INFO] [stdout] help: clone the value to increment its reference count
[INFO] [stdout]     |
[INFO] [stdout] 320 |     b.push_ref(oo.clone());
[INFO] [stdout]     |                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0382, E0583.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `gwvm` (bin "gwvm" test) due to 2 previous errors; 35 warnings emitted
[INFO] [stdout] For more information about an error, try `rustc --explain E0382`.
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7c7fc834dd6c52bbfb28506f1b4d2b4f3275361e4aa51043e59151950c77e7c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7c7fc834dd6c52bbfb28506f1b4d2b4f3275361e4aa51043e59151950c77e7c1", kill_on_drop: false }`
[INFO] [stdout] 7c7fc834dd6c52bbfb28506f1b4d2b4f3275361e4aa51043e59151950c77e7c1
