[INFO] cloning repository https://github.com/histausse/androscalpel [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/histausse/androscalpel" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhistausse%2Fandroscalpel", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhistausse%2Fandroscalpel'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 04c7898aa2a0f42ef7110d39453569c934e0a80e [INFO] linting histausse/androscalpel against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhistausse%2Fandroscalpel" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/histausse/androscalpel [INFO] finished tweaking git repo https://github.com/histausse/androscalpel [INFO] tweaked toml for git repo https://github.com/histausse/androscalpel written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/histausse/androscalpel 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/histausse/androscalpel 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 pyo3-log v0.12.3 [INFO] [stderr] Downloaded pyo3-macros v0.23.5 [INFO] [stderr] Downloaded pyo3-build-config v0.23.5 [INFO] [stderr] Downloaded pyo3-macros-backend v0.23.5 [INFO] [stderr] Downloaded pyo3-ffi v0.23.5 [INFO] [stderr] Downloaded zip v2.6.1 [INFO] [stderr] Downloaded pyo3 v0.23.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] e05b7b483489f09eb01e50a0edeee42a849603780b8adb10d1009d7c760e6771 [INFO] running `Command { std: "docker" "start" "-a" "e05b7b483489f09eb01e50a0edeee42a849603780b8adb10d1009d7c760e6771", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e05b7b483489f09eb01e50a0edeee42a849603780b8adb10d1009d7c760e6771", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e05b7b483489f09eb01e50a0edeee42a849603780b8adb10d1009d7c760e6771", kill_on_drop: false }` [INFO] [stdout] e05b7b483489f09eb01e50a0edeee42a849603780b8adb10d1009d7c760e6771 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] a35248d8c5538bef1c1883d5319f976b48885da52223bbec34e3beda5c944560 [INFO] running `Command { std: "docker" "start" "-a" "a35248d8c5538bef1c1883d5319f976b48885da52223bbec34e3beda5c944560", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Checking gimli v0.31.1 [INFO] [stderr] Checking rustc-demangle v0.1.24 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Checking regex-syntax v0.8.6 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking anstream v0.6.21 [INFO] [stderr] Checking unicode-ident v1.0.18 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Checking androscalpel_platform_api_list v0.1.0 (/opt/rustwide/workdir/androscalpel_platform_api_list) [INFO] [stderr] Checking yansi v1.0.1 [INFO] [stderr] Checking diff v0.1.13 [INFO] [stderr] Checking jiff v0.2.15 [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking proc-macro2 v1.0.95 [INFO] [stderr] Checking pretty_assertions v1.4.1 [INFO] [stderr] Checking clap_builder v4.5.48 [INFO] [stderr] Checking quote v1.0.40 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking regex-automata v0.4.11 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking addr2line v0.24.2 [INFO] [stderr] Checking androscalpel_serializer_derive v0.1.0 (/opt/rustwide/workdir/androscalpel_serializer_derive) [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel_serializer_derive/src/lib.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | /// `prefix_type`. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking regex v1.11.3 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling clap_derive v4.5.47 [INFO] [stderr] Checking env_filter v0.1.3 [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel_serializer_derive/src/lib.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | /// `prefix_type`. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking env_logger v0.11.8 [INFO] [stderr] Checking backtrace v0.3.74 [INFO] [stderr] Checking androscalpel_serializer v0.1.0 (/opt/rustwide/workdir/androscalpel_serializer) [INFO] [stderr] Checking clap v4.5.48 [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> androscalpel_serializer/src/items/instructions.rs:658:12 [INFO] [stdout] | [INFO] [stdout] 658 | if len % 2 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: replace with: `!len.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> androscalpel_serializer/src/items/instructions.rs:658:12 [INFO] [stdout] | [INFO] [stdout] 658 | if len % 2 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: replace with: `!len.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NamedComposedTest` is never constructed [INFO] [stdout] --> androscalpel_serializer/src/core/mod.rs:446:12 [INFO] [stdout] | [INFO] [stdout] 446 | struct NamedComposedTest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TestEnumNamedDef` is never used [INFO] [stdout] --> androscalpel_serializer/src/core/mod.rs:946:10 [INFO] [stdout] | [INFO] [stdout] 946 | enum TestEnumNamedDef { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking apk_frauder v0.1.0 (/opt/rustwide/workdir/apk_frauder) [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> androscalpel_serializer/src/core/string.rs:552:9 [INFO] [stdout] | [INFO] [stdout] 552 | assert_eq!(s1_utf16 < s2_utf16, true); [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] 552 - assert_eq!(s1_utf16 < s2_utf16, true); [INFO] [stdout] 552 + assert!(s1_utf16 < s2_utf16); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> androscalpel_serializer/src/core/string.rs:553:9 [INFO] [stdout] | [INFO] [stdout] 553 | assert_eq!(s1_utf16 == s2_utf16, 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 553 - assert_eq!(s1_utf16 == s2_utf16, false); [INFO] [stdout] 553 + assert!(!(s1_utf16 == s2_utf16)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> androscalpel_serializer/src/core/string.rs:554:9 [INFO] [stdout] | [INFO] [stdout] 554 | assert_eq!(s1_utf16 > s2_utf16, 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 554 - assert_eq!(s1_utf16 > s2_utf16, false); [INFO] [stdout] 554 + assert!(!(s1_utf16 > s2_utf16)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> androscalpel_serializer/src/core/string.rs:555:9 [INFO] [stdout] | [INFO] [stdout] 555 | assert_eq!(s2_utf16 < s1_utf16, 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 555 - assert_eq!(s2_utf16 < s1_utf16, false); [INFO] [stdout] 555 + assert!(!(s2_utf16 < s1_utf16)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> androscalpel_serializer/src/core/string.rs:556:9 [INFO] [stdout] | [INFO] [stdout] 556 | assert_eq!(s2_utf16 == s1_utf16, 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 556 - assert_eq!(s2_utf16 == s1_utf16, false); [INFO] [stdout] 556 + assert!(!(s2_utf16 == s1_utf16)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> androscalpel_serializer/src/core/string.rs:557:9 [INFO] [stdout] | [INFO] [stdout] 557 | assert_eq!(s2_utf16 > s1_utf16, true); [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 557 - assert_eq!(s2_utf16 > s1_utf16, true); [INFO] [stdout] 557 + assert!(s2_utf16 > s1_utf16); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> androscalpel_serializer/src/core/string.rs:558:9 [INFO] [stdout] | [INFO] [stdout] 558 | assert_eq!(s1 < s2, true); [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 558 - assert_eq!(s1 < s2, true); [INFO] [stdout] 558 + assert!(s1 < s2); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> androscalpel_serializer/src/core/string.rs:559:9 [INFO] [stdout] | [INFO] [stdout] 559 | assert_eq!(s1 == s2, 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 559 - assert_eq!(s1 == s2, false); [INFO] [stdout] 559 + assert!(!(s1 == s2)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> androscalpel_serializer/src/core/string.rs:560:9 [INFO] [stdout] | [INFO] [stdout] 560 | assert_eq!(s1 > s2, 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 560 - assert_eq!(s1 > s2, false); [INFO] [stdout] 560 + assert!(!(s1 > s2)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> androscalpel_serializer/src/core/string.rs:561:9 [INFO] [stdout] | [INFO] [stdout] 561 | assert_eq!(s2 < s1, 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 561 - assert_eq!(s2 < s1, false); [INFO] [stdout] 561 + assert!(!(s2 < s1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> androscalpel_serializer/src/core/string.rs:562:9 [INFO] [stdout] | [INFO] [stdout] 562 | assert_eq!(s2 == s1, 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 562 - assert_eq!(s2 == s1, false); [INFO] [stdout] 562 + assert!(!(s2 == s1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> androscalpel_serializer/src/core/string.rs:563:9 [INFO] [stdout] | [INFO] [stdout] 563 | assert_eq!(s2 > s1, true); [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 563 - assert_eq!(s2 > s1, true); [INFO] [stdout] 563 + assert!(s2 > s1); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel_serializer_derive/src/lib.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | /// `prefix_type`. [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking serde v1.0.219 [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> androscalpel_serializer/src/items/code.rs:483:14 [INFO] [stdout] | [INFO] [stdout] 483 | .map(|w| w.to_le_bytes().into_iter()) [INFO] [stdout] | ______________^ [INFO] [stdout] 484 | | .flatten() [INFO] [stdout] | |______________________^ help: try replacing `map` with `flat_map` and remove the `.flatten()`: `flat_map(|w| w.to_le_bytes().into_iter())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] = note: `#[warn(clippy::map_flatten)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> androscalpel_serializer/src/items/instructions.rs:658:12 [INFO] [stdout] | [INFO] [stdout] 658 | if len % 2 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: replace with: `!len.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> androscalpel_serializer/src/value.rs:750:18 [INFO] [stdout] | [INFO] [stdout] 750 | vec![0x06 | 0 << 5, 0xff], [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider reducing it to: `0x06` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> androscalpel_serializer/src/value.rs:754:18 [INFO] [stdout] | [INFO] [stdout] 754 | vec![0x06 | 0 << 5, 0x01], [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider reducing it to: `0x06` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> androscalpel_serializer/src/value.rs:781:52 [INFO] [stdout] | [INFO] [stdout] 781 | EncodedValue::deserialize_from_slice(&[0x06 | 0 << 5, 0xff]).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider reducing it to: `0x06` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> androscalpel_serializer/src/value.rs:785:52 [INFO] [stdout] | [INFO] [stdout] 785 | EncodedValue::deserialize_from_slice(&[0x06 | 0 << 5, 0x01]).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider reducing it to: `0x06` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> androscalpel_serializer/src/value.rs:797:18 [INFO] [stdout] | [INFO] [stdout] 797 | vec![0x02 | 0 << 5, 0xff], [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider reducing it to: `0x02` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> androscalpel_serializer/src/value.rs:801:18 [INFO] [stdout] | [INFO] [stdout] 801 | vec![0x02 | 0 << 5, 0x01], [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider reducing it to: `0x02` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> androscalpel_serializer/src/value.rs:813:52 [INFO] [stdout] | [INFO] [stdout] 813 | EncodedValue::deserialize_from_slice(&[0x02 | 0 << 5, 0xff]).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider reducing it to: `0x02` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> androscalpel_serializer/src/value.rs:817:52 [INFO] [stdout] | [INFO] [stdout] 817 | EncodedValue::deserialize_from_slice(&[0x02 | 0 << 5, 0x01]).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider reducing it to: `0x02` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> androscalpel_serializer/src/value.rs:833:18 [INFO] [stdout] | [INFO] [stdout] 833 | vec![0x04 | 0 << 5, 0xff], [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider reducing it to: `0x04` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> androscalpel_serializer/src/value.rs:837:18 [INFO] [stdout] | [INFO] [stdout] 837 | vec![0x04 | 0 << 5, 0x01], [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider reducing it to: `0x04` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> androscalpel_serializer/src/value.rs:853:52 [INFO] [stdout] | [INFO] [stdout] 853 | EncodedValue::deserialize_from_slice(&[0x04 | 0 << 5, 0xff]).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider reducing it to: `0x04` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> androscalpel_serializer/src/value.rs:857:52 [INFO] [stdout] | [INFO] [stdout] 857 | EncodedValue::deserialize_from_slice(&[0x04 | 0 << 5, 0x01]).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider reducing it to: `0x04` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking androscalpel v0.1.0 (/opt/rustwide/workdir/androscalpel) [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> androscalpel/src/tests/mod.rs:624:17 [INFO] [stdout] | [INFO] [stdout] 624 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> androscalpel/src/tests/mod.rs:633:17 [INFO] [stdout] | [INFO] [stdout] 633 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/apk.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | / if let Some(annotations_directory) = &annotations_directory { [INFO] [stdout] 259 | | if annotations_directory.class_annotations_off != 0 { [INFO] [stdout] 260 | | annotations = Self::get_annotation_items_from_annotation_set_off( [INFO] [stdout] 261 | | annotations_directory.class_annotations_off, [INFO] [stdout] ... | [INFO] [stdout] 265 | | } [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] 258 ~ if let Some(annotations_directory) = &annotations_directory [INFO] [stdout] 259 ~ && annotations_directory.class_annotations_off != 0 { [INFO] [stdout] 260 | annotations = Self::get_annotation_items_from_annotation_set_off( [INFO] [stdout] ... [INFO] [stdout] 263 | )?; [INFO] [stdout] 264 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `key` is used as a loop counter [INFO] [stdout] --> androscalpel/src/apk.rs:1183:25 [INFO] [stdout] | [INFO] [stdout] 1183 | for target in targets.iter().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (key, target) in (*first_key..).zip(targets.iter().cloned())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel/src/apk.rs:3100:9 [INFO] [stdout] | [INFO] [stdout] 3100 | /// and return `Some(label_name)` if a label named label_name should be added before the [INFO] [stdout] | ^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel/src/apk.rs:3101:9 [INFO] [stdout] | [INFO] [stdout] 3101 | /// instruction. [INFO] [stdout] | ^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel/src/apk.rs:3129:9 [INFO] [stdout] | [INFO] [stdout] 3129 | /// supported) [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel/src/apk.rs:3131:9 [INFO] [stdout] | [INFO] [stdout] 3131 | /// a label, if a label needs to be inserted before the instruction. [INFO] [stdout] | ^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel/src/apk.rs:3184:9 [INFO] [stdout] | [INFO] [stdout] 3184 | /// a label, if a label needs to be inserted before the instruction. [INFO] [stdout] | ^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel/src/apk.rs:3283:9 [INFO] [stdout] | [INFO] [stdout] 3283 | /// indicating the instruction address [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> androscalpel/src/code.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | / if args.len() > outs { [INFO] [stdout] 92 | | outs = args.len(); [INFO] [stdout] 93 | | } [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] 90 ~ | Instruction::InvokeCustom { args, .. } [INFO] [stdout] 91 ~ if args.len() > outs => { [INFO] [stdout] 92 | outs = args.len(); [INFO] [stdout] 93 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/apk.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | / if let Some(annotations_directory) = &annotations_directory { [INFO] [stdout] 259 | | if annotations_directory.class_annotations_off != 0 { [INFO] [stdout] 260 | | annotations = Self::get_annotation_items_from_annotation_set_off( [INFO] [stdout] 261 | | annotations_directory.class_annotations_off, [INFO] [stdout] ... | [INFO] [stdout] 265 | | } [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] 258 ~ if let Some(annotations_directory) = &annotations_directory [INFO] [stdout] 259 ~ && annotations_directory.class_annotations_off != 0 { [INFO] [stdout] 260 | annotations = Self::get_annotation_items_from_annotation_set_off( [INFO] [stdout] ... [INFO] [stdout] 263 | )?; [INFO] [stdout] 264 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `key` is used as a loop counter [INFO] [stdout] --> androscalpel/src/apk.rs:1183:25 [INFO] [stdout] | [INFO] [stdout] 1183 | for target in targets.iter().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (key, target) in (*first_key..).zip(targets.iter().cloned())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel/src/apk.rs:3100:9 [INFO] [stdout] | [INFO] [stdout] 3100 | /// and return `Some(label_name)` if a label named label_name should be added before the [INFO] [stdout] | ^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel/src/apk.rs:3101:9 [INFO] [stdout] | [INFO] [stdout] 3101 | /// instruction. [INFO] [stdout] | ^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel/src/apk.rs:3129:9 [INFO] [stdout] | [INFO] [stdout] 3129 | /// supported) [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel/src/apk.rs:3131:9 [INFO] [stdout] | [INFO] [stdout] 3131 | /// a label, if a label needs to be inserted before the instruction. [INFO] [stdout] | ^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel/src/apk.rs:3184:9 [INFO] [stdout] | [INFO] [stdout] 3184 | /// a label, if a label needs to be inserted before the instruction. [INFO] [stdout] | ^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> androscalpel/src/apk.rs:3283:9 [INFO] [stdout] | [INFO] [stdout] 3283 | /// indicating the instruction address [INFO] [stdout] | ^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> androscalpel/src/code.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | / if args.len() > outs { [INFO] [stdout] 92 | | outs = args.len(); [INFO] [stdout] 93 | | } [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] 90 ~ | Instruction::InvokeCustom { args, .. } [INFO] [stdout] 91 ~ if args.len() > outs => { [INFO] [stdout] 92 | outs = args.len(); [INFO] [stdout] 93 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> androscalpel/src/dex_writer.rs:2251:15 [INFO] [stdout] | [INFO] [stdout] 2251 | while buffer.position() % section.get_item_alignment() as u64 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!buffer.position().is_multiple_of(section.get_item_alignment() as u64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> androscalpel/src/dex_writer.rs:2263:15 [INFO] [stdout] | [INFO] [stdout] 2263 | while pos % section.get_item_alignment() as u64 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!pos.is_multiple_of(section.get_item_alignment() as u64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/dex_writer.rs:2282:13 [INFO] [stdout] | [INFO] [stdout] 2282 | / if let Some(sup) = def.superclass.as_ref() { [INFO] [stdout] 2283 | | if self.class_defs.contains_key(sup) { [INFO] [stdout] 2284 | | edges_to.insert(sup); [INFO] [stdout] 2285 | | } [INFO] [stdout] 2286 | | } [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] 2282 ~ if let Some(sup) = def.superclass.as_ref() [INFO] [stdout] 2283 ~ && self.class_defs.contains_key(sup) { [INFO] [stdout] 2284 | edges_to.insert(sup); [INFO] [stdout] 2285 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> androscalpel/src/dex_writer.rs:2593:15 [INFO] [stdout] | [INFO] [stdout] 2593 | while self.sizes[section.get_index()] % section.get_item_alignment() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!self.sizes[section.get_index()].is_multiple_of(section.get_item_alignment())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> androscalpel/src/dex_writer.rs:2613:12 [INFO] [stdout] | [INFO] [stdout] 2613 | if size % alignment != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!size.is_multiple_of(alignment)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> androscalpel/src/dex_writer.rs:2633:15 [INFO] [stdout] | [INFO] [stdout] 2633 | while size % section.get_item_alignment() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!size.is_multiple_of(section.get_item_alignment())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> androscalpel/src/dex_writer.rs:2251:15 [INFO] [stdout] | [INFO] [stdout] 2251 | while buffer.position() % section.get_item_alignment() as u64 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!buffer.position().is_multiple_of(section.get_item_alignment() as u64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> androscalpel/src/dex_writer.rs:2263:15 [INFO] [stdout] | [INFO] [stdout] 2263 | while pos % section.get_item_alignment() as u64 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!pos.is_multiple_of(section.get_item_alignment() as u64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/dex_writer.rs:2282:13 [INFO] [stdout] | [INFO] [stdout] 2282 | / if let Some(sup) = def.superclass.as_ref() { [INFO] [stdout] 2283 | | if self.class_defs.contains_key(sup) { [INFO] [stdout] 2284 | | edges_to.insert(sup); [INFO] [stdout] 2285 | | } [INFO] [stdout] 2286 | | } [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] 2282 ~ if let Some(sup) = def.superclass.as_ref() [INFO] [stdout] 2283 ~ && self.class_defs.contains_key(sup) { [INFO] [stdout] 2284 | edges_to.insert(sup); [INFO] [stdout] 2285 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> androscalpel/src/dex_writer.rs:2593:15 [INFO] [stdout] | [INFO] [stdout] 2593 | while self.sizes[section.get_index()] % section.get_item_alignment() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!self.sizes[section.get_index()].is_multiple_of(section.get_item_alignment())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> androscalpel/src/dex_writer.rs:2613:12 [INFO] [stdout] | [INFO] [stdout] 2613 | if size % alignment != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!size.is_multiple_of(alignment)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> androscalpel/src/dex_writer.rs:2633:15 [INFO] [stdout] | [INFO] [stdout] 2633 | while size % section.get_item_alignment() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!size.is_multiple_of(section.get_item_alignment())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:3828:21 [INFO] [stdout] | [INFO] [stdout] 3828 | / if let Some(last) = last { [INFO] [stdout] 3829 | | if r != last + 1 { [INFO] [stdout] 3830 | | consec = false; [INFO] [stdout] 3831 | | } [INFO] [stdout] 3832 | | } [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] 3828 ~ if let Some(last) = last [INFO] [stdout] 3829 ~ && r != last + 1 { [INFO] [stdout] 3830 | consec = false; [INFO] [stdout] 3831 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:3876:21 [INFO] [stdout] | [INFO] [stdout] 3876 | / if let Some(last) = last { [INFO] [stdout] 3877 | | if r != last + 1 { [INFO] [stdout] 3878 | | consec = false; [INFO] [stdout] 3879 | | } [INFO] [stdout] 3880 | | } [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] 3876 ~ if let Some(last) = last [INFO] [stdout] 3877 ~ && r != last + 1 { [INFO] [stdout] 3878 | consec = false; [INFO] [stdout] 3879 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:3902:21 [INFO] [stdout] | [INFO] [stdout] 3902 | / if let Some(last) = last { [INFO] [stdout] 3903 | | if r != last + 1 { [INFO] [stdout] 3904 | | consec = false; [INFO] [stdout] 3905 | | } [INFO] [stdout] 3906 | | } [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] 3902 ~ if let Some(last) = last [INFO] [stdout] 3903 ~ && r != last + 1 { [INFO] [stdout] 3904 | consec = false; [INFO] [stdout] 3905 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:3928:21 [INFO] [stdout] | [INFO] [stdout] 3928 | / if let Some(last) = last { [INFO] [stdout] 3929 | | if r != last + 1 { [INFO] [stdout] 3930 | | consec = false; [INFO] [stdout] 3931 | | } [INFO] [stdout] 3932 | | } [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] 3928 ~ if let Some(last) = last [INFO] [stdout] 3929 ~ && r != last + 1 { [INFO] [stdout] 3930 | consec = false; [INFO] [stdout] 3931 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:3954:21 [INFO] [stdout] | [INFO] [stdout] 3954 | / if let Some(last) = last { [INFO] [stdout] 3955 | | if r != last + 1 { [INFO] [stdout] 3956 | | consec = false; [INFO] [stdout] 3957 | | } [INFO] [stdout] 3958 | | } [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] 3954 ~ if let Some(last) = last [INFO] [stdout] 3955 ~ && r != last + 1 { [INFO] [stdout] 3956 | consec = false; [INFO] [stdout] 3957 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:3980:21 [INFO] [stdout] | [INFO] [stdout] 3980 | / if let Some(last) = last { [INFO] [stdout] 3981 | | if r != last + 1 { [INFO] [stdout] 3982 | | consec = false; [INFO] [stdout] 3983 | | } [INFO] [stdout] 3984 | | } [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] 3980 ~ if let Some(last) = last [INFO] [stdout] 3981 ~ && r != last + 1 { [INFO] [stdout] 3982 | consec = false; [INFO] [stdout] 3983 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:4085:21 [INFO] [stdout] | [INFO] [stdout] 4085 | / if let Some(last) = last { [INFO] [stdout] 4086 | | if r != last + 1 { [INFO] [stdout] 4087 | | consec = false; [INFO] [stdout] 4088 | | } [INFO] [stdout] 4089 | | } [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] 4085 ~ if let Some(last) = last [INFO] [stdout] 4086 ~ && r != last + 1 { [INFO] [stdout] 4087 | consec = false; [INFO] [stdout] 4088 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:4111:21 [INFO] [stdout] | [INFO] [stdout] 4111 | / if let Some(last) = last { [INFO] [stdout] 4112 | | if r != last + 1 { [INFO] [stdout] 4113 | | consec = false; [INFO] [stdout] 4114 | | } [INFO] [stdout] 4115 | | } [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] 4111 ~ if let Some(last) = last [INFO] [stdout] 4112 ~ && r != last + 1 { [INFO] [stdout] 4113 | consec = false; [INFO] [stdout] 4114 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:4459:21 [INFO] [stdout] | [INFO] [stdout] 4459 | / if let Some(last) = last { [INFO] [stdout] 4460 | | if r != last + 1 { [INFO] [stdout] 4461 | | consec = false; [INFO] [stdout] 4462 | | } [INFO] [stdout] 4463 | | } [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] 4459 ~ if let Some(last) = last [INFO] [stdout] 4460 ~ && r != last + 1 { [INFO] [stdout] 4461 | consec = false; [INFO] [stdout] 4462 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:5355:21 [INFO] [stdout] | [INFO] [stdout] 5355 | / if let Some(last) = last { [INFO] [stdout] 5356 | | if r != last + 1 { [INFO] [stdout] 5357 | | consec = false; [INFO] [stdout] 5358 | | } [INFO] [stdout] 5359 | | } [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] 5355 ~ if let Some(last) = last [INFO] [stdout] 5356 ~ && r != last + 1 { [INFO] [stdout] 5357 | consec = false; [INFO] [stdout] 5358 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:5433:21 [INFO] [stdout] | [INFO] [stdout] 5433 | / if let Some(last) = last { [INFO] [stdout] 5434 | | if r != last + 1 { [INFO] [stdout] 5435 | | consec = false; [INFO] [stdout] 5436 | | } [INFO] [stdout] 5437 | | } [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] 5433 ~ if let Some(last) = last [INFO] [stdout] 5434 ~ && r != last + 1 { [INFO] [stdout] 5435 | consec = false; [INFO] [stdout] 5436 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:6614:21 [INFO] [stdout] | [INFO] [stdout] 6614 | / if let Some(last) = &last { [INFO] [stdout] 6615 | | if *last != key - 1 { [INFO] [stdout] 6616 | | return Ok(false); [INFO] [stdout] 6617 | | } [INFO] [stdout] 6618 | | } [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] 6614 ~ if let Some(last) = &last [INFO] [stdout] 6615 ~ && *last != key - 1 { [INFO] [stdout] 6616 | return Ok(false); [INFO] [stdout] 6617 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> androscalpel/src/tests/mod.rs:20:30 [INFO] [stdout] | [INFO] [stdout] 20 | File::create(&format!("{}/test_repport.txt", env!("CARGO_MANIFEST_DIR"),)).unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `format!("{}/test_repport.txt", env!("CARGO_MANIFEST_DIR"),)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> androscalpel/src/tests/mod.rs:30:49 [INFO] [stdout] | [INFO] [stdout] 30 | let mut file = File::open(&hello_world_dex).expect(&format!("{} not found", filename)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("{} not found", filename))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> androscalpel/src/tests/mod.rs:69:18 [INFO] [stdout] | [INFO] [stdout] 69 | fn get_class_dex<'a, 'b>(name: &'a str, dex: &'b DexFileReader) -> Option<&'b ClassDefItem> { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 69 - fn get_class_dex<'a, 'b>(name: &'a str, dex: &'b DexFileReader) -> Option<&'b ClassDefItem> { [INFO] [stdout] 69 + fn get_class_dex<'b>(name: &str, dex: &'b DexFileReader) -> Option<&'b ClassDefItem> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> androscalpel/src/tests/mod.rs:90:17 [INFO] [stdout] | [INFO] [stdout] 90 | let class = if let Some(class) = class { [INFO] [stdout] | _________________^ [INFO] [stdout] 91 | | class [INFO] [stdout] 92 | | } else { [INFO] [stdout] 93 | | return None; [INFO] [stdout] 94 | | }; [INFO] [stdout] | |_____^ help: replace it with: `class?` [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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> androscalpel/src/tests/mod.rs:146:38 [INFO] [stdout] | [INFO] [stdout] 146 | .add_dex_file("classes.dex", &new_dex, |_, _, _| None, false) [INFO] [stdout] | ^^^^^^^^ help: change this to: `new_dex` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> androscalpel/src/tests/mod.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | / match ins { [INFO] [stdout] 250 | | InsFormat::FormatFillArrayDataPayload { .. } => { [INFO] [stdout] 251 | | assert_eq!(addr % 4, 0, "Array Data table not aligned") [INFO] [stdout] ... | [INFO] [stdout] 254 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 249 ~ if let InsFormat::FormatFillArrayDataPayload { .. } = ins { [INFO] [stdout] 250 + assert_eq!(addr % 4, 0, "Array Data table not aligned") [INFO] [stdout] 251 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> androscalpel/src/tests/mod.rs:413:26 [INFO] [stdout] | [INFO] [stdout] 413 | if alignment != 0 && !(offset & (alignment - 1) == 0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(offset & (alignment - 1) != 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> androscalpel/src/tests/mod.rs:422:49 [INFO] [stdout] | [INFO] [stdout] 422 | let mut file = File::open(&hello_world_dex).expect(&format!("{} not found", filename)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("{} not found", filename))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:3828:21 [INFO] [stdout] | [INFO] [stdout] 3828 | / if let Some(last) = last { [INFO] [stdout] 3829 | | if r != last + 1 { [INFO] [stdout] 3830 | | consec = false; [INFO] [stdout] 3831 | | } [INFO] [stdout] 3832 | | } [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] 3828 ~ if let Some(last) = last [INFO] [stdout] 3829 ~ && r != last + 1 { [INFO] [stdout] 3830 | consec = false; [INFO] [stdout] 3831 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> androscalpel/src/tests/mod.rs:572:43 [INFO] [stdout] | [INFO] [stdout] 572 | let mut file = File::open(&json_path).expect(&format!("{} not found", filename)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("{} not found", filename))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> androscalpel/src/tests/mod.rs:631:20 [INFO] [stdout] | [INFO] [stdout] 631 | && &domain.to_smali_name() == "" => [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `domain.to_smali_name().is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&dex_id::IdType(cls.as_str().into())) [INFO] [stdout] .is_some()` [INFO] [stdout] --> androscalpel/src/tests/mod.rs:653:18 [INFO] [stdout] | [INFO] [stdout] 653 | .get(&dex_id::IdType(cls.as_str().into())) [INFO] [stdout] | __________________^ [INFO] [stdout] 654 | | .is_some(), [INFO] [stdout] | |__________________________^ help: replace it with: `contains_key(&dex_id::IdType(cls.as_str().into()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> androscalpel/src/tests/mod.rs:667:21 [INFO] [stdout] | [INFO] [stdout] 667 | for (_, cls) in &apk.dex_files.get("classes.dex").unwrap().classes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 667 - for (_, cls) in &apk.dex_files.get("classes.dex").unwrap().classes { [INFO] [stdout] 667 + for cls in apk.dex_files.get("classes.dex").unwrap().classes.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> androscalpel/src/tests/mod.rs:675:17 [INFO] [stdout] | [INFO] [stdout] 675 | &apktool_hiddenapi_domain, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `apktool_hiddenapi_domain` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> androscalpel/src/tests/mod.rs:688:17 [INFO] [stdout] | [INFO] [stdout] 688 | &apktool_hiddenapi_domain, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `apktool_hiddenapi_domain` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> androscalpel/src/tests/mod.rs:700:17 [INFO] [stdout] | [INFO] [stdout] 700 | &apktool_hiddenapi_domain, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `apktool_hiddenapi_domain` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> androscalpel/src/tests/mod.rs:712:17 [INFO] [stdout] | [INFO] [stdout] 712 | &apktool_hiddenapi_domain, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `apktool_hiddenapi_domain` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:3876:21 [INFO] [stdout] | [INFO] [stdout] 3876 | / if let Some(last) = last { [INFO] [stdout] 3877 | | if r != last + 1 { [INFO] [stdout] 3878 | | consec = false; [INFO] [stdout] 3879 | | } [INFO] [stdout] 3880 | | } [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] 3876 ~ if let Some(last) = last [INFO] [stdout] 3877 ~ && r != last + 1 { [INFO] [stdout] 3878 | consec = false; [INFO] [stdout] 3879 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:3902:21 [INFO] [stdout] | [INFO] [stdout] 3902 | / if let Some(last) = last { [INFO] [stdout] 3903 | | if r != last + 1 { [INFO] [stdout] 3904 | | consec = false; [INFO] [stdout] 3905 | | } [INFO] [stdout] 3906 | | } [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] 3902 ~ if let Some(last) = last [INFO] [stdout] 3903 ~ && r != last + 1 { [INFO] [stdout] 3904 | consec = false; [INFO] [stdout] 3905 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:3928:21 [INFO] [stdout] | [INFO] [stdout] 3928 | / if let Some(last) = last { [INFO] [stdout] 3929 | | if r != last + 1 { [INFO] [stdout] 3930 | | consec = false; [INFO] [stdout] 3931 | | } [INFO] [stdout] 3932 | | } [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] 3928 ~ if let Some(last) = last [INFO] [stdout] 3929 ~ && r != last + 1 { [INFO] [stdout] 3930 | consec = false; [INFO] [stdout] 3931 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:3954:21 [INFO] [stdout] | [INFO] [stdout] 3954 | / if let Some(last) = last { [INFO] [stdout] 3955 | | if r != last + 1 { [INFO] [stdout] 3956 | | consec = false; [INFO] [stdout] 3957 | | } [INFO] [stdout] 3958 | | } [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] 3954 ~ if let Some(last) = last [INFO] [stdout] 3955 ~ && r != last + 1 { [INFO] [stdout] 3956 | consec = false; [INFO] [stdout] 3957 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:3980:21 [INFO] [stdout] | [INFO] [stdout] 3980 | / if let Some(last) = last { [INFO] [stdout] 3981 | | if r != last + 1 { [INFO] [stdout] 3982 | | consec = false; [INFO] [stdout] 3983 | | } [INFO] [stdout] 3984 | | } [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] 3980 ~ if let Some(last) = last [INFO] [stdout] 3981 ~ && r != last + 1 { [INFO] [stdout] 3982 | consec = false; [INFO] [stdout] 3983 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> androscalpel/src/code_analysis/method_cfg.rs:30:20 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn get_cfg(&self) -> Result { [INFO] [stdout] | ^^^^^ ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 30 | pub fn get_cfg(&self) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:4085:21 [INFO] [stdout] | [INFO] [stdout] 4085 | / if let Some(last) = last { [INFO] [stdout] 4086 | | if r != last + 1 { [INFO] [stdout] 4087 | | consec = false; [INFO] [stdout] 4088 | | } [INFO] [stdout] 4089 | | } [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] 4085 ~ if let Some(last) = last [INFO] [stdout] 4086 ~ && r != last + 1 { [INFO] [stdout] 4087 | consec = false; [INFO] [stdout] 4088 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:4111:21 [INFO] [stdout] | [INFO] [stdout] 4111 | / if let Some(last) = last { [INFO] [stdout] 4112 | | if r != last + 1 { [INFO] [stdout] 4113 | | consec = false; [INFO] [stdout] 4114 | | } [INFO] [stdout] 4115 | | } [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] 4111 ~ if let Some(last) = last [INFO] [stdout] 4112 ~ && r != last + 1 { [INFO] [stdout] 4113 | consec = false; [INFO] [stdout] 4114 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:4459:21 [INFO] [stdout] | [INFO] [stdout] 4459 | / if let Some(last) = last { [INFO] [stdout] 4460 | | if r != last + 1 { [INFO] [stdout] 4461 | | consec = false; [INFO] [stdout] 4462 | | } [INFO] [stdout] 4463 | | } [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] 4459 ~ if let Some(last) = last [INFO] [stdout] 4460 ~ && r != last + 1 { [INFO] [stdout] 4461 | consec = false; [INFO] [stdout] 4462 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:5355:21 [INFO] [stdout] | [INFO] [stdout] 5355 | / if let Some(last) = last { [INFO] [stdout] 5356 | | if r != last + 1 { [INFO] [stdout] 5357 | | consec = false; [INFO] [stdout] 5358 | | } [INFO] [stdout] 5359 | | } [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] 5355 ~ if let Some(last) = last [INFO] [stdout] 5356 ~ && r != last + 1 { [INFO] [stdout] 5357 | consec = false; [INFO] [stdout] 5358 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:5433:21 [INFO] [stdout] | [INFO] [stdout] 5433 | / if let Some(last) = last { [INFO] [stdout] 5434 | | if r != last + 1 { [INFO] [stdout] 5435 | | consec = false; [INFO] [stdout] 5436 | | } [INFO] [stdout] 5437 | | } [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] 5433 ~ if let Some(last) = last [INFO] [stdout] 5434 ~ && r != last + 1 { [INFO] [stdout] 5435 | consec = false; [INFO] [stdout] 5436 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> androscalpel/src/instructions.rs:6614:21 [INFO] [stdout] | [INFO] [stdout] 6614 | / if let Some(last) = &last { [INFO] [stdout] 6615 | | if *last != key - 1 { [INFO] [stdout] 6616 | | return Ok(false); [INFO] [stdout] 6617 | | } [INFO] [stdout] 6618 | | } [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] 6614 ~ if let Some(last) = &last [INFO] [stdout] 6615 ~ && *last != key - 1 { [INFO] [stdout] 6616 | return Ok(false); [INFO] [stdout] 6617 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> androscalpel/src/code_analysis/method_cfg.rs:30:20 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn get_cfg(&self) -> Result { [INFO] [stdout] | ^^^^^ ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 30 | pub fn get_cfg(&self) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.78s [INFO] running `Command { std: "docker" "inspect" "a35248d8c5538bef1c1883d5319f976b48885da52223bbec34e3beda5c944560", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a35248d8c5538bef1c1883d5319f976b48885da52223bbec34e3beda5c944560", kill_on_drop: false }` [INFO] [stdout] a35248d8c5538bef1c1883d5319f976b48885da52223bbec34e3beda5c944560