[INFO] cloning repository https://github.com/adwhit/wasmy
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/adwhit/wasmy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fadwhit%2Fwasmy", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fadwhit%2Fwasmy'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 492c5cf439d3590c35d74a4914ab7968c19b22c9
[INFO] checking adwhit/wasmy against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fadwhit%2Fwasmy" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/adwhit/wasmy
[INFO] finished tweaking git repo https://github.com/adwhit/wasmy
[INFO] tweaked toml for git repo https://github.com/adwhit/wasmy written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/adwhit/wasmy on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/adwhit/wasmy 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded custom_debug v0.5.0
[INFO] [stderr]   Downloaded brownstone v3.0.0
[INFO] [stderr]   Downloaded custom_debug_derive v0.5.0
[INFO] [stderr]   Downloaded indent_write v2.2.0
[INFO] [stderr]   Downloaded joinery v2.1.0
[INFO] [stderr]   Downloaded nom-supreme v0.8.0
[INFO] [stderr]   Downloaded clap v4.1.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c52a94ec6b50080f95e0f5913dd425673a7640d7388dade1f485e9b661348e91
[INFO] running `Command { std: "docker" "start" "-a" "c52a94ec6b50080f95e0f5913dd425673a7640d7388dade1f485e9b661348e91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c52a94ec6b50080f95e0f5913dd425673a7640d7388dade1f485e9b661348e91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c52a94ec6b50080f95e0f5913dd425673a7640d7388dade1f485e9b661348e91", kill_on_drop: false }`
[INFO] [stdout] c52a94ec6b50080f95e0f5913dd425673a7640d7388dade1f485e9b661348e91
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] dfc6262eeb9573b53ceef4764736426adfa182f2ea15d4609d0aabcf06a8b565
[INFO] running `Command { std: "docker" "start" "-a" "dfc6262eeb9573b53ceef4764736426adfa182f2ea15d4609d0aabcf06a8b565", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling proc-macro2 v1.0.51
[INFO] [stderr]    Compiling quote v1.0.23
[INFO] [stderr]    Compiling unicode-ident v1.0.6
[INFO] [stderr]    Compiling syn v1.0.107
[INFO] [stderr]    Compiling libc v0.2.139
[INFO] [stderr]    Compiling io-lifetimes v1.0.5
[INFO] [stderr]    Compiling rustix v0.36.8
[INFO] [stderr]    Compiling anyhow v1.0.69
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]     Checking os_str_bytes v6.4.1
[INFO] [stderr]     Checking joinery v2.1.0
[INFO] [stderr]     Checking indent_write v2.2.0
[INFO] [stderr]     Checking brownstone v3.0.0
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking clap_lex v0.3.1
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking nom-supreme v0.8.0
[INFO] [stderr]     Checking is-terminal v0.4.3
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling clap_derive v4.1.0
[INFO] [stderr]    Compiling custom_debug_derive v0.5.0
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking custom_debug v0.5.0
[INFO] [stderr]     Checking clap v4.1.6
[INFO] [stderr]     Checking iii v0.1.0 (/opt/rustwide/workdir/iii)
[INFO] [stdout] warning: unused import: `MemOp`
[INFO] [stdout]  --> iii/src/interpreter.rs:3:38
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{ExportType, Instruction, MemOp, Sign, Size};
[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: `MemOp`
[INFO] [stdout]  --> iii/src/interpreter.rs:3:38
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{ExportType, Instruction, MemOp, Sign, Size};
[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: `func_sig`
[INFO] [stdout]  --> iii/src/validator.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |         let Some(func_sig) = binary.types.get(*func_ty_ix as usize) else {
[INFO] [stdout]   |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_func_sig`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `binary`
[INFO] [stdout]   --> iii/src/validator.rs:69:59
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn symbolic_exec(code: &[Instruction], state: &mut State, binary: &Binary) -> Result<()> {
[INFO] [stdout]    |                                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_binary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_ast` is never used
[INFO] [stdout]    --> iii/src/main.rs:280:4
[INFO] [stdout]     |
[INFO] [stdout] 280 | fn print_ast(code: &[Instruction]) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_indent` is never used
[INFO] [stdout]    --> iii/src/main.rs:326:4
[INFO] [stdout]     |
[INFO] [stdout] 326 | fn print_indent(s: &str, indent: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `u` is never used
[INFO] [stdout]    --> iii/src/interpreter.rs:304:4
[INFO] [stdout]     |
[INFO] [stdout] 304 | fn u(v: i32) -> u32 {
[INFO] [stdout]     |    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `data` are never read
[INFO] [stdout]    --> iii/src/parser.rs:309:9
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub struct AnonSection {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 309 |     pub id: SectionId,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 310 |     pub data: Vec<u8>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AnonSection` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `globals` is never read
[INFO] [stdout]   --> iii/src/validator.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct State {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     globals: Vec<Size>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `State` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/main.rs:114:17
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                 ^------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `FromPrimitive` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_ExportType`
[INFO] [stdout] 115 | pub enum ExportType {
[INFO] [stdout]     |          ---------- `ExportType` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/main.rs:114:44
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                                            ^----------------------
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            `ToPrimitive` is not local
[INFO] [stdout]     |                                            move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_ExportType`
[INFO] [stdout] 115 | pub enum ExportType {
[INFO] [stdout]     |          ---------- `ExportType` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/main.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                 ^------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `FromPrimitive` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_Value`
[INFO] [stdout] 136 | pub enum Value {
[INFO] [stdout]     |          ----- `Value` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/main.rs:135:44
[INFO] [stdout]     |
[INFO] [stdout] 135 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                                            ^----------------------
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            `ToPrimitive` is not local
[INFO] [stdout]     |                                            move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_Value`
[INFO] [stdout] 136 | pub enum Value {
[INFO] [stdout]     |          ----- `Value` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/main.rs:143:17
[INFO] [stdout]     |
[INFO] [stdout] 143 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                 ^------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `FromPrimitive` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_Mutability`
[INFO] [stdout] 144 | pub enum Mutability {
[INFO] [stdout]     |          ---------- `Mutability` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/main.rs:143:44
[INFO] [stdout]     |
[INFO] [stdout] 143 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                                            ^----------------------
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            `ToPrimitive` is not local
[INFO] [stdout]     |                                            move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_Mutability`
[INFO] [stdout] 144 | pub enum Mutability {
[INFO] [stdout]     |          ---------- `Mutability` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> iii/src/interpreter.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[derive(custom_debug::Debug)]
[INFO] [stdout]    |          ^------------------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Debug` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_core_fmt_Debug_FOR_State`
[INFO] [stdout] 74 | struct State {
[INFO] [stdout]    |        ----- `State` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `custom_debug::Debug` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `custom_debug::Debug` may come from an old version of the `custom_debug_derive` crate, try updating your dependency with `cargo update -p custom_debug_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `custom_debug::Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> iii/src/interpreter.rs:240:51
[INFO] [stdout]     |
[INFO] [stdout] 240 |                     let bytes: [u8; 4] = unsafe { std::mem::transmute(val) };
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 240 -                     let bytes: [u8; 4] = unsafe { std::mem::transmute(val) };
[INFO] [stdout] 240 +                     let bytes: [u8; 4] = unsafe { i32::to_ne_bytes(val) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> iii/src/interpreter.rs:248:45
[INFO] [stdout]     |
[INFO] [stdout] 248 |                     let val: i32 = unsafe { std::mem::transmute(arr) };
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 248 -                     let val: i32 = unsafe { std::mem::transmute(arr) };
[INFO] [stdout] 248 +                     let val: i32 = unsafe { i32::from_ne_bytes(arr) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> iii/src/interpreter.rs:305:14
[INFO] [stdout]     |
[INFO] [stdout] 305 |     unsafe { std::mem::transmute(v) }
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 305 -     unsafe { std::mem::transmute(v) }
[INFO] [stdout] 305 +     unsafe { i32::cast_unsigned(v) }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> iii/src/parser.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Debug, Clone, Copy, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]    |                              ^------------------------
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              `FromPrimitive` is not local
[INFO] [stdout]    |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_OpCode`
[INFO] [stdout] 25 | pub enum OpCode {
[INFO] [stdout]    |          ------ `OpCode` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> iii/src/parser.rs:24:57
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Debug, Clone, Copy, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]    |                                                         ^----------------------
[INFO] [stdout]    |                                                         |
[INFO] [stdout]    |                                                         `ToPrimitive` is not local
[INFO] [stdout]    |                                                         move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_OpCode`
[INFO] [stdout] 25 | pub enum OpCode {
[INFO] [stdout]    |          ------ `OpCode` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `num_derive::ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `num_derive::ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `num_derive::ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:140:18
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn opcode(input: &[u8]) -> Result<OpCode> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided 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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn opcode(input: &[u8]) -> Result<'_, OpCode> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:144:19
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn ast(mut input: &[u8]) -> Result<Vec<Instruction>> {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn ast(mut input: &[u8]) -> Result<'_, Vec<Instruction>> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:158:23
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn instruction(input: &[u8]) -> Result<Instruction> {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn instruction(input: &[u8]) -> Result<'_, Instruction> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:313:18
[INFO] [stdout]     |
[INFO] [stdout] 313 | fn limits(input: &[u8]) -> Result<Limits> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 313 | fn limits(input: &[u8]) -> Result<'_, Limits> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:334:22
[INFO] [stdout]     |
[INFO] [stdout] 334 | fn mutability(input: &[u8]) -> Result<Mutability> {
[INFO] [stdout]     |                      ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 334 | fn mutability(input: &[u8]) -> Result<'_, Mutability> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:338:18
[INFO] [stdout]     |
[INFO] [stdout] 338 | fn global(input: &[u8]) -> Result<Global> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 338 | fn global(input: &[u8]) -> Result<'_, Global> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:343:17
[INFO] [stdout]     |
[INFO] [stdout] 343 | fn value(input: &[u8]) -> Result<Value> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 343 | fn value(input: &[u8]) -> Result<'_, Value> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:347:23
[INFO] [stdout]     |
[INFO] [stdout] 347 | fn export_type(input: &[u8]) -> Result<ExportType> {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 347 | fn export_type(input: &[u8]) -> Result<'_, ExportType> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:351:18
[INFO] [stdout]     |
[INFO] [stdout] 351 | fn export(input: &[u8]) -> Result<Export> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 351 | fn export(input: &[u8]) -> Result<'_, Export> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:363:16
[INFO] [stdout]     |
[INFO] [stdout] 363 | fn code(input: &[u8]) -> Result<Code> {
[INFO] [stdout]     |                ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 363 | fn code(input: &[u8]) -> Result<'_, Code> {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/parser.rs:384:17
[INFO] [stdout]     |
[INFO] [stdout] 384 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                 ^------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `FromPrimitive` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_SectionId`
[INFO] [stdout] 385 | pub enum SectionId {
[INFO] [stdout]     |          --------- `SectionId` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/parser.rs:384:44
[INFO] [stdout]     |
[INFO] [stdout] 384 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                                            ^----------------------
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            `ToPrimitive` is not local
[INFO] [stdout]     |                                            move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_SectionId`
[INFO] [stdout] 385 | pub enum SectionId {
[INFO] [stdout]     |          --------- `SectionId` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:400:20
[INFO] [stdout]     |
[INFO] [stdout] 400 | fn func_sig(input: &[u8]) -> Result<FuncSig> {
[INFO] [stdout]     |                    ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 400 | fn func_sig(input: &[u8]) -> Result<'_, FuncSig> {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:409:16
[INFO] [stdout]     |
[INFO] [stdout] 409 | fn data(input: &[u8]) -> Result<Data> {
[INFO] [stdout]     |                ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 409 | fn data(input: &[u8]) -> Result<'_, Data> {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:425:18
[INFO] [stdout]     |
[INFO] [stdout] 425 | fn leb128(input: &[u8]) -> Result<u64> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 425 | fn leb128(input: &[u8]) -> Result<'_, u64> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:435:22
[INFO] [stdout]     |
[INFO] [stdout] 435 | fn leb128_u32(input: &[u8]) -> Result<u32> {
[INFO] [stdout]     |                      ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 435 | fn leb128_u32(input: &[u8]) -> Result<'_, u32> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:445:26
[INFO] [stdout]     |
[INFO] [stdout] 445 | fn leb128_i32(mut input: &[u8]) -> Result<i32> {
[INFO] [stdout]     |                          ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 445 | fn leb128_i32(mut input: &[u8]) -> Result<'_, i32> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> iii/src/parser.rs:462:25
[INFO] [stdout]     |
[INFO] [stdout] 462 |     Ok((input, unsafe { std::mem::transmute(result) }))
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 462 -     Ok((input, unsafe { std::mem::transmute(result) }))
[INFO] [stdout] 462 +     Ok((input, unsafe { u32::cast_signed(result) }))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:465:26
[INFO] [stdout]     |
[INFO] [stdout] 465 | fn leb128_i64(mut input: &[u8]) -> Result<i64> {
[INFO] [stdout]     |                          ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 465 | fn leb128_i64(mut input: &[u8]) -> Result<'_, i64> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> iii/src/parser.rs:482:25
[INFO] [stdout]     |
[INFO] [stdout] 482 |     Ok((input, unsafe { std::mem::transmute(result) }))
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 482 -     Ok((input, unsafe { std::mem::transmute(result) }))
[INFO] [stdout] 482 +     Ok((input, unsafe { u64::cast_signed(result) }))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:485:21
[INFO] [stdout]     |
[INFO] [stdout] 485 | fn str_slice(input: &[u8]) -> Result<&str> {
[INFO] [stdout]     |                     ^^^^^     ^^^^^^^^^^^^
[INFO] [stdout]     |                     |         |      |
[INFO] [stdout]     |                     |         |      the same lifetime is elided here
[INFO] [stdout]     |                     |         the same lifetime is hidden here
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 485 | fn str_slice(input: &[u8]) -> Result<'_, &str> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:489:25
[INFO] [stdout]     |
[INFO] [stdout] 489 | fn function_sigs(input: &[u8]) -> Result<Vec<FuncSig>> {
[INFO] [stdout]     |                         ^^^^^     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 489 | fn function_sigs(input: &[u8]) -> Result<'_, Vec<FuncSig>> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:493:28
[INFO] [stdout]     |
[INFO] [stdout] 493 | fn function_indices(input: &[u8]) -> Result<Vec<u32>> {
[INFO] [stdout]     |                            ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 493 | fn function_indices(input: &[u8]) -> Result<'_, Vec<u32>> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:497:18
[INFO] [stdout]     |
[INFO] [stdout] 497 | fn memory(input: &[u8]) -> Result<Vec<Limits>> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 497 | fn memory(input: &[u8]) -> Result<'_, Vec<Limits>> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:501:19
[INFO] [stdout]     |
[INFO] [stdout] 501 | fn globals(input: &[u8]) -> Result<Vec<Global>> {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 501 | fn globals(input: &[u8]) -> Result<'_, Vec<Global>> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:505:19
[INFO] [stdout]     |
[INFO] [stdout] 505 | fn namemap(input: &[u8]) -> Result<Vec<(u32, String)>> {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 505 | fn namemap(input: &[u8]) -> Result<'_, Vec<(u32, String)>> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 513 | fn names(input: &[u8]) -> Result<Names> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 513 | fn names(input: &[u8]) -> Result<'_, Names> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:530:19
[INFO] [stdout]     |
[INFO] [stdout] 530 | fn section(input: &[u8]) -> Result<Section> {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 530 | fn section(input: &[u8]) -> Result<'_, Section> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:592:18
[INFO] [stdout]     |
[INFO] [stdout] 592 | fn binary(input: &[u8]) -> Result<Binary> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 592 | fn binary(input: &[u8]) -> Result<'_, Binary> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func_sig`
[INFO] [stdout]  --> iii/src/validator.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |         let Some(func_sig) = binary.types.get(*func_ty_ix as usize) else {
[INFO] [stdout]   |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_func_sig`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `binary`
[INFO] [stdout]   --> iii/src/validator.rs:69:59
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn symbolic_exec(code: &[Instruction], state: &mut State, binary: &Binary) -> Result<()> {
[INFO] [stdout]    |                                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_binary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_ast` is never used
[INFO] [stdout]    --> iii/src/main.rs:280:4
[INFO] [stdout]     |
[INFO] [stdout] 280 | fn print_ast(code: &[Instruction]) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_indent` is never used
[INFO] [stdout]    --> iii/src/main.rs:326:4
[INFO] [stdout]     |
[INFO] [stdout] 326 | fn print_indent(s: &str, indent: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `u` is never used
[INFO] [stdout]    --> iii/src/interpreter.rs:304:4
[INFO] [stdout]     |
[INFO] [stdout] 304 | fn u(v: i32) -> u32 {
[INFO] [stdout]     |    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `data` are never read
[INFO] [stdout]    --> iii/src/parser.rs:309:9
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub struct AnonSection {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 309 |     pub id: SectionId,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 310 |     pub data: Vec<u8>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AnonSection` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `globals` is never read
[INFO] [stdout]   --> iii/src/validator.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct State {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     globals: Vec<Size>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `State` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/main.rs:114:17
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                 ^------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `FromPrimitive` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_ExportType`
[INFO] [stdout] 115 | pub enum ExportType {
[INFO] [stdout]     |          ---------- `ExportType` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/main.rs:114:44
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                                            ^----------------------
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            `ToPrimitive` is not local
[INFO] [stdout]     |                                            move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_ExportType`
[INFO] [stdout] 115 | pub enum ExportType {
[INFO] [stdout]     |          ---------- `ExportType` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/main.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                 ^------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `FromPrimitive` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_Value`
[INFO] [stdout] 136 | pub enum Value {
[INFO] [stdout]     |          ----- `Value` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/main.rs:135:44
[INFO] [stdout]     |
[INFO] [stdout] 135 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                                            ^----------------------
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            `ToPrimitive` is not local
[INFO] [stdout]     |                                            move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_Value`
[INFO] [stdout] 136 | pub enum Value {
[INFO] [stdout]     |          ----- `Value` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/main.rs:143:17
[INFO] [stdout]     |
[INFO] [stdout] 143 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                 ^------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `FromPrimitive` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_Mutability`
[INFO] [stdout] 144 | pub enum Mutability {
[INFO] [stdout]     |          ---------- `Mutability` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/main.rs:143:44
[INFO] [stdout]     |
[INFO] [stdout] 143 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                                            ^----------------------
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            `ToPrimitive` is not local
[INFO] [stdout]     |                                            move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_Mutability`
[INFO] [stdout] 144 | pub enum Mutability {
[INFO] [stdout]     |          ---------- `Mutability` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> iii/src/interpreter.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[derive(custom_debug::Debug)]
[INFO] [stdout]    |          ^------------------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Debug` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_core_fmt_Debug_FOR_State`
[INFO] [stdout] 74 | struct State {
[INFO] [stdout]    |        ----- `State` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `custom_debug::Debug` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `custom_debug::Debug` may come from an old version of the `custom_debug_derive` crate, try updating your dependency with `cargo update -p custom_debug_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `custom_debug::Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> iii/src/interpreter.rs:240:51
[INFO] [stdout]     |
[INFO] [stdout] 240 |                     let bytes: [u8; 4] = unsafe { std::mem::transmute(val) };
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 240 -                     let bytes: [u8; 4] = unsafe { std::mem::transmute(val) };
[INFO] [stdout] 240 +                     let bytes: [u8; 4] = unsafe { i32::to_ne_bytes(val) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> iii/src/interpreter.rs:248:45
[INFO] [stdout]     |
[INFO] [stdout] 248 |                     let val: i32 = unsafe { std::mem::transmute(arr) };
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 248 -                     let val: i32 = unsafe { std::mem::transmute(arr) };
[INFO] [stdout] 248 +                     let val: i32 = unsafe { i32::from_ne_bytes(arr) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> iii/src/interpreter.rs:305:14
[INFO] [stdout]     |
[INFO] [stdout] 305 |     unsafe { std::mem::transmute(v) }
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 305 -     unsafe { std::mem::transmute(v) }
[INFO] [stdout] 305 +     unsafe { i32::cast_unsigned(v) }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> iii/src/parser.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Debug, Clone, Copy, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]    |                              ^------------------------
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              `FromPrimitive` is not local
[INFO] [stdout]    |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_OpCode`
[INFO] [stdout] 25 | pub enum OpCode {
[INFO] [stdout]    |          ------ `OpCode` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> iii/src/parser.rs:24:57
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(Debug, Clone, Copy, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]    |                                                         ^----------------------
[INFO] [stdout]    |                                                         |
[INFO] [stdout]    |                                                         `ToPrimitive` is not local
[INFO] [stdout]    |                                                         move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_OpCode`
[INFO] [stdout] 25 | pub enum OpCode {
[INFO] [stdout]    |          ------ `OpCode` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `num_derive::ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `num_derive::ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `num_derive::ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:140:18
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn opcode(input: &[u8]) -> Result<OpCode> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided 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: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn opcode(input: &[u8]) -> Result<'_, OpCode> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:144:19
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn ast(mut input: &[u8]) -> Result<Vec<Instruction>> {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn ast(mut input: &[u8]) -> Result<'_, Vec<Instruction>> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:158:23
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn instruction(input: &[u8]) -> Result<Instruction> {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn instruction(input: &[u8]) -> Result<'_, Instruction> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:313:18
[INFO] [stdout]     |
[INFO] [stdout] 313 | fn limits(input: &[u8]) -> Result<Limits> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 313 | fn limits(input: &[u8]) -> Result<'_, Limits> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:334:22
[INFO] [stdout]     |
[INFO] [stdout] 334 | fn mutability(input: &[u8]) -> Result<Mutability> {
[INFO] [stdout]     |                      ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 334 | fn mutability(input: &[u8]) -> Result<'_, Mutability> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:338:18
[INFO] [stdout]     |
[INFO] [stdout] 338 | fn global(input: &[u8]) -> Result<Global> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 338 | fn global(input: &[u8]) -> Result<'_, Global> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:343:17
[INFO] [stdout]     |
[INFO] [stdout] 343 | fn value(input: &[u8]) -> Result<Value> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 343 | fn value(input: &[u8]) -> Result<'_, Value> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:347:23
[INFO] [stdout]     |
[INFO] [stdout] 347 | fn export_type(input: &[u8]) -> Result<ExportType> {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 347 | fn export_type(input: &[u8]) -> Result<'_, ExportType> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:351:18
[INFO] [stdout]     |
[INFO] [stdout] 351 | fn export(input: &[u8]) -> Result<Export> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 351 | fn export(input: &[u8]) -> Result<'_, Export> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:363:16
[INFO] [stdout]     |
[INFO] [stdout] 363 | fn code(input: &[u8]) -> Result<Code> {
[INFO] [stdout]     |                ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 363 | fn code(input: &[u8]) -> Result<'_, Code> {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/parser.rs:384:17
[INFO] [stdout]     |
[INFO] [stdout] 384 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                 ^------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `FromPrimitive` is not local
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_SectionId`
[INFO] [stdout] 385 | pub enum SectionId {
[INFO] [stdout]     |          --------- `SectionId` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> iii/src/parser.rs:384:44
[INFO] [stdout]     |
[INFO] [stdout] 384 | #[derive(Debug, num_derive::FromPrimitive, num_derive::ToPrimitive)]
[INFO] [stdout]     |                                            ^----------------------
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            `ToPrimitive` is not local
[INFO] [stdout]     |                                            move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_SectionId`
[INFO] [stdout] 385 | pub enum SectionId {
[INFO] [stdout]     |          --------- `SectionId` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:400:20
[INFO] [stdout]     |
[INFO] [stdout] 400 | fn func_sig(input: &[u8]) -> Result<FuncSig> {
[INFO] [stdout]     |                    ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 400 | fn func_sig(input: &[u8]) -> Result<'_, FuncSig> {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:409:16
[INFO] [stdout]     |
[INFO] [stdout] 409 | fn data(input: &[u8]) -> Result<Data> {
[INFO] [stdout]     |                ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 409 | fn data(input: &[u8]) -> Result<'_, Data> {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:425:18
[INFO] [stdout]     |
[INFO] [stdout] 425 | fn leb128(input: &[u8]) -> Result<u64> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 425 | fn leb128(input: &[u8]) -> Result<'_, u64> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:435:22
[INFO] [stdout]     |
[INFO] [stdout] 435 | fn leb128_u32(input: &[u8]) -> Result<u32> {
[INFO] [stdout]     |                      ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 435 | fn leb128_u32(input: &[u8]) -> Result<'_, u32> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:445:26
[INFO] [stdout]     |
[INFO] [stdout] 445 | fn leb128_i32(mut input: &[u8]) -> Result<i32> {
[INFO] [stdout]     |                          ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 445 | fn leb128_i32(mut input: &[u8]) -> Result<'_, i32> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> iii/src/parser.rs:462:25
[INFO] [stdout]     |
[INFO] [stdout] 462 |     Ok((input, unsafe { std::mem::transmute(result) }))
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 462 -     Ok((input, unsafe { std::mem::transmute(result) }))
[INFO] [stdout] 462 +     Ok((input, unsafe { u32::cast_signed(result) }))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:465:26
[INFO] [stdout]     |
[INFO] [stdout] 465 | fn leb128_i64(mut input: &[u8]) -> Result<i64> {
[INFO] [stdout]     |                          ^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 465 | fn leb128_i64(mut input: &[u8]) -> Result<'_, i64> {
[INFO] [stdout]     |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> iii/src/parser.rs:482:25
[INFO] [stdout]     |
[INFO] [stdout] 482 |     Ok((input, unsafe { std::mem::transmute(result) }))
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 482 -     Ok((input, unsafe { std::mem::transmute(result) }))
[INFO] [stdout] 482 +     Ok((input, unsafe { u64::cast_signed(result) }))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:485:21
[INFO] [stdout]     |
[INFO] [stdout] 485 | fn str_slice(input: &[u8]) -> Result<&str> {
[INFO] [stdout]     |                     ^^^^^     ^^^^^^^^^^^^
[INFO] [stdout]     |                     |         |      |
[INFO] [stdout]     |                     |         |      the same lifetime is elided here
[INFO] [stdout]     |                     |         the same lifetime is hidden here
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 485 | fn str_slice(input: &[u8]) -> Result<'_, &str> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:489:25
[INFO] [stdout]     |
[INFO] [stdout] 489 | fn function_sigs(input: &[u8]) -> Result<Vec<FuncSig>> {
[INFO] [stdout]     |                         ^^^^^     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 489 | fn function_sigs(input: &[u8]) -> Result<'_, Vec<FuncSig>> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:493:28
[INFO] [stdout]     |
[INFO] [stdout] 493 | fn function_indices(input: &[u8]) -> Result<Vec<u32>> {
[INFO] [stdout]     |                            ^^^^^     ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 493 | fn function_indices(input: &[u8]) -> Result<'_, Vec<u32>> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:497:18
[INFO] [stdout]     |
[INFO] [stdout] 497 | fn memory(input: &[u8]) -> Result<Vec<Limits>> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 497 | fn memory(input: &[u8]) -> Result<'_, Vec<Limits>> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:501:19
[INFO] [stdout]     |
[INFO] [stdout] 501 | fn globals(input: &[u8]) -> Result<Vec<Global>> {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 501 | fn globals(input: &[u8]) -> Result<'_, Vec<Global>> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:505:19
[INFO] [stdout]     |
[INFO] [stdout] 505 | fn namemap(input: &[u8]) -> Result<Vec<(u32, String)>> {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 505 | fn namemap(input: &[u8]) -> Result<'_, Vec<(u32, String)>> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:513:17
[INFO] [stdout]     |
[INFO] [stdout] 513 | fn names(input: &[u8]) -> Result<Names> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 513 | fn names(input: &[u8]) -> Result<'_, Names> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:530:19
[INFO] [stdout]     |
[INFO] [stdout] 530 | fn section(input: &[u8]) -> Result<Section> {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 530 | fn section(input: &[u8]) -> Result<'_, Section> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> iii/src/parser.rs:592:18
[INFO] [stdout]     |
[INFO] [stdout] 592 | fn binary(input: &[u8]) -> Result<Binary> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 592 | fn binary(input: &[u8]) -> Result<'_, Binary> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.65s
[INFO] running `Command { std: "docker" "inspect" "dfc6262eeb9573b53ceef4764736426adfa182f2ea15d4609d0aabcf06a8b565", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dfc6262eeb9573b53ceef4764736426adfa182f2ea15d4609d0aabcf06a8b565", kill_on_drop: false }`
[INFO] [stdout] dfc6262eeb9573b53ceef4764736426adfa182f2ea15d4609d0aabcf06a8b565
