[INFO] cloning repository https://github.com/asLody/arm64jit [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/asLody/arm64jit" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FasLody%2Farm64jit", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FasLody%2Farm64jit'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 733f0406948324d72ad74e759f7d08f8ecfeb83d [INFO] linting asLody/arm64jit against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FasLody%2Farm64jit" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/asLody/arm64jit [INFO] finished tweaking git repo https://github.com/asLody/arm64jit [INFO] tweaked toml for git repo https://github.com/asLody/arm64jit written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/asLody/arm64jit 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/asLody/arm64jit 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 capstone v0.14.0 [INFO] [stderr] Downloaded capstone-sys v0.18.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 29cb06bc607e460bb28c40cd0090db3bbfc81c55524a49a35ee3211f60ed9bda [INFO] running `Command { std: "docker" "start" "-a" "29cb06bc607e460bb28c40cd0090db3bbfc81c55524a49a35ee3211f60ed9bda", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "29cb06bc607e460bb28c40cd0090db3bbfc81c55524a49a35ee3211f60ed9bda", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "29cb06bc607e460bb28c40cd0090db3bbfc81c55524a49a35ee3211f60ed9bda", kill_on_drop: false }` [INFO] [stdout] 29cb06bc607e460bb28c40cd0090db3bbfc81c55524a49a35ee3211f60ed9bda [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8bcb0338aea8a846a76ca7e0f847fa60414943387013fe18307182229524ea9b [INFO] running `Command { std: "docker" "start" "-a" "8bcb0338aea8a846a76ca7e0f847fa60414943387013fe18307182229524ea9b", kill_on_drop: false }` [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Checking memchr v2.8.0 [INFO] [stderr] Checking jit-core v0.1.8 (/opt/rustwide/workdir/crates/jit-core) [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Compiling syn v2.0.116 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking regex-syntax v0.8.10 [INFO] [stderr] Checking ciborium-io v0.2.2 [INFO] [stderr] Checking clap_builder v4.5.60 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stdout] warning: this `let...else` may be rewritten with the `?` operator [INFO] [stdout] --> crates/jit-core/src/engine.rs:1046:17 [INFO] [stdout] | [INFO] [stdout] 1046 | / let Some(rel_idx) = arr[arr_idx..arr_len] [INFO] [stdout] 1047 | | .iter() [INFO] [stdout] 1048 | | .position(|operand| operand.kind == expected_kind) [INFO] [stdout] 1049 | | else { [INFO] [stdout] 1050 | | return None; [INFO] [stdout] 1051 | | }; [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] help: replace it with [INFO] [stdout] | [INFO] [stdout] 1046 ~ let rel_idx = arr[arr_idx..arr_len] [INFO] [stdout] 1047 + .iter() [INFO] [stdout] 1048 + .position(|operand| operand.kind == expected_kind)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking cast v0.3.0 [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit-core/src/engine.rs:1267:1 [INFO] [stdout] | [INFO] [stdout] 1267 | / pub fn encode_by_spec_operands( [INFO] [stdout] 1268 | | spec: &EncodingSpec, [INFO] [stdout] 1269 | | operands: &[Operand], [INFO] [stdout] 1270 | | ) -> Result { [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] = note: `#[warn(clippy::double_must_use)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit-core/src/engine.rs:1297:1 [INFO] [stdout] | [INFO] [stdout] 1297 | / pub fn encode_candidates( [INFO] [stdout] 1298 | | specs: &[EncodingSpec], [INFO] [stdout] 1299 | | candidate_indices: &[u16], [INFO] [stdout] 1300 | | operands: &[Operand], [INFO] [stdout] 1301 | | ) -> Result { [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit-core/src/engine.rs:1386:1 [INFO] [stdout] | [INFO] [stdout] 1386 | / pub fn operand_shape_keys( [INFO] [stdout] 1387 | | operands: &[Operand], [INFO] [stdout] 1388 | | out: &mut [OperandShapeKey], [INFO] [stdout] 1389 | | ) -> Result { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit-core/src/engine.rs:1456:1 [INFO] [stdout] | [INFO] [stdout] 1456 | pub fn encode_by_spec(spec: &EncodingSpec, args: &[i64]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/jit-core/src/engine.rs:1518:9 [INFO] [stdout] | [INFO] [stdout] 1518 | / if let Some(plan) = split { [INFO] [stdout] 1519 | | if slot == plan.first_slot { [INFO] [stdout] 1520 | | out[out_len] = OperandConstraintKind::Immediate; [INFO] [stdout] 1521 | | out_len += 1; [INFO] [stdout] ... | [INFO] [stdout] 1525 | | } [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] 1518 ~ if let Some(plan) = split [INFO] [stdout] 1519 ~ && slot == plan.first_slot { [INFO] [stdout] 1520 | out[out_len] = OperandConstraintKind::Immediate; [INFO] [stdout] ... [INFO] [stdout] 1523 | continue; [INFO] [stdout] 1524 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/jit-core/src/engine.rs:1614:5 [INFO] [stdout] | [INFO] [stdout] 1614 | expected.sort_by(|lhs, rhs| lhs.slots.len().cmp(&rhs.slots.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1614 - expected.sort_by(|lhs, rhs| lhs.slots.len().cmp(&rhs.slots.len())); [INFO] [stdout] 1614 + expected.sort_by_key(|lhs| lhs.slots.len()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit-core/src/engine.rs:1776:1 [INFO] [stdout] | [INFO] [stdout] 1776 | / pub fn encode( [INFO] [stdout] 1777 | | specs: &[EncodingSpec], [INFO] [stdout] 1778 | | mnemonic: &str, [INFO] [stdout] 1779 | | operands: &[Operand], [INFO] [stdout] 1780 | | ) -> Result { [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/jit-core/src/engine.rs:1876:5 [INFO] [stdout] | [INFO] [stdout] 1876 | / if saw_shape_mismatch { [INFO] [stdout] 1877 | | if let Some(hint) = infer_no_matching_hint(specs, mnemonic, operands) { [INFO] [stdout] 1878 | | return Err(EncodeError::NoMatchingVariantHint { [INFO] [stdout] 1879 | | hint: NoMatchingHint::Core(hint), [INFO] [stdout] ... | [INFO] [stdout] 1882 | | } [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] 1876 ~ if saw_shape_mismatch [INFO] [stdout] 1877 ~ && let Some(hint) = infer_no_matching_hint(specs, mnemonic, operands) { [INFO] [stdout] 1878 | return Err(EncodeError::NoMatchingVariantHint { [INFO] [stdout] 1879 | hint: NoMatchingHint::Core(hint), [INFO] [stdout] 1880 | }); [INFO] [stdout] 1881 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking is-terminal v0.4.17 [INFO] [stderr] Checking unicode-ident v1.0.24 [INFO] [stderr] Checking oorandom v11.1.5 [INFO] [stderr] Checking anes v0.1.6 [INFO] [stderr] Checking proc-macro2 v1.0.106 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking quote v1.0.44 [INFO] [stdout] warning: this `let...else` may be rewritten with the `?` operator [INFO] [stdout] --> crates/jit-core/src/engine.rs:1046:17 [INFO] [stdout] | [INFO] [stdout] 1046 | / let Some(rel_idx) = arr[arr_idx..arr_len] [INFO] [stdout] 1047 | | .iter() [INFO] [stdout] 1048 | | .position(|operand| operand.kind == expected_kind) [INFO] [stdout] 1049 | | else { [INFO] [stdout] 1050 | | return None; [INFO] [stdout] 1051 | | }; [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] help: replace it with [INFO] [stdout] | [INFO] [stdout] 1046 ~ let rel_idx = arr[arr_idx..arr_len] [INFO] [stdout] 1047 + .iter() [INFO] [stdout] 1048 + .position(|operand| operand.kind == expected_kind)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit-core/src/engine.rs:1267:1 [INFO] [stdout] | [INFO] [stdout] 1267 | / pub fn encode_by_spec_operands( [INFO] [stdout] 1268 | | spec: &EncodingSpec, [INFO] [stdout] 1269 | | operands: &[Operand], [INFO] [stdout] 1270 | | ) -> Result { [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] = note: `#[warn(clippy::double_must_use)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit-core/src/engine.rs:1297:1 [INFO] [stdout] | [INFO] [stdout] 1297 | / pub fn encode_candidates( [INFO] [stdout] 1298 | | specs: &[EncodingSpec], [INFO] [stdout] 1299 | | candidate_indices: &[u16], [INFO] [stdout] 1300 | | operands: &[Operand], [INFO] [stdout] 1301 | | ) -> Result { [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit-core/src/engine.rs:1386:1 [INFO] [stdout] | [INFO] [stdout] 1386 | / pub fn operand_shape_keys( [INFO] [stdout] 1387 | | operands: &[Operand], [INFO] [stdout] 1388 | | out: &mut [OperandShapeKey], [INFO] [stdout] 1389 | | ) -> Result { [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit-core/src/engine.rs:1456:1 [INFO] [stdout] | [INFO] [stdout] 1456 | pub fn encode_by_spec(spec: &EncodingSpec, args: &[i64]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/jit-core/src/engine.rs:1518:9 [INFO] [stdout] | [INFO] [stdout] 1518 | / if let Some(plan) = split { [INFO] [stdout] 1519 | | if slot == plan.first_slot { [INFO] [stdout] 1520 | | out[out_len] = OperandConstraintKind::Immediate; [INFO] [stdout] 1521 | | out_len += 1; [INFO] [stdout] ... | [INFO] [stdout] 1525 | | } [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] 1518 ~ if let Some(plan) = split [INFO] [stdout] 1519 ~ && slot == plan.first_slot { [INFO] [stdout] 1520 | out[out_len] = OperandConstraintKind::Immediate; [INFO] [stdout] ... [INFO] [stdout] 1523 | continue; [INFO] [stdout] 1524 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/jit-core/src/engine.rs:1614:5 [INFO] [stdout] | [INFO] [stdout] 1614 | expected.sort_by(|lhs, rhs| lhs.slots.len().cmp(&rhs.slots.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1614 - expected.sort_by(|lhs, rhs| lhs.slots.len().cmp(&rhs.slots.len())); [INFO] [stdout] 1614 + expected.sort_by_key(|lhs| lhs.slots.len()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit-core/src/engine.rs:1776:1 [INFO] [stdout] | [INFO] [stdout] 1776 | / pub fn encode( [INFO] [stdout] 1777 | | specs: &[EncodingSpec], [INFO] [stdout] 1778 | | mnemonic: &str, [INFO] [stdout] 1779 | | operands: &[Operand], [INFO] [stdout] 1780 | | ) -> Result { [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/jit-core/src/engine.rs:1876:5 [INFO] [stdout] | [INFO] [stdout] 1876 | / if saw_shape_mismatch { [INFO] [stdout] 1877 | | if let Some(hint) = infer_no_matching_hint(specs, mnemonic, operands) { [INFO] [stdout] 1878 | | return Err(EncodeError::NoMatchingVariantHint { [INFO] [stdout] 1879 | | hint: NoMatchingHint::Core(hint), [INFO] [stdout] ... | [INFO] [stdout] 1882 | | } [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] 1876 ~ if saw_shape_mismatch [INFO] [stdout] 1877 ~ && let Some(hint) = infer_no_matching_hint(specs, mnemonic, operands) { [INFO] [stdout] 1878 | return Err(EncodeError::NoMatchingVariantHint { [INFO] [stdout] 1879 | hint: NoMatchingHint::Core(hint), [INFO] [stdout] 1880 | }); [INFO] [stdout] 1881 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling capstone-sys v0.18.0 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Checking clap v4.5.60 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling jit-macro v0.2.8 (/opt/rustwide/workdir/crates/jit-macro) [INFO] [stderr] Compiling zerocopy-derive v0.8.39 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> crates/jit-macro/src/ast.rs:85:1 [INFO] [stdout] | [INFO] [stdout] 85 | / pub(crate) enum ParsedMemoryOffset { [INFO] [stdout] 86 | | None, [INFO] [stdout] 87 | | Immediate(Expr), [INFO] [stdout] | | --------------- the second-largest variant contains at least 176 bytes [INFO] [stdout] 88 | |/ Register { [INFO] [stdout] 89 | || reg: ParsedRegister, [INFO] [stdout] 90 | || modifier: Option, [INFO] [stdout] 91 | || }, [INFO] [stdout] | ||_____- the largest variant contains at least 416 bytes [INFO] [stdout] 92 | | } [INFO] [stdout] | |__^ the entire enum is at least 416 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 89 - reg: ParsedRegister, [INFO] [stdout] 89 + reg: Box, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> crates/jit-macro/src/ast.rs:124:1 [INFO] [stdout] | [INFO] [stdout] 124 | / pub(crate) enum OperandAst { [INFO] [stdout] 125 | | Immediate(Expr), [INFO] [stdout] 126 | | Register(ParsedRegister), [INFO] [stdout] 127 | | Memory(ParsedMemory), [INFO] [stdout] | | -------------------- the largest variant contains at least 888 bytes [INFO] [stdout] ... | [INFO] [stdout] 138 | | RegisterList(ParsedRegisterList), [INFO] [stdout] | | -------------------------------- the second-largest variant contains at least 264 bytes [INFO] [stdout] 139 | | SysReg(ParsedSysReg), [INFO] [stdout] 140 | | } [INFO] [stdout] | |_^ the entire enum is at least 888 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 127 - Memory(ParsedMemory), [INFO] [stdout] 127 + Memory(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> crates/jit-macro/src/ast.rs:143:1 [INFO] [stdout] | [INFO] [stdout] 143 | / pub(crate) enum JitArg { [INFO] [stdout] 144 | | Operand(OperandAst), [INFO] [stdout] | | ------------------- the largest variant contains at least 888 bytes [INFO] [stdout] 145 | |/ DirectionalLabelRef { [INFO] [stdout] 146 | || name: String, [INFO] [stdout] 147 | || direction: LabelDirection, [INFO] [stdout] 148 | || }, [INFO] [stdout] | ||_____- the second-largest variant contains at least 25 bytes [INFO] [stdout] 149 | | } [INFO] [stdout] | |__^ the entire enum is at least 888 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 144 - Operand(OperandAst), [INFO] [stdout] 144 + Operand(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking thiserror v2.0.18 [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> crates/jit-macro/src/ast.rs:85:1 [INFO] [stdout] | [INFO] [stdout] 85 | / pub(crate) enum ParsedMemoryOffset { [INFO] [stdout] 86 | | None, [INFO] [stdout] 87 | | Immediate(Expr), [INFO] [stdout] | | --------------- the second-largest variant contains at least 176 bytes [INFO] [stdout] 88 | |/ Register { [INFO] [stdout] 89 | || reg: ParsedRegister, [INFO] [stdout] 90 | || modifier: Option, [INFO] [stdout] 91 | || }, [INFO] [stdout] | ||_____- the largest variant contains at least 416 bytes [INFO] [stdout] 92 | | } [INFO] [stdout] | |__^ the entire enum is at least 416 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 89 - reg: ParsedRegister, [INFO] [stdout] 89 + reg: Box, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> crates/jit-macro/src/ast.rs:124:1 [INFO] [stdout] | [INFO] [stdout] 124 | / pub(crate) enum OperandAst { [INFO] [stdout] 125 | | Immediate(Expr), [INFO] [stdout] 126 | | Register(ParsedRegister), [INFO] [stdout] 127 | | Memory(ParsedMemory), [INFO] [stdout] | | -------------------- the largest variant contains at least 888 bytes [INFO] [stdout] ... | [INFO] [stdout] 138 | | RegisterList(ParsedRegisterList), [INFO] [stdout] | | -------------------------------- the second-largest variant contains at least 264 bytes [INFO] [stdout] 139 | | SysReg(ParsedSysReg), [INFO] [stdout] 140 | | } [INFO] [stdout] | |_^ the entire enum is at least 888 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 127 - Memory(ParsedMemory), [INFO] [stdout] 127 + Memory(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> crates/jit-macro/src/ast.rs:143:1 [INFO] [stdout] | [INFO] [stdout] 143 | / pub(crate) enum JitArg { [INFO] [stdout] 144 | | Operand(OperandAst), [INFO] [stdout] | | ------------------- the largest variant contains at least 888 bytes [INFO] [stdout] 145 | |/ DirectionalLabelRef { [INFO] [stdout] 146 | || name: String, [INFO] [stdout] 147 | || direction: LabelDirection, [INFO] [stdout] 148 | || }, [INFO] [stdout] | ||_____- the second-largest variant contains at least 25 bytes [INFO] [stdout] 149 | | } [INFO] [stdout] | |__^ the entire enum is at least 888 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 144 - Operand(OperandAst), [INFO] [stdout] 144 + Operand(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> crates/jit-macro/src/ast.rs:85:1 [INFO] [stdout] | [INFO] [stdout] 85 | / pub(crate) enum ParsedMemoryOffset { [INFO] [stdout] 86 | | None, [INFO] [stdout] 87 | | Immediate(Expr), [INFO] [stdout] | | --------------- the second-largest variant contains at least 176 bytes [INFO] [stdout] 88 | |/ Register { [INFO] [stdout] 89 | || reg: ParsedRegister, [INFO] [stdout] 90 | || modifier: Option, [INFO] [stdout] 91 | || }, [INFO] [stdout] | ||_____- the largest variant contains at least 416 bytes [INFO] [stdout] 92 | | } [INFO] [stdout] | |__^ the entire enum is at least 416 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 89 - reg: ParsedRegister, [INFO] [stdout] 89 + reg: Box, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> crates/jit-macro/src/ast.rs:124:1 [INFO] [stdout] | [INFO] [stdout] 124 | / pub(crate) enum OperandAst { [INFO] [stdout] 125 | | Immediate(Expr), [INFO] [stdout] 126 | | Register(ParsedRegister), [INFO] [stdout] 127 | | Memory(ParsedMemory), [INFO] [stdout] | | -------------------- the largest variant contains at least 888 bytes [INFO] [stdout] ... | [INFO] [stdout] 138 | | RegisterList(ParsedRegisterList), [INFO] [stdout] | | -------------------------------- the second-largest variant contains at least 264 bytes [INFO] [stdout] 139 | | SysReg(ParsedSysReg), [INFO] [stdout] 140 | | } [INFO] [stdout] | |_^ the entire enum is at least 888 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 127 - Memory(ParsedMemory), [INFO] [stdout] 127 + Memory(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> crates/jit-macro/src/ast.rs:143:1 [INFO] [stdout] | [INFO] [stdout] 143 | / pub(crate) enum JitArg { [INFO] [stdout] 144 | | Operand(OperandAst), [INFO] [stdout] | | ------------------- the largest variant contains at least 888 bytes [INFO] [stdout] 145 | |/ DirectionalLabelRef { [INFO] [stdout] 146 | || name: String, [INFO] [stdout] 147 | || direction: LabelDirection, [INFO] [stdout] 148 | || }, [INFO] [stdout] | ||_____- the second-largest variant contains at least 25 bytes [INFO] [stdout] 149 | | } [INFO] [stdout] | |__^ the entire enum is at least 888 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 144 - Operand(OperandAst), [INFO] [stdout] 144 + Operand(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> crates/jit-macro/src/parse.rs:687:8 [INFO] [stdout] | [INFO] [stdout] 687 | if path.segments[0].ident.to_string() != "Cond" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `path.segments[0].ident` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> crates/jit-macro/src/parse.rs:687:8 [INFO] [stdout] | [INFO] [stdout] 687 | if path.segments[0].ident.to_string() != "Cond" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `path.segments[0].ident` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> crates/jit-macro/src/parse.rs:687:8 [INFO] [stdout] | [INFO] [stdout] 687 | if path.segments[0].ident.to_string() != "Cond" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `path.segments[0].ident` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking arm64jit v0.3.15 (/opt/rustwide/workdir/crates/jit) [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking jit-spec v0.1.2 (/opt/rustwide/workdir/crates/jit-spec) [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> crates/jit-spec/src/lib.rs:503:64 [INFO] [stdout] | [INFO] [stdout] 503 | let bits = if raw.starts_with('\'') && raw.ends_with('\'') { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 504 | | &raw[1..raw.len() - 1] [INFO] [stdout] 505 | | } else if raw.starts_with('"') && raw.ends_with('"') { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> crates/jit-spec/src/lib.rs:505:58 [INFO] [stdout] | [INFO] [stdout] 505 | } else if raw.starts_with('"') && raw.ends_with('"') { [INFO] [stdout] | __________________________________________________________^ [INFO] [stdout] 506 | | &raw[1..raw.len() - 1] [INFO] [stdout] 507 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> crates/jit-spec/src/lib.rs:503:64 [INFO] [stdout] | [INFO] [stdout] 503 | let bits = if raw.starts_with('\'') && raw.ends_with('\'') { [INFO] [stdout] | ________________________________________________________________^ [INFO] [stdout] 504 | | &raw[1..raw.len() - 1] [INFO] [stdout] 505 | | } else if raw.starts_with('"') && raw.ends_with('"') { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> crates/jit-spec/src/lib.rs:505:58 [INFO] [stdout] | [INFO] [stdout] 505 | } else if raw.starts_with('"') && raw.ends_with('"') { [INFO] [stdout] | __________________________________________________________^ [INFO] [stdout] 506 | | &raw[1..raw.len() - 1] [INFO] [stdout] 507 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking jit-codegen v0.1.2 (/opt/rustwide/workdir/crates/jit-codegen) [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> crates/jit-codegen/src/core.rs:204:9 [INFO] [stdout] | [INFO] [stdout] 197 | / let has_offset = self.has_field("imm7") [INFO] [stdout] 198 | | || self.has_field("imm9") [INFO] [stdout] 199 | | || self.has_field("imm12") [INFO] [stdout] 200 | | || self.has_field("rm") [INFO] [stdout] 201 | | || self.has_field("option") [INFO] [stdout] 202 | | || self.has_field("s") [INFO] [stdout] 203 | | || self.has_field("xs"); [INFO] [stdout] | |____________________________________- unnecessary `let` binding [INFO] [stdout] 204 | has_offset [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 197 ~ [INFO] [stdout] 198 ~ self.has_field("imm7") [INFO] [stdout] 199 + || self.has_field("imm9") [INFO] [stdout] 200 + || self.has_field("imm12") [INFO] [stdout] 201 + || self.has_field("rm") [INFO] [stdout] 202 + || self.has_field("option") [INFO] [stdout] 203 + || self.has_field("s") [INFO] [stdout] 204 + || self.has_field("xs") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> crates/jit-codegen/src/core.rs:204:9 [INFO] [stdout] | [INFO] [stdout] 197 | / let has_offset = self.has_field("imm7") [INFO] [stdout] 198 | | || self.has_field("imm9") [INFO] [stdout] 199 | | || self.has_field("imm12") [INFO] [stdout] 200 | | || self.has_field("rm") [INFO] [stdout] 201 | | || self.has_field("option") [INFO] [stdout] 202 | | || self.has_field("s") [INFO] [stdout] 203 | | || self.has_field("xs"); [INFO] [stdout] | |____________________________________- unnecessary `let` binding [INFO] [stdout] 204 | has_offset [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 197 ~ [INFO] [stdout] 198 ~ self.has_field("imm7") [INFO] [stdout] 199 + || self.has_field("imm9") [INFO] [stdout] 200 + || self.has_field("imm12") [INFO] [stdout] 201 + || self.has_field("rm") [INFO] [stdout] 202 + || self.has_field("option") [INFO] [stdout] 203 + || self.has_field("s") [INFO] [stdout] 204 + || self.has_field("xs") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/jit-codegen/src/core.rs:1333:5 [INFO] [stdout] | [INFO] [stdout] 1333 | mnemonic_normalization_rules.sort_by(|lhs, rhs| lhs.0.cmp(&rhs.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1333 - mnemonic_normalization_rules.sort_by(|lhs, rhs| lhs.0.cmp(&rhs.0)); [INFO] [stdout] 1333 + mnemonic_normalization_rules.sort_by_key(|lhs| lhs.0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/jit-codegen/src/core.rs:1333:5 [INFO] [stdout] | [INFO] [stdout] 1333 | mnemonic_normalization_rules.sort_by(|lhs, rhs| lhs.0.cmp(&rhs.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1333 - mnemonic_normalization_rules.sort_by(|lhs, rhs| lhs.0.cmp(&rhs.0)); [INFO] [stdout] 1333 + mnemonic_normalization_rules.sort_by_key(|lhs| lhs.0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> crates/jit-codegen/src/core.rs:1708:6 [INFO] [stdout] | [INFO] [stdout] 1708 | ) -> Result<(Vec, Vec, Vec<(u8, i64)>), CodegenError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/jit-codegen/src/core.rs:1739:5 [INFO] [stdout] | [INFO] [stdout] 1739 | implicit_defaults.sort_by(|left, right| left.0.cmp(&right.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1739 - implicit_defaults.sort_by(|left, right| left.0.cmp(&right.0)); [INFO] [stdout] 1739 + implicit_defaults.sort_by_key(|left| left.0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/jit-codegen/src/core.rs:2311:9 [INFO] [stdout] | [INFO] [stdout] 2311 | / if width_hint == VariantWidthHint::Unknown { [INFO] [stdout] 2312 | | if let Some(bit30) = context.bit_value(30) { [INFO] [stdout] 2313 | | return if bit30 == 0 { [INFO] [stdout] 2314 | | Ok(GeneratedOperandKind::Gpr32Register) [INFO] [stdout] ... | [INFO] [stdout] 2319 | | } [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] 2311 ~ if width_hint == VariantWidthHint::Unknown [INFO] [stdout] 2312 ~ && let Some(bit30) = context.bit_value(30) { [INFO] [stdout] 2313 | return if bit30 == 0 { [INFO] [stdout] ... [INFO] [stdout] 2317 | }; [INFO] [stdout] 2318 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> crates/jit-codegen/src/core.rs:1708:6 [INFO] [stdout] | [INFO] [stdout] 1708 | ) -> Result<(Vec, Vec, Vec<(u8, i64)>), CodegenError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> crates/jit-codegen/src/core.rs:1739:5 [INFO] [stdout] | [INFO] [stdout] 1739 | implicit_defaults.sort_by(|left, right| left.0.cmp(&right.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1739 - implicit_defaults.sort_by(|left, right| left.0.cmp(&right.0)); [INFO] [stdout] 1739 + implicit_defaults.sort_by_key(|left| left.0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/jit-codegen/src/core.rs:2311:9 [INFO] [stdout] | [INFO] [stdout] 2311 | / if width_hint == VariantWidthHint::Unknown { [INFO] [stdout] 2312 | | if let Some(bit30) = context.bit_value(30) { [INFO] [stdout] 2313 | | return if bit30 == 0 { [INFO] [stdout] 2314 | | Ok(GeneratedOperandKind::Gpr32Register) [INFO] [stdout] ... | [INFO] [stdout] 2319 | | } [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] 2311 ~ if width_hint == VariantWidthHint::Unknown [INFO] [stdout] 2312 ~ && let Some(bit30) = context.bit_value(30) { [INFO] [stdout] 2313 | return if bit30 == 0 { [INFO] [stdout] ... [INFO] [stdout] 2317 | }; [INFO] [stdout] 2318 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (12/7) [INFO] [stdout] --> crates/jit/src/generated_specs.rs:3270:1 [INFO] [stdout] | [INFO] [stdout] 3270 | / const fn make_spec( [INFO] [stdout] 3271 | | mnemonic: &'static str, [INFO] [stdout] 3272 | | variant: &'static str, [INFO] [stdout] 3273 | | opcode: u32, [INFO] [stdout] ... | [INFO] [stdout] 3282 | | gpr32_extend_compatibility: u64, [INFO] [stdout] 3283 | | ) -> EncodingSpec { [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] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stdout] warning: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> crates/jit/src/asm.rs:331:29 [INFO] [stdout] | [INFO] [stdout] 331 | let from_page = ((from_words << 2) >> 12) as i64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((from_words << 2) >> 12)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> crates/jit/src/asm.rs:332:27 [INFO] [stdout] | [INFO] [stdout] 332 | let to_page = ((to_words << 2) >> 12) as i64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((to_words << 2) >> 12)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit/src/encode.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | / pub fn encode_mnemonic_id_const_no_alias( [INFO] [stdout] 30 | | operands: &[Operand], [INFO] [stdout] 31 | | ) -> Result { [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] = note: `#[warn(clippy::double_must_use)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit/src/encode.rs:51:1 [INFO] [stdout] | [INFO] [stdout] 51 | / pub fn encode_variant( [INFO] [stdout] 52 | | variant: VariantId, [INFO] [stdout] 53 | | operands: &[Operand], [INFO] [stdout] 54 | | ) -> Result { [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit/src/encode.rs:67:1 [INFO] [stdout] | [INFO] [stdout] 67 | / pub fn encode_variant_const( [INFO] [stdout] 68 | | operands: &[Operand], [INFO] [stdout] 69 | | ) -> Result { [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> crates/jit/src/encode.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | / match generated::encode_variant(variant, operands) { [INFO] [stdout] 114 | | Ok(code) => return Ok(code), [INFO] [stdout] ... | [INFO] [stdout] 118 | | Err(_) => {} [INFO] [stdout] 119 | | } [INFO] [stdout] | |_____________^ help: try: `if let Ok(code) = generated::encode_variant(variant, operands) { return Ok(code) }` [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit/src/encode.rs:164:1 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn encode(mnemonic: &str, operands: &[Operand]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking fib-example v0.1.2 (/opt/rustwide/workdir/examples/fib) [INFO] [stdout] warning: call to `std::mem::drop` with a value that does not implement `Drop`. Dropping such a type only extends its contained lifetimes [INFO] [stdout] --> examples/fib/src/main.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | drop(ops); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: argument has type `arm64jit::CodeWriter<'_>` [INFO] [stdout] --> examples/fib/src/main.rs:35:10 [INFO] [stdout] | [INFO] [stdout] 35 | drop(ops); [INFO] [stdout] | ^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop [INFO] [stdout] = note: `#[warn(clippy::drop_non_drop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `std::mem::drop` with a value that does not implement `Drop`. Dropping such a type only extends its contained lifetimes [INFO] [stdout] --> examples/fib/src/main.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | drop(ops); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: argument has type `arm64jit::CodeWriter<'_>` [INFO] [stdout] --> examples/fib/src/main.rs:35:10 [INFO] [stdout] | [INFO] [stdout] 35 | drop(ops); [INFO] [stdout] | ^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop [INFO] [stdout] = note: `#[warn(clippy::drop_non_drop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/jit/tests/spec_consistency.rs:247:20 [INFO] [stdout] | [INFO] [stdout] 247 | if (expected == "vector arrangement" && got == "immediate") [INFO] [stdout] | ____________________^ [INFO] [stdout] 248 | | || (expected == "vector lane" && got == "immediate") [INFO] [stdout] | |________________________________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 247 - if (expected == "vector arrangement" && got == "immediate") [INFO] [stdout] 248 - || (expected == "vector lane" && got == "immediate") [INFO] [stdout] 247 + if !(got != "immediate" || expected != "vector arrangement" && expected != "vector lane") [INFO] [stdout] | [INFO] [stdout] 247 - if (expected == "vector arrangement" && got == "immediate") [INFO] [stdout] 248 - || (expected == "vector lane" && got == "immediate") [INFO] [stdout] 247 + if (expected == "vector lane" || expected == "vector arrangement") && got == "immediate" [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (12/7) [INFO] [stdout] --> crates/jit/src/generated_specs.rs:3270:1 [INFO] [stdout] | [INFO] [stdout] 3270 | / const fn make_spec( [INFO] [stdout] 3271 | | mnemonic: &'static str, [INFO] [stdout] 3272 | | variant: &'static str, [INFO] [stdout] 3273 | | opcode: u32, [INFO] [stdout] ... | [INFO] [stdout] 3282 | | gpr32_extend_compatibility: u64, [INFO] [stdout] 3283 | | ) -> EncodingSpec { [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: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> crates/jit/src/asm.rs:331:29 [INFO] [stdout] | [INFO] [stdout] 331 | let from_page = ((from_words << 2) >> 12) as i64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((from_words << 2) >> 12)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> crates/jit/src/asm.rs:332:27 [INFO] [stdout] | [INFO] [stdout] 332 | let to_page = ((to_words << 2) >> 12) as i64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((to_words << 2) >> 12)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit/src/encode.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | / pub fn encode_mnemonic_id_const_no_alias( [INFO] [stdout] 30 | | operands: &[Operand], [INFO] [stdout] 31 | | ) -> Result { [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] = note: `#[warn(clippy::double_must_use)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit/src/encode.rs:51:1 [INFO] [stdout] | [INFO] [stdout] 51 | / pub fn encode_variant( [INFO] [stdout] 52 | | variant: VariantId, [INFO] [stdout] 53 | | operands: &[Operand], [INFO] [stdout] 54 | | ) -> Result { [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit/src/encode.rs:67:1 [INFO] [stdout] | [INFO] [stdout] 67 | / pub fn encode_variant_const( [INFO] [stdout] 68 | | operands: &[Operand], [INFO] [stdout] 69 | | ) -> Result { [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> crates/jit/src/encode.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | / match generated::encode_variant(variant, operands) { [INFO] [stdout] 114 | | Ok(code) => return Ok(code), [INFO] [stdout] ... | [INFO] [stdout] 118 | | Err(_) => {} [INFO] [stdout] 119 | | } [INFO] [stdout] | |_____________^ help: try: `if let Ok(code) = generated::encode_variant(variant, operands) { return Ok(code) }` [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` [INFO] [stdout] --> crates/jit/src/encode.rs:164:1 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn encode(mnemonic: &str, operands: &[Operand]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: either add some descriptive message or remove the attribute [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking capstone v0.14.0 [INFO] [stderr] Checking sve-example v0.1.2 (/opt/rustwide/workdir/examples/sve) [INFO] [stdout] warning: call to `std::mem::drop` with a value that does not implement `Drop`. Dropping such a type only extends its contained lifetimes [INFO] [stdout] --> examples/sve/src/main.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | drop(ops); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: argument has type `arm64jit::CodeWriter<'_>` [INFO] [stdout] --> examples/sve/src/main.rs:60:10 [INFO] [stdout] | [INFO] [stdout] 60 | drop(ops); [INFO] [stdout] | ^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop [INFO] [stdout] = note: `#[warn(clippy::drop_non_drop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `std::mem::drop` with a value that does not implement `Drop`. Dropping such a type only extends its contained lifetimes [INFO] [stdout] --> examples/sve/src/main.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | drop(ops); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: argument has type `arm64jit::CodeWriter<'_>` [INFO] [stdout] --> examples/sve/src/main.rs:60:10 [INFO] [stdout] | [INFO] [stdout] 60 | drop(ops); [INFO] [stdout] | ^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop [INFO] [stdout] = note: `#[warn(clippy::drop_non_drop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 14s [INFO] running `Command { std: "docker" "inspect" "8bcb0338aea8a846a76ca7e0f847fa60414943387013fe18307182229524ea9b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8bcb0338aea8a846a76ca7e0f847fa60414943387013fe18307182229524ea9b", kill_on_drop: false }` [INFO] [stdout] 8bcb0338aea8a846a76ca7e0f847fa60414943387013fe18307182229524ea9b