[INFO] cloning repository https://github.com/codillon/wasmfun [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/codillon/wasmfun" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcodillon%2Fwasmfun", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcodillon%2Fwasmfun'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 05b020b859f5e6d9294d0e4ef3a27c6ef6ee0b7d [INFO] linting codillon/wasmfun against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcodillon%2Fwasmfun" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/codillon/wasmfun [INFO] finished tweaking git repo https://github.com/codillon/wasmfun [INFO] tweaked toml for git repo https://github.com/codillon/wasmfun written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/codillon/wasmfun on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/codillon/wasmfun 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wasm-metadata v0.235.0 [INFO] [stderr] Downloaded topological-sort v0.2.2 [INFO] [stderr] Downloaded auditable-serde v0.8.0 [INFO] [stderr] Downloaded wit-encoder v0.235.0 [INFO] [stderr] Downloaded symbolic_expressions v5.0.3 [INFO] [stderr] Downloaded wasm-shrink v0.235.0 [INFO] [stderr] Downloaded wit-smith v0.235.0 [INFO] [stderr] Downloaded bytesize v2.0.1 [INFO] [stderr] Downloaded wasmprinter v0.235.0 [INFO] [stderr] Downloaded wasm-compose v0.235.0 [INFO] [stderr] Downloaded clap_complete v4.5.55 [INFO] [stderr] Downloaded wasm-smith v0.235.0 [INFO] [stderr] Downloaded im-rc v15.1.0 [INFO] [stderr] Downloaded egg v0.6.0 [INFO] [stderr] Downloaded wit-component v0.235.0 [INFO] [stderr] Downloaded wasm-tools v1.235.0 [INFO] [stderr] Downloaded wasm-mutate v0.235.0 [INFO] [stderr] Downloaded wit-parser v0.235.0 [INFO] [stderr] Downloaded spdx v0.10.9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] efe592c3f5979275224eeae6d83abf7eae1104e30118a114848cf2c6f60f60ce [INFO] running `Command { std: "docker" "start" "-a" "efe592c3f5979275224eeae6d83abf7eae1104e30118a114848cf2c6f60f60ce", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "efe592c3f5979275224eeae6d83abf7eae1104e30118a114848cf2c6f60f60ce", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "efe592c3f5979275224eeae6d83abf7eae1104e30118a114848cf2c6f60f60ce", kill_on_drop: false }` [INFO] [stdout] efe592c3f5979275224eeae6d83abf7eae1104e30118a114848cf2c6f60f60ce [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b640552a38f2871caedd0dcfa8d28cd1b41137172ff09daf1f080f76c50d40ca [INFO] running `Command { std: "docker" "start" "-a" "b640552a38f2871caedd0dcfa8d28cd1b41137172ff09daf1f080f76c50d40ca", kill_on_drop: false }` [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Compiling wasmparser v0.235.0 [INFO] [stderr] Compiling rustix v1.0.8 [INFO] [stderr] Compiling wasm-encoder v0.235.0 [INFO] [stderr] Checking leb128fmt v0.1.0 [INFO] [stderr] Checking fallible-iterator v0.3.0 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Checking unicode-width v0.2.1 [INFO] [stderr] Checking clap_lex v0.7.5 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Compiling serde_json v1.0.141 [INFO] [stderr] Checking bumpalo v3.19.0 [INFO] [stderr] Checking crc32fast v1.5.0 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling cc v1.2.30 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking unicode-xid v0.2.6 [INFO] [stderr] Checking id-arena v2.2.1 [INFO] [stderr] Checking topological-sort v0.2.2 [INFO] [stderr] Checking twox-hash v1.6.3 [INFO] [stderr] Compiling im-rc v15.1.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking bitmaps v2.1.0 [INFO] [stderr] Checking spdx v0.10.9 [INFO] [stderr] Checking instant v0.1.13 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Compiling cpp_demangle v0.4.4 [INFO] [stderr] Checking symbolic_expressions v5.0.3 [INFO] [stderr] Checking rand_xoshiro v0.6.0 [INFO] [stderr] Checking flate2 v1.1.2 [INFO] [stderr] Checking ruzstd v0.7.3 [INFO] [stderr] Checking diff v0.1.13 [INFO] [stderr] Checking unsafe-libyaml v0.2.11 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking yansi v1.0.1 [INFO] [stderr] Checking constant_time_eq v0.3.1 [INFO] [stderr] Checking fixedbitset v0.4.2 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking memmap2 v0.9.7 [INFO] [stderr] Checking egg v0.6.0 [INFO] [stderr] Checking jiff v0.2.15 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking rustc-demangle v0.1.26 [INFO] [stderr] Checking pretty_assertions v1.4.1 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking heck v0.4.1 [INFO] [stderr] Compiling wasm-tools v1.235.0 [INFO] [stderr] Checking comfy-table v7.1.4 [INFO] [stderr] Checking crossbeam-deque v0.8.6 [INFO] [stderr] Checking bytesize v2.0.1 [INFO] [stderr] Checking is_executable v1.0.4 [INFO] [stderr] Checking sized-chunks v0.6.5 [INFO] [stderr] Checking rayon-core v1.12.1 [INFO] [stderr] Compiling blake3 v1.8.2 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking env_filter v0.1.3 [INFO] [stderr] Checking terminal_size v0.4.2 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Checking env_logger v0.11.8 [INFO] [stderr] Checking clap_builder v4.5.41 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling clap_derive v4.5.41 [INFO] [stderr] Compiling derive_arbitrary v1.4.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Checking arbitrary v1.4.1 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking clap v4.5.41 [INFO] [stderr] Checking clap_complete v4.5.55 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking hashbrown v0.15.4 [INFO] [stderr] Checking flagset v0.4.7 [INFO] [stderr] Checking indexmap v2.10.0 [INFO] [stderr] Checking auditable-serde v0.8.0 [INFO] [stderr] Checking gimli v0.31.1 [INFO] [stderr] Checking petgraph v0.6.5 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking addr2line v0.24.2 [INFO] [stderr] Checking wasmprinter v0.235.0 [INFO] [stderr] Checking wast v235.0.0 [INFO] [stderr] Checking wasm-metadata v0.235.0 [INFO] [stderr] Checking wasm-mutate v0.235.0 [INFO] [stderr] Checking wasm-shrink v0.235.0 [INFO] [stderr] Checking wat v1.235.0 [INFO] [stderr] Checking wit-parser v0.235.0 [INFO] [stderr] Checking wasm-smith v0.235.0 [INFO] [stderr] Checking wasm-compose v0.235.0 [INFO] [stderr] Checking wit-component v0.235.0 [INFO] [stderr] Checking wit-encoder v0.235.0 [INFO] [stderr] Checking wit-smith v0.235.0 [INFO] [stderr] Checking pipeline v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/utils.rs:278:17 [INFO] [stdout] | [INFO] [stdout] 278 | let mut func_validator: wasmparser::FuncValidator = [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> src/utils.rs:277:53 [INFO] [stdout] | [INFO] [stdout] 277 | if let wasmparser::ValidPayload::Func(func, body) = validator.payload(&payload?)? { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `func_validator` [INFO] [stdout] --> src/utils.rs:278:17 [INFO] [stdout] | [INFO] [stdout] 278 | let mut func_validator: wasmparser::FuncValidator = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_func_validator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/utils.rs:281:18 [INFO] [stdout] | [INFO] [stdout] 281 | for (idx, func) in ops.iter().enumerate() {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `func` [INFO] [stdout] --> src/utils.rs:281:23 [INFO] [stdout] | [INFO] [stdout] 281 | for (idx, func) in ops.iter().enumerate() {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_func` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> src/utils.rs:296:53 [INFO] [stdout] | [INFO] [stdout] 296 | if let wasmparser::ValidPayload::Func(func, body) = validator.payload(&payload.unwrap()).unwrap() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> src/utils.rs:307:33 [INFO] [stdout] | [INFO] [stdout] 307 | ... let ty = e.to_string().trim_start_matches("type mismatch: expected ").split_once(' ').map(|(first, _)| first).unwrap_or(&e.to... [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `str_type_to_instr` is never used [INFO] [stdout] --> src/utils.rs:229:4 [INFO] [stdout] | [INFO] [stdout] 229 | fn str_type_to_instr(s: &str) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Editor` [INFO] [stdout] --> src/editor.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / pub fn new() -> Self { [INFO] [stdout] 13 | | let mut editor = Self { [INFO] [stdout] 14 | | next_id: 9, [INFO] [stdout] 15 | | lines: vec![ [INFO] [stdout] ... | [INFO] [stdout] 30 | | editor [INFO] [stdout] 31 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 11 + impl Default for Editor { [INFO] [stdout] 12 + fn default() -> Self { [INFO] [stdout] 13 + Self::new() [INFO] [stdout] 14 + } [INFO] [stdout] 15 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/editor.rs:108:28 [INFO] [stdout] | [INFO] [stdout] 108 | test(&self.text(), &self.module.ops().as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.module.ops().as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/utils.rs:278:17 [INFO] [stdout] | [INFO] [stdout] 278 | let mut func_validator: wasmparser::FuncValidator = [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> src/utils.rs:277:53 [INFO] [stdout] | [INFO] [stdout] 277 | if let wasmparser::ValidPayload::Func(func, body) = validator.payload(&payload?)? { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `func_validator` [INFO] [stdout] --> src/utils.rs:278:17 [INFO] [stdout] | [INFO] [stdout] 278 | let mut func_validator: wasmparser::FuncValidator = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_func_validator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/utils.rs:281:18 [INFO] [stdout] | [INFO] [stdout] 281 | for (idx, func) in ops.iter().enumerate() {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `func` [INFO] [stdout] --> src/utils.rs:281:23 [INFO] [stdout] | [INFO] [stdout] 281 | for (idx, func) in ops.iter().enumerate() {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_func` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:25:44 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn build(wasm_bin: Vec, lines: &Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 25 - pub fn build(wasm_bin: Vec, lines: &Vec) -> Result { [INFO] [stdout] 25 + pub fn build(wasm_bin: Vec, lines: &[EditLine]) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> src/utils.rs:296:53 [INFO] [stdout] | [INFO] [stdout] 296 | if let wasmparser::ValidPayload::Func(func, body) = validator.payload(&payload.unwrap()).unwrap() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ty` [INFO] [stdout] --> src/utils.rs:307:33 [INFO] [stdout] | [INFO] [stdout] 307 | ... let ty = e.to_string().trim_start_matches("type mismatch: expected ").split_once(' ').map(|(first, _)| first).unwrap_or(&e.to... [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils.rs:42:39 [INFO] [stdout] | [INFO] [stdout] 42 | debug_assert!(!(line_idx > lines.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(line_idx <= lines.len())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `str_type_to_instr` is never used [INFO] [stdout] --> src/utils.rs:229:4 [INFO] [stdout] | [INFO] [stdout] 229 | fn str_type_to_instr(s: &str) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Editor` [INFO] [stdout] --> src/editor.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / pub fn new() -> Self { [INFO] [stdout] 13 | | let mut editor = Self { [INFO] [stdout] 14 | | next_id: 9, [INFO] [stdout] 15 | | lines: vec![ [INFO] [stdout] ... | [INFO] [stdout] 30 | | editor [INFO] [stdout] 31 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 11 + impl Default for Editor { [INFO] [stdout] 12 + fn default() -> Self { [INFO] [stdout] 13 + Self::new() [INFO] [stdout] 14 + } [INFO] [stdout] 15 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/editor.rs:108:28 [INFO] [stdout] | [INFO] [stdout] 108 | test(&self.text(), &self.module.ops().as_ref().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.module.ops().as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:285:5 [INFO] [stdout] | [INFO] [stdout] 285 | return Ok(Vec::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 285 - return Ok(Vec::new()); [INFO] [stdout] 285 + Ok(Vec::new()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:270:18 [INFO] [stdout] | [INFO] [stdout] 270 | wasm_binary: &Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 270 - wasm_binary: &Vec, [INFO] [stdout] 270 + wasm_binary: &[u8], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/utils.rs:303:17 [INFO] [stdout] | [INFO] [stdout] 303 | / match result { [INFO] [stdout] 304 | | Err(e) => { [INFO] [stdout] 305 | | println!("Error validating operator: {e}"); [INFO] [stdout] 306 | | if e.to_string().starts_with("type mismatch:") { [INFO] [stdout] ... | [INFO] [stdout] 311 | | Ok(_) => (), [INFO] [stdout] 312 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 303 ~ if let Err(e) = result { [INFO] [stdout] 304 + println!("Error validating operator: {e}"); [INFO] [stdout] 305 + if e.to_string().starts_with("type mismatch:") { [INFO] [stdout] 306 + let ty = e.to_string().trim_start_matches("type mismatch: expected ").split_once(' ').map(|(first, _)| first).unwrap_or(&e.to_string()); [INFO] [stdout] 307 + } [INFO] [stdout] 308 + continue; [INFO] [stdout] 309 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:25:44 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn build(wasm_bin: Vec, lines: &Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 25 - pub fn build(wasm_bin: Vec, lines: &Vec) -> Result { [INFO] [stdout] 25 + pub fn build(wasm_bin: Vec, lines: &[EditLine]) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/utils.rs:42:39 [INFO] [stdout] | [INFO] [stdout] 42 | debug_assert!(!(line_idx > lines.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(line_idx <= lines.len())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/utils.rs:404:9 [INFO] [stdout] | [INFO] [stdout] 404 | / let mut edit_lines = Vec::new(); [INFO] [stdout] 405 | | edit_lines.push(EditLine::new(0, String::from("(func"))); [INFO] [stdout] 406 | | edit_lines.push(EditLine::new(1, String::from("i32.const 2"))); [INFO] [stdout] 407 | | edit_lines.push(EditLine::new(2, String::from("i32.const 5"))); [INFO] [stdout] ... | [INFO] [stdout] 411 | | edit_lines.push(EditLine::new(6, String::from(""))); [INFO] [stdout] 412 | | edit_lines.push(EditLine::new(7, String::from(")"))); [INFO] [stdout] | |_____________________________________________________________^ help: consider using the `vec![]` macro: `let mut edit_lines = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/utils.rs:58:16 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn ops(&self) -> &Ops { [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] | | || [INFO] [stdout] | | |the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided 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] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 58 | pub fn ops(&self) -> &Ops<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/utils.rs:285:5 [INFO] [stdout] | [INFO] [stdout] 285 | return Ok(Vec::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 285 - return Ok(Vec::new()); [INFO] [stdout] 285 + Ok(Vec::new()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:270:18 [INFO] [stdout] | [INFO] [stdout] 270 | wasm_binary: &Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 270 - wasm_binary: &Vec, [INFO] [stdout] 270 + wasm_binary: &[u8], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/utils.rs:303:17 [INFO] [stdout] | [INFO] [stdout] 303 | / match result { [INFO] [stdout] 304 | | Err(e) => { [INFO] [stdout] 305 | | println!("Error validating operator: {e}"); [INFO] [stdout] 306 | | if e.to_string().starts_with("type mismatch:") { [INFO] [stdout] ... | [INFO] [stdout] 311 | | Ok(_) => (), [INFO] [stdout] 312 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 303 ~ if let Err(e) = result { [INFO] [stdout] 304 + println!("Error validating operator: {e}"); [INFO] [stdout] 305 + if e.to_string().starts_with("type mismatch:") { [INFO] [stdout] 306 + let ty = e.to_string().trim_start_matches("type mismatch: expected ").split_once(' ').map(|(first, _)| first).unwrap_or(&e.to_string()); [INFO] [stdout] 307 + } [INFO] [stdout] 308 + continue; [INFO] [stdout] 309 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/utils.rs:58:16 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn ops(&self) -> &Ops { [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] | | || [INFO] [stdout] | | |the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided 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] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 58 | pub fn ops(&self) -> &Ops<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pipeline::utils::*` [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use pipeline::utils::*; [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: `pipeline::utils::*` [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use pipeline::utils::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.73s [INFO] running `Command { std: "docker" "inspect" "b640552a38f2871caedd0dcfa8d28cd1b41137172ff09daf1f080f76c50d40ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b640552a38f2871caedd0dcfa8d28cd1b41137172ff09daf1f080f76c50d40ca", kill_on_drop: false }` [INFO] [stdout] b640552a38f2871caedd0dcfa8d28cd1b41137172ff09daf1f080f76c50d40ca