[INFO] cloning repository https://github.com/levish0/svelte-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/levish0/svelte-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flevish0%2Fsvelte-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flevish0%2Fsvelte-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 46017e10022d128d50bd6d67cf685824e33e3002 [INFO] linting levish0/svelte-rs against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flevish0%2Fsvelte-rs" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-7-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/levish0/svelte-rs [INFO] finished tweaking git repo https://github.com/levish0/svelte-rs [INFO] tweaked toml for git repo https://github.com/levish0/svelte-rs written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/levish0/svelte-rs 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/levish0/svelte-rs 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 oxc_estree v0.115.0 [INFO] [stderr] Downloaded oxc_ast_macros v0.115.0 [INFO] [stderr] Downloaded oxc_span v0.115.0 [INFO] [stderr] Downloaded ctor-proc-macro v0.0.7 [INFO] [stderr] Downloaded ctor v0.6.3 [INFO] [stderr] Downloaded cow-utils v0.1.3 [INFO] [stderr] Downloaded oxc_str v0.115.0 [INFO] [stderr] Downloaded napi-build v2.3.1 [INFO] [stderr] Downloaded oxc_diagnostics v0.115.0 [INFO] [stderr] Downloaded napi-derive v3.5.2 [INFO] [stderr] Downloaded json-escape-simd v3.0.1 [INFO] [stderr] Downloaded napi-sys v3.2.1 [INFO] [stderr] Downloaded convert_case v0.11.0 [INFO] [stderr] Downloaded libloading v0.9.0 [INFO] [stderr] Downloaded oxc_codegen v0.115.0 [INFO] [stderr] Downloaded oxc_ast_visit v0.115.0 [INFO] [stderr] Downloaded oxc_regular_expression v0.115.0 [INFO] [stderr] Downloaded oxc_semantic v0.115.0 [INFO] [stderr] Downloaded napi v3.8.3 [INFO] [stderr] Downloaded oxc-miette v2.7.0 [INFO] [stderr] Downloaded oxc_allocator v0.115.0 [INFO] [stderr] Downloaded unicode-id-start v1.4.0 [INFO] [stderr] Downloaded oxc_ast v0.115.0 [INFO] [stderr] Downloaded oxc_parser v0.115.0 [INFO] [stderr] Downloaded oxc_ecmascript v0.115.0 [INFO] [stderr] Downloaded napi-derive-backend v5.0.2 [INFO] [stderr] Downloaded dragonbox_ecma v0.1.0 [INFO] [stderr] Downloaded oxc_data_structures v0.115.0 [INFO] [stderr] Downloaded oxc_sourcemap v6.0.2 [INFO] [stderr] Downloaded oxc_index v4.1.0 [INFO] [stderr] Downloaded oxc-miette-derive v2.7.0 [INFO] [stderr] Downloaded oxc_syntax v0.115.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] b2e76895f73e8d840a29bda08c051f276ada72784e9d551190830fcc4517f17f [INFO] running `Command { std: "docker" "start" "-a" "b2e76895f73e8d840a29bda08c051f276ada72784e9d551190830fcc4517f17f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b2e76895f73e8d840a29bda08c051f276ada72784e9d551190830fcc4517f17f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b2e76895f73e8d840a29bda08c051f276ada72784e9d551190830fcc4517f17f", kill_on_drop: false }` [INFO] [stdout] b2e76895f73e8d840a29bda08c051f276ada72784e9d551190830fcc4517f17f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] a5d7e065ac4f5af35adf92827599c2302b10768ccb38fde9b3cd0c43fa3891c5 [INFO] running `Command { std: "docker" "start" "-a" "a5d7e065ac4f5af35adf92827599c2302b10768ccb38fde9b3cd0c43fa3891c5", kill_on_drop: false }` [INFO] [stderr] Compiling dragonbox_ecma v0.1.0 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling owo-colors v4.2.3 [INFO] [stderr] Checking allocator-api2 v0.2.21 [INFO] [stderr] Compiling phf_shared v0.13.1 [INFO] [stderr] Checking oxc_data_structures v0.115.0 [INFO] [stderr] Checking unicode-linebreak v0.1.5 [INFO] [stderr] Checking cow-utils v0.1.3 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Checking castaway v0.2.4 [INFO] [stderr] Checking bitflags v2.10.0 [INFO] [stderr] Checking unicode-id-start v1.4.0 [INFO] [stderr] Checking nonmax v0.5.5 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Compiling seq-macro v0.3.6 [INFO] [stderr] Checking textwrap v0.16.2 [INFO] [stderr] Checking winnow v0.7.14 [INFO] [stderr] Compiling phf v0.13.1 [INFO] [stderr] Compiling alloca v0.4.0 [INFO] [stderr] Checking clap_builder v4.5.60 [INFO] [stderr] Checking oxc_estree v0.115.0 [INFO] [stderr] Checking criterion-plot v0.8.2 [INFO] [stderr] Checking page_size v0.6.0 [INFO] [stderr] Compiling phf_generator v0.13.1 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking self_cell v1.2.2 [INFO] [stderr] Checking lux-metadata v0.1.0 (/opt/rustwide/workdir/crates/lux-metadata) [INFO] [stderr] Checking outref v0.5.2 [INFO] [stderr] Compiling oxc_sourcemap v6.0.2 [INFO] [stderr] Checking vsimd v0.8.0 [INFO] [stderr] Checking json-escape-simd v3.0.1 [INFO] [stderr] Compiling napi-build v2.3.1 [INFO] [stderr] Checking futures-channel v0.3.32 [INFO] [stderr] Compiling ctor-proc-macro v0.0.7 [INFO] [stderr] Compiling convert_case v0.11.0 [INFO] [stderr] Compiling dtor v0.1.1 [INFO] [stderr] Checking libloading v0.9.0 [INFO] [stderr] Checking nohash-hasher v0.2.0 [INFO] [stderr] Checking napi-sys v3.2.1 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Compiling napi v3.8.3 [INFO] [stderr] Compiling lux-node v0.1.0 (/opt/rustwide/workdir/crates/lux-node) [INFO] [stderr] Compiling ctor v0.6.3 [INFO] [stderr] Checking base64-simd v0.8.0 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking lux-test-support v0.1.0 (/opt/rustwide/workdir/crates/lux-test-support) [INFO] [stderr] Checking clap v4.5.60 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Compiling napi-derive-backend v5.0.2 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling oxc-miette-derive v2.7.0 [INFO] [stderr] Compiling phf_macros v0.13.1 [INFO] [stderr] Compiling oxc_ast_macros v0.115.0 [INFO] [stderr] Compiling zerocopy-derive v0.8.40 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Checking lux-utils v0.1.0 (/opt/rustwide/workdir/crates/lux-utils) [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking thiserror v2.0.18 [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | / if !matches!(parent, "thead" | "tbody" | "tfoot" | "table" | "template") { [INFO] [stdout] 13 | | return Some(" must be child of , , , or "); [INFO] [stdout] 14 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 11 ~ "tr" [INFO] [stdout] 12 ~ if !matches!(parent, "thead" | "tbody" | "tfoot" | "table" | "template") => { [INFO] [stdout] 13 | return Some(" must be child of , , , or
"); [INFO] [stdout] 14 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | / if !matches!(parent, "tr" | "template") { [INFO] [stdout] 18 | | return Some(""); [INFO] [stdout] 19 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 16 ~ "td" | "th" [INFO] [stdout] 17 ~ if !matches!(parent, "tr" | "template") => { [INFO] [stdout] 18 | return Some(""); [INFO] [stdout] 19 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | / if !matches!(parent, "ul" | "ol" | "menu" | "template") { [INFO] [stdout] 23 | | return Some("
  • must be child of
  • / must be child of
    / must be child of
    "); [INFO] [stdout] 34 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 31 ~ "caption" | "colgroup" | "thead" | "tbody" | "tfoot" [INFO] [stdout] 32 ~ if !matches!(parent, "table" | "template") => { [INFO] [stdout] 33 | return Some("must be child of
    "); [INFO] [stdout] 34 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | / if !matches!(parent, "colgroup" | "template") { [INFO] [stdout] 38 | | return Some("must be child of "); [INFO] [stdout] 39 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 36 ~ "col" [INFO] [stdout] 37 ~ if !matches!(parent, "colgroup" | "template") => { [INFO] [stdout] 38 | return Some("must be child of "); [INFO] [stdout] 39 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | / if parent != "html" { [INFO] [stdout] 43 | | return Some(" must be child of "); [INFO] [stdout] 44 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 41 ~ "head" [INFO] [stdout] 42 ~ if parent != "html" => { [INFO] [stdout] 43 | return Some(" must be child of "); [INFO] [stdout] 44 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:47:13 [INFO] [stdout] | [INFO] [stdout] 47 | / if parent != "html" { [INFO] [stdout] 48 | | return Some(" must be child of "); [INFO] [stdout] 49 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 46 ~ "body" [INFO] [stdout] 47 ~ if parent != "html" => { [INFO] [stdout] 48 | return Some(" must be child of "); [INFO] [stdout] 49 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | / if !matches!(child, "option" | "optgroup" | "hr" | "script" | "template") { [INFO] [stdout] 76 | | return Some("this element cannot be child of "); [INFO] [stdout] 77 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | / if !matches!(child, "option" | "script" | "template") { [INFO] [stdout] 82 | | return Some("this element cannot be child of "); [INFO] [stdout] 83 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 80 ~ "optgroup" [INFO] [stdout] 81 ~ if !matches!(child, "option" | "script" | "template") => { [INFO] [stdout] 82 | return Some("this element cannot be child of "); [INFO] [stdout] 83 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | / if !matches!( [INFO] [stdout] 88 | | child, [INFO] [stdout] 89 | | "caption" [INFO] [stdout] 90 | | | "colgroup" [INFO] [stdout] ... | [INFO] [stdout] 99 | | return Some("this element cannot be child of
    "); [INFO] [stdout] 100 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 86 ~ "table" [INFO] [stdout] 87 | if !matches!( [INFO] [stdout] ... [INFO] [stdout] 97 | | "style" [INFO] [stdout] 98 ~ ) => { [INFO] [stdout] 99 | return Some("this element cannot be child of
    "); [INFO] [stdout] 100 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking oxc-miette v2.7.0 [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | / if !matches!(parent, "thead" | "tbody" | "tfoot" | "table" | "template") { [INFO] [stdout] 13 | | return Some(" must be child of , , , or
    "); [INFO] [stdout] 14 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 11 ~ "tr" [INFO] [stdout] 12 ~ if !matches!(parent, "thead" | "tbody" | "tfoot" | "table" | "template") => { [INFO] [stdout] 13 | return Some(" must be child of , , , or
    "); [INFO] [stdout] 14 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | / if !matches!(parent, "tr" | "template") { [INFO] [stdout] 18 | | return Some(""); [INFO] [stdout] 19 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 16 ~ "td" | "th" [INFO] [stdout] 17 ~ if !matches!(parent, "tr" | "template") => { [INFO] [stdout] 18 | return Some(""); [INFO] [stdout] 19 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | / if !matches!(parent, "ul" | "ol" | "menu" | "template") { [INFO] [stdout] 23 | | return Some("
  • must be child of
  • / must be child of
    / must be child of
    "); [INFO] [stdout] 34 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 31 ~ "caption" | "colgroup" | "thead" | "tbody" | "tfoot" [INFO] [stdout] 32 ~ if !matches!(parent, "table" | "template") => { [INFO] [stdout] 33 | return Some("must be child of
    "); [INFO] [stdout] 34 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | / if !matches!(parent, "colgroup" | "template") { [INFO] [stdout] 38 | | return Some("must be child of "); [INFO] [stdout] 39 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 36 ~ "col" [INFO] [stdout] 37 ~ if !matches!(parent, "colgroup" | "template") => { [INFO] [stdout] 38 | return Some("must be child of "); [INFO] [stdout] 39 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | / if parent != "html" { [INFO] [stdout] 43 | | return Some(" must be child of "); [INFO] [stdout] 44 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 41 ~ "head" [INFO] [stdout] 42 ~ if parent != "html" => { [INFO] [stdout] 43 | return Some(" must be child of "); [INFO] [stdout] 44 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:47:13 [INFO] [stdout] | [INFO] [stdout] 47 | / if parent != "html" { [INFO] [stdout] 48 | | return Some(" must be child of "); [INFO] [stdout] 49 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 46 ~ "body" [INFO] [stdout] 47 ~ if parent != "html" => { [INFO] [stdout] 48 | return Some(" must be child of "); [INFO] [stdout] 49 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | / if !matches!(child, "option" | "optgroup" | "hr" | "script" | "template") { [INFO] [stdout] 76 | | return Some("this element cannot be child of "); [INFO] [stdout] 77 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | / if !matches!(child, "option" | "script" | "template") { [INFO] [stdout] 82 | | return Some("this element cannot be child of "); [INFO] [stdout] 83 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 80 ~ "optgroup" [INFO] [stdout] 81 ~ if !matches!(child, "option" | "script" | "template") => { [INFO] [stdout] 82 | return Some("this element cannot be child of "); [INFO] [stdout] 83 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-utils/src/html_tree.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | / if !matches!( [INFO] [stdout] 88 | | child, [INFO] [stdout] 89 | | "caption" [INFO] [stdout] 90 | | | "colgroup" [INFO] [stdout] ... | [INFO] [stdout] 99 | | return Some("this element cannot be child of
    "); [INFO] [stdout] 100 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 86 ~ "table" [INFO] [stdout] 87 | if !matches!( [INFO] [stdout] ... [INFO] [stdout] 97 | | "style" [INFO] [stdout] 98 ~ ) => { [INFO] [stdout] 99 | return Some("this element cannot be child of
    "); [INFO] [stdout] 100 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling napi-derive v3.5.2 [INFO] [stderr] Checking oxc_diagnostics v0.115.0 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking futures-executor v0.3.32 [INFO] [stderr] Checking futures v0.3.32 [INFO] [stderr] Checking oxc_allocator v0.115.0 [INFO] [stderr] Checking compact_str v0.9.0 [INFO] [stderr] Checking oxc_index v4.1.0 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking oxc_str v0.115.0 [INFO] [stderr] Checking oxc_span v0.115.0 [INFO] [stderr] Checking oxc_syntax v0.115.0 [INFO] [stderr] Checking oxc_regular_expression v0.115.0 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking oxc_ast v0.115.0 [INFO] [stderr] Checking criterion v0.8.2 [INFO] [stderr] Checking oxc_ecmascript v0.115.0 [INFO] [stderr] Checking oxc_ast_visit v0.115.0 [INFO] [stderr] Checking lux-ast v0.1.0 (/opt/rustwide/workdir/crates/lux-ast) [INFO] [stderr] Checking oxc_parser v0.115.0 [INFO] [stderr] Checking oxc_semantic v0.115.0 [INFO] [stderr] Checking lux-analyzer v0.1.0 (/opt/rustwide/workdir/crates/lux-analyzer) [INFO] [stderr] Checking oxc_codegen v0.115.0 [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:181:17 [INFO] [stdout] | [INFO] [stdout] 181 | / if rune.argument_count > 1 { [INFO] [stdout] 182 | | push_rune_argument_length_diagnostic( [INFO] [stdout] 183 | | tables, [INFO] [stdout] 184 | | &rune.name, [INFO] [stdout] ... | [INFO] [stdout] 187 | | ); [INFO] [stdout] 188 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 180 ~ "$state" | "$state.raw" | "$bindable" [INFO] [stdout] 181 ~ if rune.argument_count > 1 => { [INFO] [stdout] 182 | push_rune_argument_length_diagnostic( [INFO] [stdout] ... [INFO] [stdout] 187 | ); [INFO] [stdout] 188 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:192:17 [INFO] [stdout] | [INFO] [stdout] 192 | / if rune.argument_count != 1 { [INFO] [stdout] 193 | | push_rune_argument_length_diagnostic( [INFO] [stdout] 194 | | tables, [INFO] [stdout] 195 | | &rune.name, [INFO] [stdout] ... | [INFO] [stdout] 198 | | ); [INFO] [stdout] 199 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 191 ~ | "$state.snapshot" | "$state.eager" | "$inspect().with" [INFO] [stdout] 192 ~ if rune.argument_count != 1 => { [INFO] [stdout] 193 | push_rune_argument_length_diagnostic( [INFO] [stdout] ... [INFO] [stdout] 198 | ); [INFO] [stdout] 199 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | / if rune.argument_count == 0 { [INFO] [stdout] 203 | | push_rune_argument_length_diagnostic( [INFO] [stdout] 204 | | tables, [INFO] [stdout] 205 | | &rune.name, [INFO] [stdout] ... | [INFO] [stdout] 208 | | ); [INFO] [stdout] 209 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 201 ~ "$inspect" [INFO] [stdout] 202 ~ if rune.argument_count == 0 => { [INFO] [stdout] 203 | push_rune_argument_length_diagnostic( [INFO] [stdout] ... [INFO] [stdout] 208 | ); [INFO] [stdout] 209 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:212:17 [INFO] [stdout] | [INFO] [stdout] 212 | / if rune.argument_count > 1 { [INFO] [stdout] 213 | | push_rune_argument_length_diagnostic( [INFO] [stdout] 214 | | tables, [INFO] [stdout] 215 | | &rune.name, [INFO] [stdout] ... | [INFO] [stdout] 218 | | ); [INFO] [stdout] 219 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 211 ~ "$inspect.trace" [INFO] [stdout] 212 ~ if rune.argument_count > 1 => { [INFO] [stdout] 213 | push_rune_argument_length_diagnostic( [INFO] [stdout] ... [INFO] [stdout] 218 | ); [INFO] [stdout] 219 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:222:17 [INFO] [stdout] | [INFO] [stdout] 222 | / if rune.argument_count != 0 { [INFO] [stdout] 223 | | tables.diagnostics.push(AnalysisDiagnostic { [INFO] [stdout] 224 | | severity: AnalysisSeverity::Error, [INFO] [stdout] 225 | | code: AnalysisDiagnosticCode::ScriptRuneInvalidArguments, [INFO] [stdout] ... | [INFO] [stdout] 228 | | }); [INFO] [stdout] 229 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 221 ~ "$props" | "$props.id" | "$host" | "$effect.tracking" [INFO] [stdout] 222 ~ if rune.argument_count != 0 => { [INFO] [stdout] 223 | tables.diagnostics.push(AnalysisDiagnostic { [INFO] [stdout] ... [INFO] [stdout] 228 | }); [INFO] [stdout] 229 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:536:17 [INFO] [stdout] | [INFO] [stdout] 536 | / if !property.computed && !property.r#static { [INFO] [stdout] 537 | | let Some(name) = property_key_name(&property.key) else { [INFO] [stdout] 538 | | continue; [INFO] [stdout] 539 | | }; [INFO] [stdout] ... | [INFO] [stdout] 566 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 535 ~ ClassElement::PropertyDefinition(property) [INFO] [stdout] 536 ~ if !property.computed && !property.r#static => { [INFO] [stdout] 537 | let Some(name) = property_key_name(&property.key) else { [INFO] [stdout] ... [INFO] [stdout] 565 | } [INFO] [stdout] 566 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1123:17 [INFO] [stdout] | [INFO] [stdout] 1123 | / if reassigned_identifiers.contains(&exported_name) { [INFO] [stdout] 1124 | | tables.diagnostics.push(AnalysisDiagnostic { [INFO] [stdout] 1125 | | severity: AnalysisSeverity::Error, [INFO] [stdout] 1126 | | code: AnalysisDiagnosticCode::StateInvalidExport, [INFO] [stdout] ... | [INFO] [stdout] 1129 | | }); [INFO] [stdout] 1130 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1122 ~ "$state" | "$state.raw" [INFO] [stdout] 1123 ~ if reassigned_identifiers.contains(&exported_name) => { [INFO] [stdout] 1124 | tables.diagnostics.push(AnalysisDiagnostic { [INFO] [stdout] ... [INFO] [stdout] 1129 | }); [INFO] [stdout] 1130 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1191:13 [INFO] [stdout] | [INFO] [stdout] 1191 | / if let Declaration::VariableDeclaration(declaration) = declaration { [INFO] [stdout] 1192 | | for declarator in &declaration.declarations { [INFO] [stdout] 1193 | | if let Some(name) = binding_identifier_name(&declarator.id) { [INFO] [stdout] 1194 | | names.insert(name); [INFO] [stdout] ... | [INFO] [stdout] 1197 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1190:21 [INFO] [stdout] | [INFO] [stdout] 1190 | if let Some(declaration) = &export.declaration { [INFO] [stdout] | ^^^^^^^^^^^ replace this binding [INFO] [stdout] 1191 | if let Declaration::VariableDeclaration(declaration) = declaration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1190:9 [INFO] [stdout] | [INFO] [stdout] 1190 | / if let Some(declaration) = &export.declaration { [INFO] [stdout] 1191 | | if let Declaration::VariableDeclaration(declaration) = declaration { [INFO] [stdout] 1192 | | for declarator in &declaration.declarations { [INFO] [stdout] 1193 | | if let Some(name) = binding_identifier_name(&declarator.id) { [INFO] [stdout] ... | [INFO] [stdout] 1198 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1190 ~ if let Some(declaration) = &export.declaration [INFO] [stdout] 1191 ~ && let Declaration::VariableDeclaration(declaration) = declaration { [INFO] [stdout] 1192 | for declarator in &declaration.declarations { [INFO] [stdout] ... [INFO] [stdout] 1196 | } [INFO] [stdout] 1197 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1383:13 [INFO] [stdout] | [INFO] [stdout] 1383 | / for element in &pattern.elements { [INFO] [stdout] 1384 | | if let Some(element) = element { [INFO] [stdout] 1385 | | collect_bindable_calls_from_binding_pattern(element, spans); [INFO] [stdout] 1386 | | } [INFO] [stdout] 1387 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1384:17 [INFO] [stdout] | [INFO] [stdout] 1384 | / if let Some(element) = element { [INFO] [stdout] 1385 | | collect_bindable_calls_from_binding_pattern(element, spans); [INFO] [stdout] 1386 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1383 ~ for element in (&pattern.elements).into_iter().flatten() { [INFO] [stdout] 1384 + collect_bindable_calls_from_binding_pattern(element, spans); [INFO] [stdout] 1385 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1684:9 [INFO] [stdout] | [INFO] [stdout] 1684 | / if let Some(name) = extract_rune_name(&call.callee) { [INFO] [stdout] 1685 | | if name.starts_with('$') { [INFO] [stdout] 1686 | | self.runes.push(CollectedRune { [INFO] [stdout] 1687 | | name, [INFO] [stdout] ... | [INFO] [stdout] 1696 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1684 ~ if let Some(name) = extract_rune_name(&call.callee) [INFO] [stdout] 1685 ~ && name.starts_with('$') { [INFO] [stdout] 1686 | self.runes.push(CollectedRune { [INFO] [stdout] ... [INFO] [stdout] 1694 | }); [INFO] [stdout] 1695 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1769:5 [INFO] [stdout] | [INFO] [stdout] 1769 | / for element in &target.elements { [INFO] [stdout] 1770 | | if let Some(element) = element { [INFO] [stdout] 1771 | | collect_identifiers_from_assignment_target_maybe_default(element, names); [INFO] [stdout] 1772 | | } [INFO] [stdout] 1773 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1770:9 [INFO] [stdout] | [INFO] [stdout] 1770 | / if let Some(element) = element { [INFO] [stdout] 1771 | | collect_identifiers_from_assignment_target_maybe_default(element, names); [INFO] [stdout] 1772 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1769 ~ for element in (&target.elements).into_iter().flatten() { [INFO] [stdout] 1770 + collect_identifiers_from_assignment_target_maybe_default(element, names); [INFO] [stdout] 1771 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1892:13 [INFO] [stdout] | [INFO] [stdout] 1892 | / for element in &pattern.elements { [INFO] [stdout] 1893 | | if let Some(element) = element { [INFO] [stdout] 1894 | | validate_binding_pattern_identifiers( [INFO] [stdout] 1895 | | element, [INFO] [stdout] ... | [INFO] [stdout] 1901 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1893:17 [INFO] [stdout] | [INFO] [stdout] 1893 | / if let Some(element) = element { [INFO] [stdout] 1894 | | validate_binding_pattern_identifiers( [INFO] [stdout] 1895 | | element, [INFO] [stdout] 1896 | | function_depth, [INFO] [stdout] ... | [INFO] [stdout] 1899 | | ); [INFO] [stdout] 1900 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1892 ~ for element in (&pattern.elements).into_iter().flatten() { [INFO] [stdout] 1893 + validate_binding_pattern_identifiers( [INFO] [stdout] 1894 + element, [INFO] [stdout] 1895 + function_depth, [INFO] [stdout] 1896 + strict, [INFO] [stdout] 1897 + diagnostics, [INFO] [stdout] 1898 + ); [INFO] [stdout] 1899 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-analyzer/src/template/diagnostics/bind.rs:142:5 [INFO] [stdout] | [INFO] [stdout] 142 | / if element_name == "select" && directive.name != "this" { [INFO] [stdout] 143 | | if let Some(multiple_attr) = find_attribute(attributes, "multiple") { [INFO] [stdout] 144 | | if !is_text_attribute(multiple_attr) [INFO] [stdout] 145 | | && !matches!(multiple_attr.value, AttributeValue::True) [INFO] [stdout] ... | [INFO] [stdout] 155 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 142 ~ if element_name == "select" && directive.name != "this" [INFO] [stdout] 143 ~ && let Some(multiple_attr) = find_attribute(attributes, "multiple") { [INFO] [stdout] 144 | if !is_text_attribute(multiple_attr) [INFO] [stdout] ... [INFO] [stdout] 153 | } [INFO] [stdout] 154 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-analyzer/src/template/diagnostics/bind.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | / if let Some(multiple_attr) = find_attribute(attributes, "multiple") { [INFO] [stdout] 144 | | if !is_text_attribute(multiple_attr) [INFO] [stdout] 145 | | && !matches!(multiple_attr.value, AttributeValue::True) [INFO] [stdout] ... | [INFO] [stdout] 154 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 143 ~ if let Some(multiple_attr) = find_attribute(attributes, "multiple") [INFO] [stdout] 144 ~ && !is_text_attribute(multiple_attr) [INFO] [stdout] 145 | && !matches!(multiple_attr.value, AttributeValue::True) [INFO] [stdout] ... [INFO] [stdout] 152 | ); [INFO] [stdout] 153 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> crates/lux-analyzer/src/template/diagnostics/each.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | / if let BindingPattern::BindingIdentifier(identifier) = pattern { [INFO] [stdout] 32 | | let name = identifier.name.as_str(); [INFO] [stdout] 33 | | if name == "$state" || name == "$derived" { [INFO] [stdout] 34 | | context.add_diagnostic( [INFO] [stdout] ... | [INFO] [stdout] 43 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> crates/lux-analyzer/src/template/diagnostics/each.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | if let Some(pattern) = &block.context { [INFO] [stdout] | ^^^^^^^ replace this binding [INFO] [stdout] 31 | if let BindingPattern::BindingIdentifier(identifier) = pattern { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-analyzer/src/template/diagnostics/each.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / if let Some(pattern) = &block.context { [INFO] [stdout] 31 | | if let BindingPattern::BindingIdentifier(identifier) = pattern { [INFO] [stdout] 32 | | let name = identifier.name.as_str(); [INFO] [stdout] 33 | | if name == "$state" || name == "$derived" { [INFO] [stdout] ... | [INFO] [stdout] 44 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 30 ~ if let Some(pattern) = &block.context [INFO] [stdout] 31 ~ && let BindingPattern::BindingIdentifier(identifier) = pattern { [INFO] [stdout] 32 | let name = identifier.name.as_str(); [INFO] [stdout] ... [INFO] [stdout] 42 | } [INFO] [stdout] 43 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-analyzer/src/template/reference/collector.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | / if let Some(name) = extract_rune_name(&it.callee) { [INFO] [stdout] 102 | | if is_rune(&name) { [INFO] [stdout] 103 | | self.context.add_diagnostic( [INFO] [stdout] 104 | | AnalysisSeverity::Error, [INFO] [stdout] ... | [INFO] [stdout] 110 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 101 ~ if let Some(name) = extract_rune_name(&it.callee) [INFO] [stdout] 102 ~ && is_rune(&name) { [INFO] [stdout] 103 | self.context.add_diagnostic( [INFO] [stdout] ... [INFO] [stdout] 108 | ); [INFO] [stdout] 109 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking lux-parser v0.1.0 (/opt/rustwide/workdir/crates/lux-parser) [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> crates/lux-parser/src/parser/utils/scanner/tests.rs:5:52 [INFO] [stdout] | [INFO] [stdout] 5 | assert_eq!(scan_expression_boundary("x = 42}", &[b'=']), Some(2)); [INFO] [stdout] | ^^^^^^^ help: try: `b"="` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] = note: `#[warn(clippy::byte_char_slices)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> crates/lux-parser/src/parser/utils/scanner/tests.rs:11:54 [INFO] [stdout] | [INFO] [stdout] 11 | scan_expression_boundary("{ a = 1 } = obj}", &[b'=']), [INFO] [stdout] | ^^^^^^^ help: try: `b"="` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> crates/lux-parser/src/parser/utils/scanner/tests.rs:18:50 [INFO] [stdout] | [INFO] [stdout] 18 | assert_eq!(scan_expression_boundary("a, b)", &[b',', b')']), Some(1)); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `b",)"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> crates/lux-parser/src/parser/utils/scanner/tests.rs:23:47 [INFO] [stdout] | [INFO] [stdout] 23 | assert_eq!(scan_expression_boundary("x)", &[b')']), Some(1)); [INFO] [stdout] | ^^^^^^^ help: try: `b")"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual case-insensitive ASCII comparison [INFO] [stdout] --> crates/lux-parser/src/parser/utils/language.rs:27:29 [INFO] [stdout] | [INFO] [stdout] 27 | .is_none_or(|b| b.to_ascii_lowercase() != b's') [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ignore_case_cmp [INFO] [stdout] = note: `#[warn(clippy::manual_ignore_case_cmp)]` on by default [INFO] [stdout] help: consider using `.eq_ignore_ascii_case()` instead [INFO] [stdout] | [INFO] [stdout] 27 - .is_none_or(|b| b.to_ascii_lowercase() != b's') [INFO] [stdout] 27 + .is_none_or(|b| !b.eq_ignore_ascii_case(&b's')) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual case-insensitive ASCII comparison [INFO] [stdout] --> crates/lux-parser/src/parser/utils/language.rs:27:29 [INFO] [stdout] | [INFO] [stdout] 27 | .is_none_or(|b| b.to_ascii_lowercase() != b's') [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ignore_case_cmp [INFO] [stdout] = note: `#[warn(clippy::manual_ignore_case_cmp)]` on by default [INFO] [stdout] help: consider using `.eq_ignore_ascii_case()` instead [INFO] [stdout] | [INFO] [stdout] 27 - .is_none_or(|b| b.to_ascii_lowercase() != b's') [INFO] [stdout] 27 + .is_none_or(|b| !b.eq_ignore_ascii_case(&b's')) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking lux-transformer v0.1.0 (/opt/rustwide/workdir/crates/lux-transformer) [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> crates/lux-parser/benches/svelte_compare_parser.rs:138:27 [INFO] [stdout] | [INFO] [stdout] 138 | .output_directory(&*workspace_root.join("benchmarks/criterion/lux-parser")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&workspace_root.join("benchmarks/criterion/lux-parser")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> crates/lux-analyzer/tests/parity_reference_diagnostics.rs:357:13 [INFO] [stdout] | [INFO] [stdout] 357 | lux_codes.iter().any(|code| *code == case.lux_code), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `lux_codes.contains(&case.lux_code)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> crates/lux-analyzer/tests/parity_reference_diagnostics.rs:446:13 [INFO] [stdout] | [INFO] [stdout] 446 | if !lux_codes.iter().any(|code| *code == lux_code) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `lux_codes.contains(&lux_code)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> crates/lux-analyzer/benches/svelte_compare_analyzer.rs:164:27 [INFO] [stdout] | [INFO] [stdout] 164 | .output_directory(&*workspace_root.join("benchmarks/criterion/lux-analyzer")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&workspace_root.join("benchmarks/criterion/lux-analyzer")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/lux-parser/tests/parity_modern_reference.rs:899:1 [INFO] [stdout] | [INFO] [stdout] 899 | / fn emit_lux_element( [INFO] [stdout] 900 | | lines: &mut Vec, [INFO] [stdout] 901 | | kind: &str, [INFO] [stdout] 902 | | name: &str, [INFO] [stdout] ... | [INFO] [stdout] 908 | | path: &str, [INFO] [stdout] 909 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:181:17 [INFO] [stdout] | [INFO] [stdout] 181 | / if rune.argument_count > 1 { [INFO] [stdout] 182 | | push_rune_argument_length_diagnostic( [INFO] [stdout] 183 | | tables, [INFO] [stdout] 184 | | &rune.name, [INFO] [stdout] ... | [INFO] [stdout] 187 | | ); [INFO] [stdout] 188 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 180 ~ "$state" | "$state.raw" | "$bindable" [INFO] [stdout] 181 ~ if rune.argument_count > 1 => { [INFO] [stdout] 182 | push_rune_argument_length_diagnostic( [INFO] [stdout] ... [INFO] [stdout] 187 | ); [INFO] [stdout] 188 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:192:17 [INFO] [stdout] | [INFO] [stdout] 192 | / if rune.argument_count != 1 { [INFO] [stdout] 193 | | push_rune_argument_length_diagnostic( [INFO] [stdout] 194 | | tables, [INFO] [stdout] 195 | | &rune.name, [INFO] [stdout] ... | [INFO] [stdout] 198 | | ); [INFO] [stdout] 199 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 191 ~ | "$state.snapshot" | "$state.eager" | "$inspect().with" [INFO] [stdout] 192 ~ if rune.argument_count != 1 => { [INFO] [stdout] 193 | push_rune_argument_length_diagnostic( [INFO] [stdout] ... [INFO] [stdout] 198 | ); [INFO] [stdout] 199 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | / if rune.argument_count == 0 { [INFO] [stdout] 203 | | push_rune_argument_length_diagnostic( [INFO] [stdout] 204 | | tables, [INFO] [stdout] 205 | | &rune.name, [INFO] [stdout] ... | [INFO] [stdout] 208 | | ); [INFO] [stdout] 209 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 201 ~ "$inspect" [INFO] [stdout] 202 ~ if rune.argument_count == 0 => { [INFO] [stdout] 203 | push_rune_argument_length_diagnostic( [INFO] [stdout] ... [INFO] [stdout] 208 | ); [INFO] [stdout] 209 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:212:17 [INFO] [stdout] | [INFO] [stdout] 212 | / if rune.argument_count > 1 { [INFO] [stdout] 213 | | push_rune_argument_length_diagnostic( [INFO] [stdout] 214 | | tables, [INFO] [stdout] 215 | | &rune.name, [INFO] [stdout] ... | [INFO] [stdout] 218 | | ); [INFO] [stdout] 219 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 211 ~ "$inspect.trace" [INFO] [stdout] 212 ~ if rune.argument_count > 1 => { [INFO] [stdout] 213 | push_rune_argument_length_diagnostic( [INFO] [stdout] ... [INFO] [stdout] 218 | ); [INFO] [stdout] 219 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:222:17 [INFO] [stdout] | [INFO] [stdout] 222 | / if rune.argument_count != 0 { [INFO] [stdout] 223 | | tables.diagnostics.push(AnalysisDiagnostic { [INFO] [stdout] 224 | | severity: AnalysisSeverity::Error, [INFO] [stdout] 225 | | code: AnalysisDiagnosticCode::ScriptRuneInvalidArguments, [INFO] [stdout] ... | [INFO] [stdout] 228 | | }); [INFO] [stdout] 229 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 221 ~ "$props" | "$props.id" | "$host" | "$effect.tracking" [INFO] [stdout] 222 ~ if rune.argument_count != 0 => { [INFO] [stdout] 223 | tables.diagnostics.push(AnalysisDiagnostic { [INFO] [stdout] ... [INFO] [stdout] 228 | }); [INFO] [stdout] 229 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:536:17 [INFO] [stdout] | [INFO] [stdout] 536 | / if !property.computed && !property.r#static { [INFO] [stdout] 537 | | let Some(name) = property_key_name(&property.key) else { [INFO] [stdout] 538 | | continue; [INFO] [stdout] 539 | | }; [INFO] [stdout] ... | [INFO] [stdout] 566 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 535 ~ ClassElement::PropertyDefinition(property) [INFO] [stdout] 536 ~ if !property.computed && !property.r#static => { [INFO] [stdout] 537 | let Some(name) = property_key_name(&property.key) else { [INFO] [stdout] ... [INFO] [stdout] 565 | } [INFO] [stdout] 566 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1123:17 [INFO] [stdout] | [INFO] [stdout] 1123 | / if reassigned_identifiers.contains(&exported_name) { [INFO] [stdout] 1124 | | tables.diagnostics.push(AnalysisDiagnostic { [INFO] [stdout] 1125 | | severity: AnalysisSeverity::Error, [INFO] [stdout] 1126 | | code: AnalysisDiagnosticCode::StateInvalidExport, [INFO] [stdout] ... | [INFO] [stdout] 1129 | | }); [INFO] [stdout] 1130 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1122 ~ "$state" | "$state.raw" [INFO] [stdout] 1123 ~ if reassigned_identifiers.contains(&exported_name) => { [INFO] [stdout] 1124 | tables.diagnostics.push(AnalysisDiagnostic { [INFO] [stdout] ... [INFO] [stdout] 1129 | }); [INFO] [stdout] 1130 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1191:13 [INFO] [stdout] | [INFO] [stdout] 1191 | / if let Declaration::VariableDeclaration(declaration) = declaration { [INFO] [stdout] 1192 | | for declarator in &declaration.declarations { [INFO] [stdout] 1193 | | if let Some(name) = binding_identifier_name(&declarator.id) { [INFO] [stdout] 1194 | | names.insert(name); [INFO] [stdout] ... | [INFO] [stdout] 1197 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1190:21 [INFO] [stdout] | [INFO] [stdout] 1190 | if let Some(declaration) = &export.declaration { [INFO] [stdout] | ^^^^^^^^^^^ replace this binding [INFO] [stdout] 1191 | if let Declaration::VariableDeclaration(declaration) = declaration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1190:9 [INFO] [stdout] | [INFO] [stdout] 1190 | / if let Some(declaration) = &export.declaration { [INFO] [stdout] 1191 | | if let Declaration::VariableDeclaration(declaration) = declaration { [INFO] [stdout] 1192 | | for declarator in &declaration.declarations { [INFO] [stdout] 1193 | | if let Some(name) = binding_identifier_name(&declarator.id) { [INFO] [stdout] ... | [INFO] [stdout] 1198 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1190 ~ if let Some(declaration) = &export.declaration [INFO] [stdout] 1191 ~ && let Declaration::VariableDeclaration(declaration) = declaration { [INFO] [stdout] 1192 | for declarator in &declaration.declarations { [INFO] [stdout] ... [INFO] [stdout] 1196 | } [INFO] [stdout] 1197 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1383:13 [INFO] [stdout] | [INFO] [stdout] 1383 | / for element in &pattern.elements { [INFO] [stdout] 1384 | | if let Some(element) = element { [INFO] [stdout] 1385 | | collect_bindable_calls_from_binding_pattern(element, spans); [INFO] [stdout] 1386 | | } [INFO] [stdout] 1387 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1384:17 [INFO] [stdout] | [INFO] [stdout] 1384 | / if let Some(element) = element { [INFO] [stdout] 1385 | | collect_bindable_calls_from_binding_pattern(element, spans); [INFO] [stdout] 1386 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1383 ~ for element in (&pattern.elements).into_iter().flatten() { [INFO] [stdout] 1384 + collect_bindable_calls_from_binding_pattern(element, spans); [INFO] [stdout] 1385 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1684:9 [INFO] [stdout] | [INFO] [stdout] 1684 | / if let Some(name) = extract_rune_name(&call.callee) { [INFO] [stdout] 1685 | | if name.starts_with('$') { [INFO] [stdout] 1686 | | self.runes.push(CollectedRune { [INFO] [stdout] 1687 | | name, [INFO] [stdout] ... | [INFO] [stdout] 1696 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1684 ~ if let Some(name) = extract_rune_name(&call.callee) [INFO] [stdout] 1685 ~ && name.starts_with('$') { [INFO] [stdout] 1686 | self.runes.push(CollectedRune { [INFO] [stdout] ... [INFO] [stdout] 1694 | }); [INFO] [stdout] 1695 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1769:5 [INFO] [stdout] | [INFO] [stdout] 1769 | / for element in &target.elements { [INFO] [stdout] 1770 | | if let Some(element) = element { [INFO] [stdout] 1771 | | collect_identifiers_from_assignment_target_maybe_default(element, names); [INFO] [stdout] 1772 | | } [INFO] [stdout] 1773 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1770:9 [INFO] [stdout] | [INFO] [stdout] 1770 | / if let Some(element) = element { [INFO] [stdout] 1771 | | collect_identifiers_from_assignment_target_maybe_default(element, names); [INFO] [stdout] 1772 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1769 ~ for element in (&target.elements).into_iter().flatten() { [INFO] [stdout] 1770 + collect_identifiers_from_assignment_target_maybe_default(element, names); [INFO] [stdout] 1771 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1892:13 [INFO] [stdout] | [INFO] [stdout] 1892 | / for element in &pattern.elements { [INFO] [stdout] 1893 | | if let Some(element) = element { [INFO] [stdout] 1894 | | validate_binding_pattern_identifiers( [INFO] [stdout] 1895 | | element, [INFO] [stdout] ... | [INFO] [stdout] 1901 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-analyzer/src/script/program.rs:1893:17 [INFO] [stdout] | [INFO] [stdout] 1893 | / if let Some(element) = element { [INFO] [stdout] 1894 | | validate_binding_pattern_identifiers( [INFO] [stdout] 1895 | | element, [INFO] [stdout] 1896 | | function_depth, [INFO] [stdout] ... | [INFO] [stdout] 1899 | | ); [INFO] [stdout] 1900 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1892 ~ for element in (&pattern.elements).into_iter().flatten() { [INFO] [stdout] 1893 + validate_binding_pattern_identifiers( [INFO] [stdout] 1894 + element, [INFO] [stdout] 1895 + function_depth, [INFO] [stdout] 1896 + strict, [INFO] [stdout] 1897 + diagnostics, [INFO] [stdout] 1898 + ); [INFO] [stdout] 1899 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-analyzer/src/template/diagnostics/bind.rs:142:5 [INFO] [stdout] | [INFO] [stdout] 142 | / if element_name == "select" && directive.name != "this" { [INFO] [stdout] 143 | | if let Some(multiple_attr) = find_attribute(attributes, "multiple") { [INFO] [stdout] 144 | | if !is_text_attribute(multiple_attr) [INFO] [stdout] 145 | | && !matches!(multiple_attr.value, AttributeValue::True) [INFO] [stdout] ... | [INFO] [stdout] 155 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 142 ~ if element_name == "select" && directive.name != "this" [INFO] [stdout] 143 ~ && let Some(multiple_attr) = find_attribute(attributes, "multiple") { [INFO] [stdout] 144 | if !is_text_attribute(multiple_attr) [INFO] [stdout] ... [INFO] [stdout] 153 | } [INFO] [stdout] 154 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-analyzer/src/template/diagnostics/bind.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | / if let Some(multiple_attr) = find_attribute(attributes, "multiple") { [INFO] [stdout] 144 | | if !is_text_attribute(multiple_attr) [INFO] [stdout] 145 | | && !matches!(multiple_attr.value, AttributeValue::True) [INFO] [stdout] ... | [INFO] [stdout] 154 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 143 ~ if let Some(multiple_attr) = find_attribute(attributes, "multiple") [INFO] [stdout] 144 ~ && !is_text_attribute(multiple_attr) [INFO] [stdout] 145 | && !matches!(multiple_attr.value, AttributeValue::True) [INFO] [stdout] ... [INFO] [stdout] 152 | ); [INFO] [stdout] 153 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> crates/lux-analyzer/src/template/diagnostics/each.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | / if let BindingPattern::BindingIdentifier(identifier) = pattern { [INFO] [stdout] 32 | | let name = identifier.name.as_str(); [INFO] [stdout] 33 | | if name == "$state" || name == "$derived" { [INFO] [stdout] 34 | | context.add_diagnostic( [INFO] [stdout] ... | [INFO] [stdout] 43 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> crates/lux-analyzer/src/template/diagnostics/each.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | if let Some(pattern) = &block.context { [INFO] [stdout] | ^^^^^^^ replace this binding [INFO] [stdout] 31 | if let BindingPattern::BindingIdentifier(identifier) = pattern { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-analyzer/src/template/diagnostics/each.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / if let Some(pattern) = &block.context { [INFO] [stdout] 31 | | if let BindingPattern::BindingIdentifier(identifier) = pattern { [INFO] [stdout] 32 | | let name = identifier.name.as_str(); [INFO] [stdout] 33 | | if name == "$state" || name == "$derived" { [INFO] [stdout] ... | [INFO] [stdout] 44 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 30 ~ if let Some(pattern) = &block.context [INFO] [stdout] 31 ~ && let BindingPattern::BindingIdentifier(identifier) = pattern { [INFO] [stdout] 32 | let name = identifier.name.as_str(); [INFO] [stdout] ... [INFO] [stdout] 42 | } [INFO] [stdout] 43 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-analyzer/src/template/reference/collector.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | / if let Some(name) = extract_rune_name(&it.callee) { [INFO] [stdout] 102 | | if is_rune(&name) { [INFO] [stdout] 103 | | self.context.add_diagnostic( [INFO] [stdout] 104 | | AnalysisSeverity::Error, [INFO] [stdout] ... | [INFO] [stdout] 110 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 101 ~ if let Some(name) = extract_rune_name(&it.callee) [INFO] [stdout] 102 ~ && is_rune(&name) { [INFO] [stdout] 103 | self.context.add_diagnostic( [INFO] [stdout] ... [INFO] [stdout] 108 | ); [INFO] [stdout] 109 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> crates/lux-transformer/src/css/selector.rs:396:21 [INFO] [stdout] | [INFO] [stdout] 396 | / static_class_tokens(&attribute.value) [INFO] [stdout] 397 | | .iter() [INFO] [stdout] 398 | | .any(|token| *token == class_selector.name) [INFO] [stdout] | |___________________________________________________________________^ help: try: `static_class_tokens(&attribute.value).contains(&class_selector.name)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> crates/lux-transformer/src/css/selector.rs:396:21 [INFO] [stdout] | [INFO] [stdout] 396 | / static_class_tokens(&attribute.value) [INFO] [stdout] 397 | | .iter() [INFO] [stdout] 398 | | .any(|token| *token == class_selector.name) [INFO] [stdout] | |___________________________________________________________________^ help: try: `static_class_tokens(&attribute.value).contains(&class_selector.name)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `oxc_ast::ast::Expression<'_>` [INFO] [stdout] --> crates/lux-transformer/src/js/component/exports.rs:1096:13 [INFO] [stdout] | [INFO] [stdout] 1096 | / ast.expression_arrow_function( [INFO] [stdout] 1097 | | SPAN, [INFO] [stdout] 1098 | | false, [INFO] [stdout] 1099 | | false, [INFO] [stdout] ... | [INFO] [stdout] 1133 | | .into(), [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 1096 ~ ast.expression_arrow_function( [INFO] [stdout] 1097 + SPAN, [INFO] [stdout] 1098 + false, [INFO] [stdout] 1099 + false, [INFO] [stdout] 1100 + NONE, [INFO] [stdout] 1101 + ast.alloc_formal_parameters( [INFO] [stdout] 1102 + SPAN, [INFO] [stdout] 1103 + FormalParameterKind::FormalParameter, [INFO] [stdout] 1104 + ast.vec(), [INFO] [stdout] 1105 + NONE, [INFO] [stdout] 1106 + ), [INFO] [stdout] 1107 + NONE, [INFO] [stdout] 1108 + ast.alloc_function_body( [INFO] [stdout] 1109 + SPAN, [INFO] [stdout] 1110 + ast.vec(), [INFO] [stdout] 1111 + ast.vec1( [INFO] [stdout] 1112 + ast.statement_return( [INFO] [stdout] 1113 + SPAN, [INFO] [stdout] 1114 + Some( [INFO] [stdout] 1115 + ast.expression_call( [INFO] [stdout] 1116 + SPAN, [INFO] [stdout] 1117 + ast.expression_identifier( [INFO] [stdout] 1118 + SPAN, [INFO] [stdout] 1119 + ast.ident(LUX_PROPS_ID_RUNTIME), [INFO] [stdout] 1120 + ), [INFO] [stdout] 1121 + NONE, [INFO] [stdout] 1122 + ast.vec1( [INFO] [stdout] 1123 + ast.expression_identifier(SPAN, ast.ident("$$renderer")) [INFO] [stdout] 1124 + .into(), [INFO] [stdout] 1125 + ), [INFO] [stdout] 1126 + false, [INFO] [stdout] 1127 + ), [INFO] [stdout] 1128 + ), [INFO] [stdout] 1129 + ), [INFO] [stdout] 1130 + ), [INFO] [stdout] 1131 + ), [INFO] [stdout] 1132 ~ ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `oxc_ast::ast::Expression<'_>` [INFO] [stdout] --> crates/lux-transformer/src/js/component/exports.rs:1096:13 [INFO] [stdout] | [INFO] [stdout] 1096 | / ast.expression_arrow_function( [INFO] [stdout] 1097 | | SPAN, [INFO] [stdout] 1098 | | false, [INFO] [stdout] 1099 | | false, [INFO] [stdout] ... | [INFO] [stdout] 1133 | | .into(), [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 1096 ~ ast.expression_arrow_function( [INFO] [stdout] 1097 + SPAN, [INFO] [stdout] 1098 + false, [INFO] [stdout] 1099 + false, [INFO] [stdout] 1100 + NONE, [INFO] [stdout] 1101 + ast.alloc_formal_parameters( [INFO] [stdout] 1102 + SPAN, [INFO] [stdout] 1103 + FormalParameterKind::FormalParameter, [INFO] [stdout] 1104 + ast.vec(), [INFO] [stdout] 1105 + NONE, [INFO] [stdout] 1106 + ), [INFO] [stdout] 1107 + NONE, [INFO] [stdout] 1108 + ast.alloc_function_body( [INFO] [stdout] 1109 + SPAN, [INFO] [stdout] 1110 + ast.vec(), [INFO] [stdout] 1111 + ast.vec1( [INFO] [stdout] 1112 + ast.statement_return( [INFO] [stdout] 1113 + SPAN, [INFO] [stdout] 1114 + Some( [INFO] [stdout] 1115 + ast.expression_call( [INFO] [stdout] 1116 + SPAN, [INFO] [stdout] 1117 + ast.expression_identifier( [INFO] [stdout] 1118 + SPAN, [INFO] [stdout] 1119 + ast.ident(LUX_PROPS_ID_RUNTIME), [INFO] [stdout] 1120 + ), [INFO] [stdout] 1121 + NONE, [INFO] [stdout] 1122 + ast.vec1( [INFO] [stdout] 1123 + ast.expression_identifier(SPAN, ast.ident("$$renderer")) [INFO] [stdout] 1124 + .into(), [INFO] [stdout] 1125 + ), [INFO] [stdout] 1126 + false, [INFO] [stdout] 1127 + ), [INFO] [stdout] 1128 + ), [INFO] [stdout] 1129 + ), [INFO] [stdout] 1130 + ), [INFO] [stdout] 1131 + ), [INFO] [stdout] 1132 ~ ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-transformer/src/js/component/script.rs:698:13 [INFO] [stdout] | [INFO] [stdout] 698 | / for element in &pattern.elements { [INFO] [stdout] 699 | | if let Some(element) = element { [INFO] [stdout] 700 | | collect_assignment_target_maybe_default_names(element, names); [INFO] [stdout] 701 | | } [INFO] [stdout] 702 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-transformer/src/js/component/script.rs:699:17 [INFO] [stdout] | [INFO] [stdout] 699 | / if let Some(element) = element { [INFO] [stdout] 700 | | collect_assignment_target_maybe_default_names(element, names); [INFO] [stdout] 701 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 698 ~ for element in (&pattern.elements).into_iter().flatten() { [INFO] [stdout] 699 + collect_assignment_target_maybe_default_names(element, names); [INFO] [stdout] 700 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-transformer/src/js/component/script.rs:744:13 [INFO] [stdout] | [INFO] [stdout] 744 | / for element in &pattern.elements { [INFO] [stdout] 745 | | if let Some(element) = element { [INFO] [stdout] 746 | | collect_assignment_target_maybe_default_names(element, names); [INFO] [stdout] 747 | | } [INFO] [stdout] 748 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-transformer/src/js/component/script.rs:745:17 [INFO] [stdout] | [INFO] [stdout] 745 | / if let Some(element) = element { [INFO] [stdout] 746 | | collect_assignment_target_maybe_default_names(element, names); [INFO] [stdout] 747 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 744 ~ for element in (&pattern.elements).into_iter().flatten() { [INFO] [stdout] 745 + collect_assignment_target_maybe_default_names(element, names); [INFO] [stdout] 746 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-transformer/src/js/component/script.rs:860:13 [INFO] [stdout] | [INFO] [stdout] 860 | / for element in &pattern.elements { [INFO] [stdout] 861 | | if let Some(element) = element { [INFO] [stdout] 862 | | collect_binding_pattern_names(element, names); [INFO] [stdout] 863 | | } [INFO] [stdout] 864 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-transformer/src/js/component/script.rs:861:17 [INFO] [stdout] | [INFO] [stdout] 861 | / if let Some(element) = element { [INFO] [stdout] 862 | | collect_binding_pattern_names(element, names); [INFO] [stdout] 863 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 860 ~ for element in (&pattern.elements).into_iter().flatten() { [INFO] [stdout] 861 + collect_binding_pattern_names(element, names); [INFO] [stdout] 862 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/component/mod.rs:407:9 [INFO] [stdout] | [INFO] [stdout] 407 | / if import_spans.contains(&(declaration.span.start, declaration.span.end)) { [INFO] [stdout] 408 | | if let Some(import_statement) = sanitize_import_statement(ast, declaration) { [INFO] [stdout] 409 | | body.push(import_statement); [INFO] [stdout] 410 | | } [INFO] [stdout] 411 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 407 ~ if import_spans.contains(&(declaration.span.start, declaration.span.end)) [INFO] [stdout] 408 ~ && let Some(import_statement) = sanitize_import_statement(ast, declaration) { [INFO] [stdout] 409 | body.push(import_statement); [INFO] [stdout] 410 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-transformer/src/js/component/script.rs:698:13 [INFO] [stdout] | [INFO] [stdout] 698 | / for element in &pattern.elements { [INFO] [stdout] 699 | | if let Some(element) = element { [INFO] [stdout] 700 | | collect_assignment_target_maybe_default_names(element, names); [INFO] [stdout] 701 | | } [INFO] [stdout] 702 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-transformer/src/js/component/script.rs:699:17 [INFO] [stdout] | [INFO] [stdout] 699 | / if let Some(element) = element { [INFO] [stdout] 700 | | collect_assignment_target_maybe_default_names(element, names); [INFO] [stdout] 701 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 698 ~ for element in (&pattern.elements).into_iter().flatten() { [INFO] [stdout] 699 + collect_assignment_target_maybe_default_names(element, names); [INFO] [stdout] 700 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-transformer/src/js/component/script.rs:744:13 [INFO] [stdout] | [INFO] [stdout] 744 | / for element in &pattern.elements { [INFO] [stdout] 745 | | if let Some(element) = element { [INFO] [stdout] 746 | | collect_assignment_target_maybe_default_names(element, names); [INFO] [stdout] 747 | | } [INFO] [stdout] 748 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-transformer/src/js/component/script.rs:745:17 [INFO] [stdout] | [INFO] [stdout] 745 | / if let Some(element) = element { [INFO] [stdout] 746 | | collect_assignment_target_maybe_default_names(element, names); [INFO] [stdout] 747 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 744 ~ for element in (&pattern.elements).into_iter().flatten() { [INFO] [stdout] 745 + collect_assignment_target_maybe_default_names(element, names); [INFO] [stdout] 746 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-transformer/src/js/component/script.rs:860:13 [INFO] [stdout] | [INFO] [stdout] 860 | / for element in &pattern.elements { [INFO] [stdout] 861 | | if let Some(element) = element { [INFO] [stdout] 862 | | collect_binding_pattern_names(element, names); [INFO] [stdout] 863 | | } [INFO] [stdout] 864 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-transformer/src/js/component/script.rs:861:17 [INFO] [stdout] | [INFO] [stdout] 861 | / if let Some(element) = element { [INFO] [stdout] 862 | | collect_binding_pattern_names(element, names); [INFO] [stdout] 863 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 860 ~ for element in (&pattern.elements).into_iter().flatten() { [INFO] [stdout] 861 + collect_binding_pattern_names(element, names); [INFO] [stdout] 862 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> crates/lux-transformer/src/js/template/css_scope.rs:176:13 [INFO] [stdout] | [INFO] [stdout] 176 | / static_class_tokens(&attribute.value) [INFO] [stdout] 177 | | .iter() [INFO] [stdout] 178 | | .any(|token| *token == selector.name) [INFO] [stdout] | |_____________________________________________________^ help: try: `static_class_tokens(&attribute.value).contains(&selector.name)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/component/mod.rs:407:9 [INFO] [stdout] | [INFO] [stdout] 407 | / if import_spans.contains(&(declaration.span.start, declaration.span.end)) { [INFO] [stdout] 408 | | if let Some(import_statement) = sanitize_import_statement(ast, declaration) { [INFO] [stdout] 409 | | body.push(import_statement); [INFO] [stdout] 410 | | } [INFO] [stdout] 411 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 407 ~ if import_spans.contains(&(declaration.span.start, declaration.span.end)) [INFO] [stdout] 408 ~ && let Some(import_statement) = sanitize_import_statement(ast, declaration) { [INFO] [stdout] 409 | body.push(import_statement); [INFO] [stdout] 410 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-transformer/src/js/template/render/element.rs:312:17 [INFO] [stdout] | [INFO] [stdout] 312 | / if is_event_attribute_name(attribute.name) { [INFO] [stdout] 313 | | match attribute.name { [INFO] [stdout] 314 | | "onload" => onload = true, [INFO] [stdout] 315 | | "onerror" => onerror = true, [INFO] [stdout] ... | [INFO] [stdout] 318 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 311 ~ AttributeNode::Attribute(attribute) [INFO] [stdout] 312 ~ if is_event_attribute_name(attribute.name) => { [INFO] [stdout] 313 | match attribute.name { [INFO] [stdout] ... [INFO] [stdout] 317 | } [INFO] [stdout] 318 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> crates/lux-transformer/src/js/template/css_scope.rs:176:13 [INFO] [stdout] | [INFO] [stdout] 176 | / static_class_tokens(&attribute.value) [INFO] [stdout] 177 | | .iter() [INFO] [stdout] 178 | | .any(|token| *token == selector.name) [INFO] [stdout] | |_____________________________________________________^ help: try: `static_class_tokens(&attribute.value).contains(&selector.name)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/lux-transformer/src/js/template/render/element.rs:312:17 [INFO] [stdout] | [INFO] [stdout] 312 | / if is_event_attribute_name(attribute.name) { [INFO] [stdout] 313 | | match attribute.name { [INFO] [stdout] 314 | | "onload" => onload = true, [INFO] [stdout] 315 | | "onerror" => onerror = true, [INFO] [stdout] ... | [INFO] [stdout] 318 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 311 ~ AttributeNode::Attribute(attribute) [INFO] [stdout] 312 ~ if is_event_attribute_name(attribute.name) => { [INFO] [stdout] 313 | match attribute.name { [INFO] [stdout] ... [INFO] [stdout] 317 | } [INFO] [stdout] 318 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/attributes.rs:525:1 [INFO] [stdout] | [INFO] [stdout] 525 | / fn render_merged_spread_attribute_expression<'a>( [INFO] [stdout] 526 | | ast: AstBuilder<'a>, [INFO] [stdout] 527 | | spread_expression: Expression<'a>, [INFO] [stdout] 528 | | class_attribute: Option<&Attribute<'_>>, [INFO] [stdout] ... | [INFO] [stdout] 533 | | scope_class: Option<&str>, [INFO] [stdout] 534 | | ) -> Expression<'a> { [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/attributes.rs:748:5 [INFO] [stdout] | [INFO] [stdout] 748 | / if let Expression::SequenceExpression(sequence) = strip_typescript_wrappers(bind_expression) { [INFO] [stdout] 749 | | if let (Some(getter), Some(setter), None) = ( [INFO] [stdout] 750 | | sequence.expressions.first(), [INFO] [stdout] 751 | | sequence.expressions.get(1), [INFO] [stdout] ... | [INFO] [stdout] 759 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 748 ~ if let Expression::SequenceExpression(sequence) = strip_typescript_wrappers(bind_expression) [INFO] [stdout] 749 ~ && let (Some(getter), Some(setter), None) = ( [INFO] [stdout] 750 | sequence.expressions.first(), [INFO] [stdout] ... [INFO] [stdout] 757 | ); [INFO] [stdout] 758 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/attributes.rs:774:13 [INFO] [stdout] | [INFO] [stdout] 774 | / !matches!(element_name, Some("select")) [INFO] [stdout] 775 | | && !(matches!(element_name, Some("input")) && is_file_input(attributes)) [INFO] [stdout] | |________________________________________________________________________________________^ help: try: `!(matches!(element_name, Some("select")) || matches!(element_name, Some("input")) && is_file_input(attributes))` [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: this function has too many arguments (8/7) [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/attributes.rs:525:1 [INFO] [stdout] | [INFO] [stdout] 525 | / fn render_merged_spread_attribute_expression<'a>( [INFO] [stdout] 526 | | ast: AstBuilder<'a>, [INFO] [stdout] 527 | | spread_expression: Expression<'a>, [INFO] [stdout] 528 | | class_attribute: Option<&Attribute<'_>>, [INFO] [stdout] ... | [INFO] [stdout] 533 | | scope_class: Option<&str>, [INFO] [stdout] 534 | | ) -> Expression<'a> { [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/attributes.rs:748:5 [INFO] [stdout] | [INFO] [stdout] 748 | / if let Expression::SequenceExpression(sequence) = strip_typescript_wrappers(bind_expression) { [INFO] [stdout] 749 | | if let (Some(getter), Some(setter), None) = ( [INFO] [stdout] 750 | | sequence.expressions.first(), [INFO] [stdout] 751 | | sequence.expressions.get(1), [INFO] [stdout] ... | [INFO] [stdout] 759 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 748 ~ if let Expression::SequenceExpression(sequence) = strip_typescript_wrappers(bind_expression) [INFO] [stdout] 749 ~ && let (Some(getter), Some(setter), None) = ( [INFO] [stdout] 750 | sequence.expressions.first(), [INFO] [stdout] ... [INFO] [stdout] 757 | ); [INFO] [stdout] 758 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/attributes.rs:774:13 [INFO] [stdout] | [INFO] [stdout] 774 | / !matches!(element_name, Some("select")) [INFO] [stdout] 775 | | && !(matches!(element_name, Some("input")) && is_file_input(attributes)) [INFO] [stdout] | |________________________________________________________________________________________^ help: try: `!(matches!(element_name, Some("select")) || matches!(element_name, Some("input")) && is_file_input(attributes))` [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: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:125:5 [INFO] [stdout] | [INFO] [stdout] 125 | / if let Some(bind_expression) = bind_this_expression { [INFO] [stdout] 126 | | if let Some(bind_statement) = [INFO] [stdout] 127 | | build_component_bind_this_statement(ast, &bind_expression, scope) [INFO] [stdout] ... | [INFO] [stdout] 131 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 125 ~ if let Some(bind_expression) = bind_this_expression [INFO] [stdout] 126 ~ && let Some(bind_statement) = [INFO] [stdout] 127 | build_component_bind_this_statement(ast, &bind_expression, scope) [INFO] [stdout] 128 | { [INFO] [stdout] 129 | statements.push(bind_statement); [INFO] [stdout] 130 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:294:5 [INFO] [stdout] | [INFO] [stdout] 294 | / if let Expression::SequenceExpression(sequence) = strip_typescript_wrappers(bind_expression) { [INFO] [stdout] 295 | | if let (Some(getter), Some(setter), None) = ( [INFO] [stdout] 296 | | sequence.expressions.first(), [INFO] [stdout] 297 | | sequence.expressions.get(1), [INFO] [stdout] ... | [INFO] [stdout] 320 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 294 ~ if let Expression::SequenceExpression(sequence) = strip_typescript_wrappers(bind_expression) [INFO] [stdout] 295 ~ && let (Some(getter), Some(setter), None) = ( [INFO] [stdout] 296 | sequence.expressions.first(), [INFO] [stdout] ... [INFO] [stdout] 318 | return (getter_expression, setter_statement); [INFO] [stdout] 319 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:348:5 [INFO] [stdout] | [INFO] [stdout] 348 | / if let Expression::SequenceExpression(sequence) = strip_typescript_wrappers(expression) { [INFO] [stdout] 349 | | if let (Some(_getter), Some(setter), None) = ( [INFO] [stdout] 350 | | sequence.expressions.first(), [INFO] [stdout] 351 | | sequence.expressions.get(1), [INFO] [stdout] ... | [INFO] [stdout] 371 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 348 ~ if let Expression::SequenceExpression(sequence) = strip_typescript_wrappers(expression) [INFO] [stdout] 349 ~ && let (Some(_getter), Some(setter), None) = ( [INFO] [stdout] 350 | sequence.expressions.first(), [INFO] [stdout] ... [INFO] [stdout] 369 | ); [INFO] [stdout] 370 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:700:9 [INFO] [stdout] | [INFO] [stdout] 700 | / if let AttributeNode::LetDirective(directive) = attribute { [INFO] [stdout] 701 | | if let Some(binding) = slot_let_binding(directive) { [INFO] [stdout] 702 | | if !bindings [INFO] [stdout] 703 | | .iter() [INFO] [stdout] ... | [INFO] [stdout] 709 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 700 ~ if let AttributeNode::LetDirective(directive) = attribute [INFO] [stdout] 701 ~ && let Some(binding) = slot_let_binding(directive) { [INFO] [stdout] 702 | if !bindings [INFO] [stdout] ... [INFO] [stdout] 707 | } [INFO] [stdout] 708 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:701:13 [INFO] [stdout] | [INFO] [stdout] 701 | / if let Some(binding) = slot_let_binding(directive) { [INFO] [stdout] 702 | | if !bindings [INFO] [stdout] 703 | | .iter() [INFO] [stdout] 704 | | .any(|existing: &SlotLetBinding<'a>| existing.local_name == binding.local_name) [INFO] [stdout] ... | [INFO] [stdout] 708 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 701 ~ if let Some(binding) = slot_let_binding(directive) [INFO] [stdout] 702 ~ && !bindings [INFO] [stdout] 703 | .iter() [INFO] [stdout] ... [INFO] [stdout] 706 | bindings.push(binding); [INFO] [stdout] 707 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:125:5 [INFO] [stdout] | [INFO] [stdout] 125 | / if let Some(bind_expression) = bind_this_expression { [INFO] [stdout] 126 | | if let Some(bind_statement) = [INFO] [stdout] 127 | | build_component_bind_this_statement(ast, &bind_expression, scope) [INFO] [stdout] ... | [INFO] [stdout] 131 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 125 ~ if let Some(bind_expression) = bind_this_expression [INFO] [stdout] 126 ~ && let Some(bind_statement) = [INFO] [stdout] 127 | build_component_bind_this_statement(ast, &bind_expression, scope) [INFO] [stdout] 128 | { [INFO] [stdout] 129 | statements.push(bind_statement); [INFO] [stdout] 130 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:863:9 [INFO] [stdout] | [INFO] [stdout] 863 | / if let AttributeNode::LetDirective(directive) = attribute { [INFO] [stdout] 864 | | if let Some(binding) = slot_let_binding(directive) { [INFO] [stdout] 865 | | if !bindings [INFO] [stdout] 866 | | .iter() [INFO] [stdout] ... | [INFO] [stdout] 872 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 863 ~ if let AttributeNode::LetDirective(directive) = attribute [INFO] [stdout] 864 ~ && let Some(binding) = slot_let_binding(directive) { [INFO] [stdout] 865 | if !bindings [INFO] [stdout] ... [INFO] [stdout] 870 | } [INFO] [stdout] 871 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:864:13 [INFO] [stdout] | [INFO] [stdout] 864 | / if let Some(binding) = slot_let_binding(directive) { [INFO] [stdout] 865 | | if !bindings [INFO] [stdout] 866 | | .iter() [INFO] [stdout] 867 | | .any(|existing: &SlotLetBinding<'a>| existing.local_name == binding.local_name) [INFO] [stdout] ... | [INFO] [stdout] 871 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 864 ~ if let Some(binding) = slot_let_binding(directive) [INFO] [stdout] 865 ~ && !bindings [INFO] [stdout] 866 | .iter() [INFO] [stdout] ... [INFO] [stdout] 869 | bindings.push(binding); [INFO] [stdout] 870 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:919:13 [INFO] [stdout] | [INFO] [stdout] 919 | / if let AttributeValue::Sequence(chunks) = &attribute.value { [INFO] [stdout] 920 | | if chunks.len() == 1 { [INFO] [stdout] 921 | | if let TextOrExpressionTag::Text(text) = &chunks[0] { [INFO] [stdout] 922 | | return Some(text.data); [INFO] [stdout] ... | [INFO] [stdout] 925 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 919 ~ if let AttributeValue::Sequence(chunks) = &attribute.value [INFO] [stdout] 920 ~ && chunks.len() == 1 { [INFO] [stdout] 921 | if let TextOrExpressionTag::Text(text) = &chunks[0] { [INFO] [stdout] 922 | return Some(text.data); [INFO] [stdout] 923 | } [INFO] [stdout] 924 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:920:17 [INFO] [stdout] | [INFO] [stdout] 920 | / if chunks.len() == 1 { [INFO] [stdout] 921 | | if let TextOrExpressionTag::Text(text) = &chunks[0] { [INFO] [stdout] 922 | | return Some(text.data); [INFO] [stdout] 923 | | } [INFO] [stdout] 924 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 920 ~ if chunks.len() == 1 [INFO] [stdout] 921 ~ && let TextOrExpressionTag::Text(text) = &chunks[0] { [INFO] [stdout] 922 | return Some(text.data); [INFO] [stdout] 923 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:294:5 [INFO] [stdout] | [INFO] [stdout] 294 | / if let Expression::SequenceExpression(sequence) = strip_typescript_wrappers(bind_expression) { [INFO] [stdout] 295 | | if let (Some(getter), Some(setter), None) = ( [INFO] [stdout] 296 | | sequence.expressions.first(), [INFO] [stdout] 297 | | sequence.expressions.get(1), [INFO] [stdout] ... | [INFO] [stdout] 320 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 294 ~ if let Expression::SequenceExpression(sequence) = strip_typescript_wrappers(bind_expression) [INFO] [stdout] 295 ~ && let (Some(getter), Some(setter), None) = ( [INFO] [stdout] 296 | sequence.expressions.first(), [INFO] [stdout] ... [INFO] [stdout] 318 | return (getter_expression, setter_statement); [INFO] [stdout] 319 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:348:5 [INFO] [stdout] | [INFO] [stdout] 348 | / if let Expression::SequenceExpression(sequence) = strip_typescript_wrappers(expression) { [INFO] [stdout] 349 | | if let (Some(_getter), Some(setter), None) = ( [INFO] [stdout] 350 | | sequence.expressions.first(), [INFO] [stdout] 351 | | sequence.expressions.get(1), [INFO] [stdout] ... | [INFO] [stdout] 371 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 348 ~ if let Expression::SequenceExpression(sequence) = strip_typescript_wrappers(expression) [INFO] [stdout] 349 ~ && let (Some(_getter), Some(setter), None) = ( [INFO] [stdout] 350 | sequence.expressions.first(), [INFO] [stdout] ... [INFO] [stdout] 369 | ); [INFO] [stdout] 370 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/elements.rs:236:5 [INFO] [stdout] | [INFO] [stdout] 236 | / if let Expression::SequenceExpression(sequence) = expression { [INFO] [stdout] 237 | | if let (Some(getter), Some(_setter), None) = ( [INFO] [stdout] 238 | | sequence.expressions.first(), [INFO] [stdout] 239 | | sequence.expressions.get(1), [INFO] [stdout] ... | [INFO] [stdout] 244 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 236 ~ if let Expression::SequenceExpression(sequence) = expression [INFO] [stdout] 237 ~ && let (Some(getter), Some(_setter), None) = ( [INFO] [stdout] 238 | sequence.expressions.first(), [INFO] [stdout] ... [INFO] [stdout] 242 | return resolve_expression(ast, getter.clone_in(ast.allocator), scope); [INFO] [stdout] 243 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:700:9 [INFO] [stdout] | [INFO] [stdout] 700 | / if let AttributeNode::LetDirective(directive) = attribute { [INFO] [stdout] 701 | | if let Some(binding) = slot_let_binding(directive) { [INFO] [stdout] 702 | | if !bindings [INFO] [stdout] 703 | | .iter() [INFO] [stdout] ... | [INFO] [stdout] 709 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 700 ~ if let AttributeNode::LetDirective(directive) = attribute [INFO] [stdout] 701 ~ && let Some(binding) = slot_let_binding(directive) { [INFO] [stdout] 702 | if !bindings [INFO] [stdout] ... [INFO] [stdout] 707 | } [INFO] [stdout] 708 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:701:13 [INFO] [stdout] | [INFO] [stdout] 701 | / if let Some(binding) = slot_let_binding(directive) { [INFO] [stdout] 702 | | if !bindings [INFO] [stdout] 703 | | .iter() [INFO] [stdout] 704 | | .any(|existing: &SlotLetBinding<'a>| existing.local_name == binding.local_name) [INFO] [stdout] ... | [INFO] [stdout] 708 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 701 ~ if let Some(binding) = slot_let_binding(directive) [INFO] [stdout] 702 ~ && !bindings [INFO] [stdout] 703 | .iter() [INFO] [stdout] ... [INFO] [stdout] 706 | bindings.push(binding); [INFO] [stdout] 707 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:863:9 [INFO] [stdout] | [INFO] [stdout] 863 | / if let AttributeNode::LetDirective(directive) = attribute { [INFO] [stdout] 864 | | if let Some(binding) = slot_let_binding(directive) { [INFO] [stdout] 865 | | if !bindings [INFO] [stdout] 866 | | .iter() [INFO] [stdout] ... | [INFO] [stdout] 872 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 863 ~ if let AttributeNode::LetDirective(directive) = attribute [INFO] [stdout] 864 ~ && let Some(binding) = slot_let_binding(directive) { [INFO] [stdout] 865 | if !bindings [INFO] [stdout] ... [INFO] [stdout] 870 | } [INFO] [stdout] 871 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:864:13 [INFO] [stdout] | [INFO] [stdout] 864 | / if let Some(binding) = slot_let_binding(directive) { [INFO] [stdout] 865 | | if !bindings [INFO] [stdout] 866 | | .iter() [INFO] [stdout] 867 | | .any(|existing: &SlotLetBinding<'a>| existing.local_name == binding.local_name) [INFO] [stdout] ... | [INFO] [stdout] 871 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 864 ~ if let Some(binding) = slot_let_binding(directive) [INFO] [stdout] 865 ~ && !bindings [INFO] [stdout] 866 | .iter() [INFO] [stdout] ... [INFO] [stdout] 869 | bindings.push(binding); [INFO] [stdout] 870 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/elements.rs:519:9 [INFO] [stdout] | [INFO] [stdout] 519 | / if let AttributeNode::Attribute(attribute) = attribute { [INFO] [stdout] 520 | | if attribute.name == "name" { [INFO] [stdout] 521 | | return attribute_value_to_component_prop_expression(ast, &attribute.value, scope); [INFO] [stdout] 522 | | } [INFO] [stdout] 523 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 519 ~ if let AttributeNode::Attribute(attribute) = attribute [INFO] [stdout] 520 ~ && attribute.name == "name" { [INFO] [stdout] 521 | return attribute_value_to_component_prop_expression(ast, &attribute.value, scope); [INFO] [stdout] 522 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:919:13 [INFO] [stdout] | [INFO] [stdout] 919 | / if let AttributeValue::Sequence(chunks) = &attribute.value { [INFO] [stdout] 920 | | if chunks.len() == 1 { [INFO] [stdout] 921 | | if let TextOrExpressionTag::Text(text) = &chunks[0] { [INFO] [stdout] 922 | | return Some(text.data); [INFO] [stdout] ... | [INFO] [stdout] 925 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 919 ~ if let AttributeValue::Sequence(chunks) = &attribute.value [INFO] [stdout] 920 ~ && chunks.len() == 1 { [INFO] [stdout] 921 | if let TextOrExpressionTag::Text(text) = &chunks[0] { [INFO] [stdout] 922 | return Some(text.data); [INFO] [stdout] 923 | } [INFO] [stdout] 924 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/components.rs:920:17 [INFO] [stdout] | [INFO] [stdout] 920 | / if chunks.len() == 1 { [INFO] [stdout] 921 | | if let TextOrExpressionTag::Text(text) = &chunks[0] { [INFO] [stdout] 922 | | return Some(text.data); [INFO] [stdout] 923 | | } [INFO] [stdout] 924 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 920 ~ if chunks.len() == 1 [INFO] [stdout] 921 ~ && let TextOrExpressionTag::Text(text) = &chunks[0] { [INFO] [stdout] 922 | return Some(text.data); [INFO] [stdout] 923 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/elements.rs:236:5 [INFO] [stdout] | [INFO] [stdout] 236 | / if let Expression::SequenceExpression(sequence) = expression { [INFO] [stdout] 237 | | if let (Some(getter), Some(_setter), None) = ( [INFO] [stdout] 238 | | sequence.expressions.first(), [INFO] [stdout] 239 | | sequence.expressions.get(1), [INFO] [stdout] ... | [INFO] [stdout] 244 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 236 ~ if let Expression::SequenceExpression(sequence) = expression [INFO] [stdout] 237 ~ && let (Some(getter), Some(_setter), None) = ( [INFO] [stdout] 238 | sequence.expressions.first(), [INFO] [stdout] ... [INFO] [stdout] 242 | return resolve_expression(ast, getter.clone_in(ast.allocator), scope); [INFO] [stdout] 243 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/scope.rs:194:13 [INFO] [stdout] | [INFO] [stdout] 194 | / for element in &pattern.elements { [INFO] [stdout] 195 | | if let Some(element) = element { [INFO] [stdout] 196 | | collect_binding_pattern_names(element, names); [INFO] [stdout] 197 | | } [INFO] [stdout] 198 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/scope.rs:195:17 [INFO] [stdout] | [INFO] [stdout] 195 | / if let Some(element) = element { [INFO] [stdout] 196 | | collect_binding_pattern_names(element, names); [INFO] [stdout] 197 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 194 ~ for element in (&pattern.elements).into_iter().flatten() { [INFO] [stdout] 195 + collect_binding_pattern_names(element, names); [INFO] [stdout] 196 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/elements.rs:519:9 [INFO] [stdout] | [INFO] [stdout] 519 | / if let AttributeNode::Attribute(attribute) = attribute { [INFO] [stdout] 520 | | if attribute.name == "name" { [INFO] [stdout] 521 | | return attribute_value_to_component_prop_expression(ast, &attribute.value, scope); [INFO] [stdout] 522 | | } [INFO] [stdout] 523 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 519 ~ if let AttributeNode::Attribute(attribute) = attribute [INFO] [stdout] 520 ~ && attribute.name == "name" { [INFO] [stdout] 521 | return attribute_value_to_component_prop_expression(ast, &attribute.value, scope); [INFO] [stdout] 522 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/scope.rs:194:13 [INFO] [stdout] | [INFO] [stdout] 194 | / for element in &pattern.elements { [INFO] [stdout] 195 | | if let Some(element) = element { [INFO] [stdout] 196 | | collect_binding_pattern_names(element, names); [INFO] [stdout] 197 | | } [INFO] [stdout] 198 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> crates/lux-transformer/src/js/template/runtime/scope.rs:195:17 [INFO] [stdout] | [INFO] [stdout] 195 | / if let Some(element) = element { [INFO] [stdout] 196 | | collect_binding_pattern_names(element, names); [INFO] [stdout] 197 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 194 ~ for element in (&pattern.elements).into_iter().flatten() { [INFO] [stdout] 195 + collect_binding_pattern_names(element, names); [INFO] [stdout] 196 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> crates/lux-transformer/benches/svelte_compare_transformer.rs:141:27 [INFO] [stdout] | [INFO] [stdout] 141 | .output_directory(&*workspace_root.join("benchmarks/criterion/lux-transformer")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&workspace_root.join("benchmarks/criterion/lux-transformer")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> crates/lux-node/src/lib.rs:483:9 [INFO] [stdout] | [INFO] [stdout] 483 | assert_eq!(output.metadata_runes, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 483 - assert_eq!(output.metadata_runes, false); [INFO] [stdout] 483 + assert!(!output.metadata_runes); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.16s [INFO] running `Command { std: "docker" "inspect" "a5d7e065ac4f5af35adf92827599c2302b10768ccb38fde9b3cd0c43fa3891c5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a5d7e065ac4f5af35adf92827599c2302b10768ccb38fde9b3cd0c43fa3891c5", kill_on_drop: false }` [INFO] [stdout] a5d7e065ac4f5af35adf92827599c2302b10768ccb38fde9b3cd0c43fa3891c5