[INFO] cloning repository https://github.com/pedrogao/plua
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pedrogao/plua" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpedrogao%2Fplua", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpedrogao%2Fplua'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 91302f7ca2ee76e379adf0cfd41dbcdd8eff10eb
[INFO] checking pedrogao/plua against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpedrogao%2Fplua" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pedrogao/plua
[INFO] finished tweaking git repo https://github.com/pedrogao/plua
[INFO] tweaked toml for git repo https://github.com/pedrogao/plua written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pedrogao/plua on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pedrogao/plua 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" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: package.author
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded enum-as-inner v0.6.0
[INFO] [stderr]   Downloaded peg v0.8.0
[INFO] [stderr]   Downloaded cranelift-module v0.81.1
[INFO] [stderr]   Downloaded cranelift v0.81.1
[INFO] [stderr]   Downloaded cranelift-bforest v0.81.1
[INFO] [stderr]   Downloaded cranelift-jit v0.81.1
[INFO] [stderr]   Downloaded cranelift-frontend v0.81.1
[INFO] [stderr]   Downloaded dynasm v1.2.1
[INFO] [stderr]   Downloaded cranelift-codegen-meta v0.81.1
[INFO] [stderr]   Downloaded target-lexicon v0.12.3
[INFO] [stderr]   Downloaded cranelift-native v0.81.1
[INFO] [stderr]   Downloaded cranelift-codegen-shared v0.81.1
[INFO] [stderr]   Downloaded cranelift-entity v0.81.1
[INFO] [stderr]   Downloaded regalloc v0.0.34
[INFO] [stderr]   Downloaded dynasmrt v1.2.1
[INFO] [stderr]   Downloaded peg-macros v0.8.0
[INFO] [stderr]   Downloaded peg-runtime v0.8.0
[INFO] [stderr]   Downloaded memmap2 v0.5.3
[INFO] [stderr]   Downloaded num_enum v0.5.6
[INFO] [stderr]   Downloaded num_enum_derive v0.5.6
[INFO] [stderr]   Downloaded cranelift-codegen v0.81.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dfa55052f433617f9bac2d771c19ba28708ae521b76eeff961829a0d56684c9a
[INFO] running `Command { std: "docker" "start" "-a" "dfa55052f433617f9bac2d771c19ba28708ae521b76eeff961829a0d56684c9a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dfa55052f433617f9bac2d771c19ba28708ae521b76eeff961829a0d56684c9a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dfa55052f433617f9bac2d771c19ba28708ae521b76eeff961829a0d56684c9a", kill_on_drop: false }`
[INFO] [stdout] dfa55052f433617f9bac2d771c19ba28708ae521b76eeff961829a0d56684c9a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] be44cf06b73f9e4802e3f7d270fb3e11f918b05c42548aa7ff6c41e842688449
[INFO] running `Command { std: "docker" "start" "-a" "be44cf06b73f9e4802e3f7d270fb3e11f918b05c42548aa7ff6c41e842688449", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: package.author
[INFO] [stderr]    Compiling cranelift-codegen-shared v0.81.1
[INFO] [stderr]    Compiling indexmap v1.8.0
[INFO] [stderr]    Compiling target-lexicon v0.12.3
[INFO] [stderr]     Checking cranelift-entity v0.81.1
[INFO] [stderr]    Compiling syn v1.0.86
[INFO] [stderr]     Checking regalloc v0.0.34
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling anyhow v1.0.55
[INFO] [stderr]    Compiling cranelift-codegen-meta v0.81.1
[INFO] [stderr]    Compiling substring v1.4.5
[INFO] [stderr]     Checking cranelift-bforest v0.81.1
[INFO] [stderr]    Compiling byteorder v1.4.3
[INFO] [stderr]    Compiling peg-runtime v0.8.0
[INFO] [stderr]     Checking region v2.2.0
[INFO] [stderr]     Checking memmap2 v0.5.3
[INFO] [stderr]    Compiling peg-macros v0.8.0
[INFO] [stderr]    Compiling enum-as-inner v0.6.0
[INFO] [stderr]     Checking gimli v0.26.1
[INFO] [stderr]     Checking peg v0.8.0
[INFO] [stderr]    Compiling cranelift-codegen v0.81.1
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]    Compiling dynasm v1.2.1
[INFO] [stderr]    Compiling structopt-derive v0.4.18
[INFO] [stderr]    Compiling thiserror v1.0.30
[INFO] [stderr]    Compiling proc-macro-crate v1.1.3
[INFO] [stderr]     Checking structopt v0.3.26
[INFO] [stderr]    Compiling num_enum_derive v0.5.6
[INFO] [stderr]     Checking num_enum v0.5.6
[INFO] [stderr]     Checking cranelift-frontend v0.81.1
[INFO] [stderr]     Checking cranelift-native v0.81.1
[INFO] [stderr]     Checking cranelift-module v0.81.1
[INFO] [stderr]     Checking cranelift-jit v0.81.1
[INFO] [stderr]     Checking cranelift v0.81.1
[INFO] [stderr]     Checking dynasmrt v1.2.1
[INFO] [stderr]     Checking plua v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/bf/compile.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 106 |     use super::*;
[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 variable: `name`
[INFO] [stdout]    --> src/vm.rs:113:25
[INFO] [stdout]     |
[INFO] [stdout] 113 |                     let name = constant.get(*i).unwrap();
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arg`
[INFO] [stdout]    --> src/vm.rs:133:29
[INFO] [stdout]     |
[INFO] [stdout] 133 |                         let arg = stack.pop().unwrap();
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_arg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arg_count`
[INFO] [stdout]    --> src/vm.rs:184:46
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn eval_func(&mut self, func: &Function, arg_count: usize) -> Value {
[INFO] [stdout]     |                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arg_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/vm.rs:240:25
[INFO] [stdout]     |
[INFO] [stdout] 240 |                     let name = constant.get(*i).unwrap();
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arg_count`
[INFO] [stdout]    --> src/vm.rs:253:32
[INFO] [stdout]     |
[INFO] [stdout] 253 |                 ByteCode::Call(arg_count) => {
[INFO] [stdout]     |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arg_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `next_func`
[INFO] [stdout]    --> src/vm.rs:264:25
[INFO] [stdout]     |
[INFO] [stdout] 264 |                     let next_func = self
[INFO] [stdout]     |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_next_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `module` is never read
[INFO] [stdout]    --> src/jit/mod.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | struct FunctionTranslator<'a> {
[INFO] [stdout]     |        ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 125 |     module: &'a mut JITModule,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `translate_icmp` is never used
[INFO] [stdout]    --> src/jit/mod.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl<'a> FunctionTranslator<'a> {
[INFO] [stdout]     | ------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 227 |     fn translate_icmp(&mut self, cmp: IntCC, lhs: &Expr, rhs: &Expr) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_frame` is never read
[INFO] [stdout]   --> src/vm.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct VM {
[INFO] [stdout]    |            -- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     current_frame: Option<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VM` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sp`, `ip`, and `locals` are never read
[INFO] [stdout]   --> src/vm.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Frame {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 17 |     sp: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 18 |     ip: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 19 |     locals: Vec<Value>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Frame` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `eval_func` and `current_frame` are never used
[INFO] [stdout]    --> src/vm.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl VM {
[INFO] [stdout]     | ------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 184 |     fn eval_func(&mut self, func: &Function, arg_count: usize) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     fn current_frame(&mut self) -> &mut Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/bf/vm.rs:105:53
[INFO] [stdout]     |
[INFO] [stdout] 105 |                     ; mov  rax, QWORD BfVM::getbyte as _
[INFO] [stdout]     |                                                     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 105 |                     ; mov  rax, QWORD BfVM::getbyte as *const () as _
[INFO] [stdout]     |                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/bf/vm.rs:115:53
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     ; mov  rax, QWORD BfVM::putbyte as _
[INFO] [stdout]     |                                                     ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     ; mov  rax, QWORD BfVM::putbyte as *const () as _
[INFO] [stdout]     |                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/bf/vm.rs:147:51
[INFO] [stdout]     |
[INFO] [stdout] 147 |             ; mov rax, QWORD BfVM::overflow_error as _
[INFO] [stdout]     |                                                   ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 147 |             ; mov rax, QWORD BfVM::overflow_error as *const () as _
[INFO] [stdout]     |                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> examples/stackvm.rs:414:59
[INFO] [stdout]     |
[INFO] [stdout] 414 | fn find_label<'a>(i: Pointer, s: &'a [&'a str]) -> Option<Label> {
[INFO] [stdout]     |                                   --   --                 ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                   |    |
[INFO] [stdout]     |                                   |    the lifetime is named here
[INFO] [stdout]     |                                   the lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 414 | fn find_label<'a>(i: Pointer, s: &'a [&'a str]) -> Option<Label<'a>> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> examples/dyn.rs:38:32
[INFO] [stdout]    |
[INFO] [stdout] 38 |         ; mov rax, QWORD print as _         // 将 print 函数地址放入 rax
[INFO] [stdout]    |                                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 38 |         ; mov rax, QWORD print as *const () as _         // 将 print 函数地址放入 rax
[INFO] [stdout]    |                                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/vm.rs:113:25
[INFO] [stdout]     |
[INFO] [stdout] 113 |                     let name = constant.get(*i).unwrap();
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arg`
[INFO] [stdout]    --> src/vm.rs:133:29
[INFO] [stdout]     |
[INFO] [stdout] 133 |                         let arg = stack.pop().unwrap();
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_arg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arg_count`
[INFO] [stdout]    --> src/vm.rs:184:46
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn eval_func(&mut self, func: &Function, arg_count: usize) -> Value {
[INFO] [stdout]     |                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arg_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/vm.rs:240:25
[INFO] [stdout]     |
[INFO] [stdout] 240 |                     let name = constant.get(*i).unwrap();
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arg_count`
[INFO] [stdout]    --> src/vm.rs:253:32
[INFO] [stdout]     |
[INFO] [stdout] 253 |                 ByteCode::Call(arg_count) => {
[INFO] [stdout]     |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arg_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `next_func`
[INFO] [stdout]    --> src/vm.rs:264:25
[INFO] [stdout]     |
[INFO] [stdout] 264 |                     let next_func = self
[INFO] [stdout]     |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_next_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `module` is never read
[INFO] [stdout]    --> src/jit/mod.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | struct FunctionTranslator<'a> {
[INFO] [stdout]     |        ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 125 |     module: &'a mut JITModule,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `translate_icmp` is never used
[INFO] [stdout]    --> src/jit/mod.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl<'a> FunctionTranslator<'a> {
[INFO] [stdout]     | ------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 227 |     fn translate_icmp(&mut self, cmp: IntCC, lhs: &Expr, rhs: &Expr) -> Result<Value, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_frame` is never read
[INFO] [stdout]   --> src/vm.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct VM {
[INFO] [stdout]    |            -- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     current_frame: Option<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VM` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sp`, `ip`, and `locals` are never read
[INFO] [stdout]   --> src/vm.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Frame {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 17 |     sp: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 18 |     ip: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 19 |     locals: Vec<Value>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Frame` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `eval_func` and `current_frame` are never used
[INFO] [stdout]    --> src/vm.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl VM {
[INFO] [stdout]     | ------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 184 |     fn eval_func(&mut self, func: &Function, arg_count: usize) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     fn current_frame(&mut self) -> &mut Frame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/bf/vm.rs:105:53
[INFO] [stdout]     |
[INFO] [stdout] 105 |                     ; mov  rax, QWORD BfVM::getbyte as _
[INFO] [stdout]     |                                                     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 105 |                     ; mov  rax, QWORD BfVM::getbyte as *const () as _
[INFO] [stdout]     |                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/bf/vm.rs:115:53
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     ; mov  rax, QWORD BfVM::putbyte as _
[INFO] [stdout]     |                                                     ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     ; mov  rax, QWORD BfVM::putbyte as *const () as _
[INFO] [stdout]     |                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> src/bf/vm.rs:147:51
[INFO] [stdout]     |
[INFO] [stdout] 147 |             ; mov rax, QWORD BfVM::overflow_error as _
[INFO] [stdout]     |                                                   ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 147 |             ; mov rax, QWORD BfVM::overflow_error as *const () as _
[INFO] [stdout]     |                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.57s
[INFO] running `Command { std: "docker" "inspect" "be44cf06b73f9e4802e3f7d270fb3e11f918b05c42548aa7ff6c41e842688449", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "be44cf06b73f9e4802e3f7d270fb3e11f918b05c42548aa7ff6c41e842688449", kill_on_drop: false }`
[INFO] [stdout] be44cf06b73f9e4802e3f7d270fb3e11f918b05c42548aa7ff6c41e842688449
