[INFO] cloning repository https://github.com/AlexKnauth/asr-unity-mono-offsets-tool [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AlexKnauth/asr-unity-mono-offsets-tool" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlexKnauth%2Fasr-unity-mono-offsets-tool", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlexKnauth%2Fasr-unity-mono-offsets-tool'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e76b221958f2e8dd17558c38da66001308542a93 [INFO] linting AlexKnauth/asr-unity-mono-offsets-tool against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlexKnauth%2Fasr-unity-mono-offsets-tool" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-0-tc1/source/.cargo/config.toml [INFO] removed /workspace/builds/worker-0-tc1/source/rust-toolchain [INFO] started tweaking git repo https://github.com/AlexKnauth/asr-unity-mono-offsets-tool [INFO] finished tweaking git repo https://github.com/AlexKnauth/asr-unity-mono-offsets-tool [INFO] tweaked toml for git repo https://github.com/AlexKnauth/asr-unity-mono-offsets-tool written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/AlexKnauth/asr-unity-mono-offsets-tool 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/AlexKnauth/asr-unity-mono-offsets-tool 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] Blocking waiting for file lock on package cache [INFO] [stderr] Updating git repository `https://github.com/LiveSplit/asr` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded bytemuck_derive v1.9.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2c63bfa0a1293d8a007baee805dfa047f434994533ed943ebf32e64e26c19770 [INFO] running `Command { std: "docker" "start" "-a" "2c63bfa0a1293d8a007baee805dfa047f434994533ed943ebf32e64e26c19770", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2c63bfa0a1293d8a007baee805dfa047f434994533ed943ebf32e64e26c19770", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2c63bfa0a1293d8a007baee805dfa047f434994533ed943ebf32e64e26c19770", kill_on_drop: false }` [INFO] [stdout] 2c63bfa0a1293d8a007baee805dfa047f434994533ed943ebf32e64e26c19770 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9824266d9605a0a2219a6e886df9e0630ec0ac0eeee3c7bc3a04d798f1516cb4 [INFO] running `Command { std: "docker" "start" "-a" "9824266d9605a0a2219a6e886df9e0630ec0ac0eeee3c7bc3a04d798f1516cb4", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.94 [INFO] [stderr] Checking time-core v0.1.4 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking deranged v0.4.0 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Checking time v0.3.40 [INFO] [stderr] Compiling bytemuck_derive v1.9.2 [INFO] [stderr] Checking bytemuck v1.22.0 [INFO] [stderr] Checking asr v0.1.0 (https://github.com/LiveSplit/asr#8518eb11) [INFO] [stderr] Checking asr-unity-mono-offsets-tool v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `vtable_cap` [INFO] [stdout] --> src/lib.rs:1109:32 [INFO] [stdout] | [INFO] [stdout] 1109 | let (vtable_score, vtable_cap) = v2_v3_monovtable_vtable_score( [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vtable_cap` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CSTR` is never used [INFO] [stdout] --> src/lib.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | const CSTR: usize = 128; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PROCESS_NAMES` is never used [INFO] [stdout] --> src/lib.rs:33:7 [INFO] [stdout] | [INFO] [stdout] 33 | const PROCESS_NAMES: [&str; 17] = [ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MONO_NAMES` is never used [INFO] [stdout] --> src/lib.rs:53:7 [INFO] [stdout] | [INFO] [stdout] 53 | const MONO_NAMES: [&str; 6] = [ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `UNITY_PLAYER_NAMES` is never used [INFO] [stdout] --> src/lib.rs:62:7 [INFO] [stdout] | [INFO] [stdout] 62 | const UNITY_PLAYER_NAMES: [&str; 3] = ["UnityPlayer.dll", "UnityPlayer.so", "UnityPlayer.dylib"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `EXCLUDE_IMAGE_SCORE` is never used [INFO] [stdout] --> src/lib.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | static EXCLUDE_IMAGE_SCORE: [&str; 4] = ["Byte", "UInt16", "Int32", "UInt32"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `EXCLUDE_PARENT_SCORE` is never used [INFO] [stdout] --> src/lib.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | static EXCLUDE_PARENT_SCORE: [&str; 33] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAME_FIELD_COUNTS` is never used [INFO] [stdout] --> src/lib.rs:104:7 [INFO] [stdout] | [INFO] [stdout] 104 | const NAME_FIELD_COUNTS: [(&str, (&[u32], &[u32])); 5] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAME_STATIC_FIELD_BYTES` is never used [INFO] [stdout] --> src/lib.rs:118:7 [INFO] [stdout] | [INFO] [stdout] 118 | const NAME_STATIC_FIELD_BYTES: [(&str, &[(&str, &[(&[(&str, &str)], &[u8])])]); 9] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/lib.rs:191:10 [INFO] [stdout] | [INFO] [stdout] 191 | async fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `option_main` is never used [INFO] [stdout] --> src/lib.rs:225:10 [INFO] [stdout] | [INFO] [stdout] 225 | async fn option_main(process: &Process, name: &str) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `static_table_offsets_v1` is never used [INFO] [stdout] --> src/lib.rs:1021:10 [INFO] [stdout] | [INFO] [stdout] 1021 | async fn static_table_offsets_v1(pointer_size: PointerSize) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `static_table_offsets_v2_v3` is never used [INFO] [stdout] --> src/lib.rs:1037:10 [INFO] [stdout] | [INFO] [stdout] 1037 | async fn static_table_offsets_v2_v3( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_pointer` is never used [INFO] [stdout] --> src/lib.rs:1157:4 [INFO] [stdout] | [INFO] [stdout] 1157 | fn read_pointer( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_version` is never used [INFO] [stdout] --> src/lib.rs:1165:4 [INFO] [stdout] | [INFO] [stdout] 1165 | fn detect_version(process: &Process, mono_name: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ascii_read_u32` is never used [INFO] [stdout] --> src/lib.rs:1202:4 [INFO] [stdout] | [INFO] [stdout] 1202 | fn ascii_read_u32(slice: &[u8]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `address_aname_score` is never used [INFO] [stdout] --> src/lib.rs:1218:4 [INFO] [stdout] | [INFO] [stdout] 1218 | fn address_aname_score(process: &Process, pointer_size: PointerSize, address: Address) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `monoassembly_aname_string` is never used [INFO] [stdout] --> src/lib.rs:1237:4 [INFO] [stdout] | [INFO] [stdout] 1237 | fn monoassembly_aname_string( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `address_image_score` is never used [INFO] [stdout] --> src/lib.rs:1249:4 [INFO] [stdout] | [INFO] [stdout] 1249 | fn address_image_score(process: &Process, pointer_size: PointerSize, address: Address) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `monoimage_class_cache_score` is never used [INFO] [stdout] --> src/lib.rs:1268:4 [INFO] [stdout] | [INFO] [stdout] 1268 | fn monoimage_class_cache_score( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `monoclass_image_score` is never used [INFO] [stdout] --> src/lib.rs:1315:4 [INFO] [stdout] | [INFO] [stdout] 1315 | fn monoclass_image_score( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `monoclass_name_score` is never used [INFO] [stdout] --> src/lib.rs:1340:4 [INFO] [stdout] | [INFO] [stdout] 1340 | fn monoclass_name_score( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `class_name` is never used [INFO] [stdout] --> src/lib.rs:1402:4 [INFO] [stdout] | [INFO] [stdout] 1402 | fn class_name( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `monoclassdef_next_class_cache_score` is never used [INFO] [stdout] --> src/lib.rs:1419:4 [INFO] [stdout] | [INFO] [stdout] 1419 | fn monoclassdef_next_class_cache_score( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `monoclassdef_field_count_score` is never used [INFO] [stdout] --> src/lib.rs:1472:4 [INFO] [stdout] | [INFO] [stdout] 1472 | fn monoclassdef_field_count_score( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `class_field_count` is never used [INFO] [stdout] --> src/lib.rs:1496:4 [INFO] [stdout] | [INFO] [stdout] 1496 | fn class_field_count( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `monoclass_fields_score` is never used [INFO] [stdout] --> src/lib.rs:1504:4 [INFO] [stdout] | [INFO] [stdout] 1504 | fn monoclass_fields_score( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `monoclass_parent_score` is never used [INFO] [stdout] --> src/lib.rs:1539:4 [INFO] [stdout] | [INFO] [stdout] 1539 | fn monoclass_parent_score( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `monoclass_runtime_info_score` is never used [INFO] [stdout] --> src/lib.rs:1580:4 [INFO] [stdout] | [INFO] [stdout] 1580 | fn monoclass_runtime_info_score( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `v2_v3_monoclass_vtable_size_score` is never used [INFO] [stdout] --> src/lib.rs:1619:4 [INFO] [stdout] | [INFO] [stdout] 1619 | fn v2_v3_monoclass_vtable_size_score( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `class_vtable_size` is never used [INFO] [stdout] --> src/lib.rs:1645:4 [INFO] [stdout] | [INFO] [stdout] 1645 | fn class_vtable_size( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `v2_v3_monovtable_vtable_score` is never used [INFO] [stdout] --> src/lib.rs:1654:4 [INFO] [stdout] | [INFO] [stdout] 1654 | fn v2_v3_monovtable_vtable_score( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `assemblies_iter` is never used [INFO] [stdout] --> src/lib.rs:1807:4 [INFO] [stdout] | [INFO] [stdout] 1807 | fn assemblies_iter<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `classes_no_next_iter` is never used [INFO] [stdout] --> src/lib.rs:1836:4 [INFO] [stdout] | [INFO] [stdout] 1836 | fn classes_no_next_iter<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `classes_iter` is never used [INFO] [stdout] --> src/lib.rs:1858:4 [INFO] [stdout] | [INFO] [stdout] 1858 | fn classes_iter<'a>( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `classes_map` is never used [INFO] [stdout] --> src/lib.rs:1882:4 [INFO] [stdout] | [INFO] [stdout] 1882 | fn classes_map( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `class_field_name_offset` is never used [INFO] [stdout] --> src/lib.rs:1910:4 [INFO] [stdout] | [INFO] [stdout] 1910 | fn class_field_name_offset( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `class_field_names_offsets_iter` is never used [INFO] [stdout] --> src/lib.rs:1940:4 [INFO] [stdout] | [INFO] [stdout] 1940 | fn class_field_names_offsets_iter<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `BinaryFormat` is never used [INFO] [stdout] --> src/binary_format.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum BinaryFormat { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PAGE_SIZE` is never used [INFO] [stdout] --> src/binary_format.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const PAGE_SIZE: u64 = 0x1000; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_detect_binary_format` is never used [INFO] [stdout] --> src/binary_format.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn process_detect_binary_format(process: &Process, name: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scan_page_detect_binary_format` is never used [INFO] [stdout] --> src/binary_format.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn scan_page_detect_binary_format( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scan_page` is never used [INFO] [stdout] --> src/binary_format.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn scan_page(process: &Process, range: (Address, u64)) -> Option
{ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `address_detect_binary_format` is never used [INFO] [stdout] --> src/binary_format.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn address_detect_binary_format(process: &Process, address: Address) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bytes_detect_binary_format` is never used [INFO] [stdout] --> src/binary_format.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 66 | fn bytes_detect_binary_format(bytes: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_read_all_bytes` is never used [INFO] [stdout] --> src/file.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn file_read_all_bytes>(path: P) -> io::Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CSTR` is never used [INFO] [stdout] --> src/file_format/elf.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const CSTR: usize = 128; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SHT_SYMTAB` is never used [INFO] [stdout] --> src/file_format/elf.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const SHT_SYMTAB: u32 = 0x2; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SHT_DYNSYM` is never used [INFO] [stdout] --> src/file_format/elf.rs:15:7 [INFO] [stdout] | [INFO] [stdout] 15 | const SHT_DYNSYM: u32 = 11; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HEADER_SIZE` is never used [INFO] [stdout] --> src/file_format/elf.rs:37:7 [INFO] [stdout] | [INFO] [stdout] 37 | const HEADER_SIZE: usize = mem::size_of::
(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ElfFormatOffsets` is never constructed [INFO] [stdout] --> src/file_format/elf.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | struct ElfFormatOffsets { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/file_format/elf.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 54 | impl ElfFormatOffsets { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] 55 | fn new(is_64_bit: bool) -> ElfFormatOffsets { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scan_elf_page` is never used [INFO] [stdout] --> src/file_format/elf.rs:91:8 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn scan_elf_page(process: &Process, range: (Address, u64)) -> Option
{ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_pointer_size` is never used [INFO] [stdout] --> src/file_format/elf.rs:109:8 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn detect_pointer_size(process: &Process, module_range: (Address, u64)) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_function_symbol_address` is never used [INFO] [stdout] --> src/file_format/elf.rs:125:8 [INFO] [stdout] | [INFO] [stdout] 125 | pub fn get_function_symbol_address( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_function_address` is never used [INFO] [stdout] --> src/file_format/elf.rs:172:8 [INFO] [stdout] | [INFO] [stdout] 172 | pub fn get_function_address( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_function_offset` is never used [INFO] [stdout] --> src/file_format/elf.rs:196:4 [INFO] [stdout] | [INFO] [stdout] 196 | fn get_function_offset(bs: &[u8], function_name: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `slice_read` is never used [INFO] [stdout] --> src/file_format/elf.rs:236:4 [INFO] [stdout] | [INFO] [stdout] 236 | fn slice_read( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CSTR` is never used [INFO] [stdout] --> src/file_format/macho.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const CSTR: usize = 128; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MH_MAGIC_32` is never used [INFO] [stdout] --> src/file_format/macho.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const MH_MAGIC_32: u32 = 0xfeedface; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MH_CIGAM_32` is never used [INFO] [stdout] --> src/file_format/macho.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const MH_CIGAM_32: u32 = 0xcefaedfe; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MH_MAGIC_64` is never used [INFO] [stdout] --> src/file_format/macho.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const MH_MAGIC_64: u32 = 0xfeedfacf; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MH_CIGAM_64` is never used [INFO] [stdout] --> src/file_format/macho.rs:15:7 [INFO] [stdout] | [INFO] [stdout] 15 | const MH_CIGAM_64: u32 = 0xcffaedfe; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LC_SYMTAB` is never used [INFO] [stdout] --> src/file_format/macho.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const LC_SYMTAB: u32 = 0x2; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LC_SEGMENT_64` is never used [INFO] [stdout] --> src/file_format/macho.rs:24:7 [INFO] [stdout] | [INFO] [stdout] 24 | const LC_SEGMENT_64: u32 = 0x19; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HEADER_SIZE` is never used [INFO] [stdout] --> src/file_format/macho.rs:26:7 [INFO] [stdout] | [INFO] [stdout] 26 | const HEADER_SIZE: usize = 32; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MachOFormatOffsets` is never constructed [INFO] [stdout] --> src/file_format/macho.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | struct MachOFormatOffsets { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/file_format/macho.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 41 | impl MachOFormatOffsets { [INFO] [stdout] | ----------------------- associated function in this implementation [INFO] [stdout] 42 | const fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Symbol` is never constructed [INFO] [stdout] --> src/file_format/macho.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 62 | pub struct Symbol { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_name` is never used [INFO] [stdout] --> src/file_format/macho.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl Symbol { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 70 | /// Tries to retrieve the name of the current function [INFO] [stdout] 71 | pub fn get_name( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scan_macho_page` is never used [INFO] [stdout] --> src/file_format/macho.rs:80:8 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn scan_macho_page(process: &Process, range: (Address, u64)) -> Option
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_pointer_size` is never used [INFO] [stdout] --> src/file_format/macho.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn detect_pointer_size(process: &Process, module_range: (Address, u64)) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `MachOView` is never used [INFO] [stdout] --> src/file_format/macho.rs:109:7 [INFO] [stdout] | [INFO] [stdout] 109 | trait MachOView { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MachOFile` is never constructed [INFO] [stdout] --> src/file_format/macho.rs:126:8 [INFO] [stdout] | [INFO] [stdout] 126 | struct MachOFile<'a> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MachOMemory` is never constructed [INFO] [stdout] --> src/file_format/macho.rs:132:8 [INFO] [stdout] | [INFO] [stdout] 132 | struct MachOMemory<'a> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MachOFileMemory` is never constructed [INFO] [stdout] --> src/file_format/macho.rs:137:8 [INFO] [stdout] | [INFO] [stdout] 137 | struct MachOFileMemory<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `compare_choose` is never used [INFO] [stdout] --> src/file_format/macho.rs:172:8 [INFO] [stdout] | [INFO] [stdout] 171 | impl<'a> MachOFileMemory<'a> { [INFO] [stdout] | ---------------------------- method in this implementation [INFO] [stdout] 172 | fn compare_choose( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SymbolsState` is never constructed [INFO] [stdout] --> src/file_format/macho.rs:237:8 [INFO] [stdout] | [INFO] [stdout] 237 | struct SymbolsState { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/file_format/macho.rs:249:8 [INFO] [stdout] | [INFO] [stdout] 248 | impl SymbolsState { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 249 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_function_symbol_address` is never used [INFO] [stdout] --> src/file_format/macho.rs:263:8 [INFO] [stdout] | [INFO] [stdout] 263 | pub fn get_function_symbol_address( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_function_address` is never used [INFO] [stdout] --> src/file_format/macho.rs:312:8 [INFO] [stdout] | [INFO] [stdout] 312 | pub fn get_function_address( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_function_offset` is never used [INFO] [stdout] --> src/file_format/macho.rs:340:4 [INFO] [stdout] | [INFO] [stdout] 340 | fn get_function_offset(macho_bytes: M, function_name: &[u8]) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `slice_read` is never used [INFO] [stdout] --> src/file_format/macho.rs:412:8 [INFO] [stdout] | [INFO] [stdout] 412 | pub fn slice_read>( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `symbols` is never used [INFO] [stdout] --> src/file_format/macho.rs:422:8 [INFO] [stdout] | [INFO] [stdout] 422 | pub fn symbols( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fileoff_to_vmaddr` is never used [INFO] [stdout] --> src/file_format/macho.rs:516:4 [INFO] [stdout] | [INFO] [stdout] 516 | fn fileoff_to_vmaddr(map: &BTreeMap, fileoff: u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_pointer_size` is never used [INFO] [stdout] --> src/file_format/pe.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn detect_pointer_size(process: &Process, module_range: (Address, u64)) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ELF` contains a capitalized acronym [INFO] [stdout] --> src/binary_format.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | ELF, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Elf` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/file_format/elf.rs:143:37 [INFO] [stdout] | [INFO] [stdout] 143 | asr::print_message(&format!( [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 144 | | "elf::get_function_symbol_address: all good, both Some and equal" [INFO] [stdout] 145 | | )); [INFO] [stdout] | |_________________^ help: consider using `.to_string()`: `"elf::get_function_symbol_address: all good, both Some and equal".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_format/elf.rs:182:52 [INFO] [stdout] | [INFO] [stdout] 182 | let function_offset: u32 = get_function_offset(&elf_bytes2, function_name)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `elf_bytes2` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_format/elf.rs:186:50 [INFO] [stdout] | [INFO] [stdout] 186 | let bytes_expected: [u8; 0x100] = slice_read(&elf_bytes2, function_offset as usize).ok()?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `elf_bytes2` [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] --> src/file_format/elf.rs:201:33 [INFO] [stdout] | [INFO] [stdout] 201 | let shoff: u32 = slice_read(&bs, offsets.e_shoff).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:202:37 [INFO] [stdout] | [INFO] [stdout] 202 | let shentsize: u16 = slice_read(&bs, offsets.e_shentsize).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:203:33 [INFO] [stdout] | [INFO] [stdout] 203 | let shnum: u16 = slice_read(&bs, offsets.e_shnum).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:206:39 [INFO] [stdout] | [INFO] [stdout] 206 | let sh_type: u32 = slice_read(&bs, ent_a + offsets.sh_type).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:210:50 [INFO] [stdout] | [INFO] [stdout] 210 | let symbol_table_a: u32 = slice_read(&bs, ent_a + offsets.sh_offset).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:211:43 [INFO] [stdout] | [INFO] [stdout] 211 | let sh_size: u32 = slice_read(&bs, ent_a + offsets.sh_size).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:212:50 [INFO] [stdout] | [INFO] [stdout] 212 | let string_table_i: u32 = slice_read(&bs, ent_a + offsets.sh_link).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:213:46 [INFO] [stdout] | [INFO] [stdout] 213 | let sh_entsize: u32 = slice_read(&bs, ent_a + offsets.sh_entsize).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:217:28 [INFO] [stdout] | [INFO] [stdout] 217 | slice_read(&bs, string_table_ent_a + offsets.sh_offset).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:221:58 [INFO] [stdout] | [INFO] [stdout] 221 | let symbol_name_offset: u32 = slice_read(&bs, sym_ent_a + offsets.st_name).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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: enclosing `Some` and `?` operator are unneeded [INFO] [stdout] --> src/file_format/elf.rs:226:28 [INFO] [stdout] | [INFO] [stdout] 226 | return Some(slice_read::(&bs, sym_ent_a + offsets.st_value).ok()?); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Some` and `?` operator [INFO] [stdout] | [INFO] [stdout] 226 - return Some(slice_read::(&bs, sym_ent_a + offsets.st_value).ok()?); [INFO] [stdout] 226 + return slice_read::(&bs, sym_ent_a + offsets.st_value).ok(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_format/elf.rs:226:51 [INFO] [stdout] | [INFO] [stdout] 226 | return Some(slice_read::(&bs, sym_ent_a + offsets.st_value).ok()?); [INFO] [stdout] | ^^^ help: change this to: `bs` [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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/file_format/macho.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | / match process.read::(a) { [INFO] [stdout] 90 | | Ok(MH_MAGIC_64 | MH_CIGAM_64 | MH_MAGIC_32 | MH_CIGAM_32) => { [INFO] [stdout] 91 | | return Some(a); [INFO] [stdout] ... | [INFO] [stdout] 94 | | } [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] 89 ~ if let Ok(MH_MAGIC_64 | MH_CIGAM_64 | MH_MAGIC_32 | MH_CIGAM_32) = process.read::(a) { [INFO] [stdout] 90 + return Some(a); [INFO] [stdout] 91 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/file_format/macho.rs:283:37 [INFO] [stdout] | [INFO] [stdout] 283 | asr::print_message(&format!( [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 284 | | "macho::get_function_symbol_address: all good, both Some and equal" [INFO] [stdout] 285 | | )); [INFO] [stdout] | |_________________^ help: consider using `.to_string()`: `"macho::get_function_symbol_address: all good, both Some and equal".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_format/macho.rs:327:20 [INFO] [stdout] | [INFO] [stdout] 327 | bytes: &macho_bytes2, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `macho_bytes2` [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] --> src/file_format/macho.rs:332:50 [INFO] [stdout] | [INFO] [stdout] 332 | let bytes_expected: [u8; 0x100] = slice_read(&macho_bytes2, function_offset).ok()?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `macho_bytes2` [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: enclosing `Some` and `?` operator are unneeded [INFO] [stdout] --> src/file_format/macho.rs:394:28 [INFO] [stdout] | [INFO] [stdout] 394 | return Some(macho_bytes.read( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 395 | | "function_offset", [INFO] [stdout] 396 | | symbol_table_j_value, [INFO] [stdout] 397 | | symbol_table_j_value, [INFO] [stdout] 398 | | )?); [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] help: remove the enclosing `Some` and `?` operator [INFO] [stdout] | [INFO] [stdout] 394 ~ return macho_bytes.read( [INFO] [stdout] 395 | "function_offset", [INFO] [stdout] 396 | symbol_table_j_value, [INFO] [stdout] 397 | symbol_table_j_value, [INFO] [stdout] 398 ~ ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lib.rs:104:26 [INFO] [stdout] | [INFO] [stdout] 104 | const NAME_FIELD_COUNTS: [(&str, (&[u32], &[u32])); 5] = [ [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lib.rs:118:32 [INFO] [stdout] | [INFO] [stdout] 118 | const NAME_STATIC_FIELD_BYTES: [(&str, &[(&str, &[(&[(&str, &str)], &[u8])])]); 9] = [ [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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:226:47 [INFO] [stdout] | [INFO] [stdout] 226 | let format = process_detect_binary_format(&process, name)?; [INFO] [stdout] | ^^^^^^^^ help: change this to: `process` [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: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:792:36 [INFO] [stdout] | [INFO] [stdout] 792 | .unwrap_or(n1.iter().max().unwrap().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*n1.iter().max().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:813:28 [INFO] [stdout] | [INFO] [stdout] 813 | .unwrap_or(n1.iter().max().unwrap().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*n1.iter().max().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lib.rs:929:38 [INFO] [stdout] | [INFO] [stdout] 929 | let map_name_static_field_bytes: BTreeMap<&str, &[(&str, &[(&[(&str, &str)], &[u8])])]> = [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] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/lib.rs:933:55 [INFO] [stdout] | [INFO] [stdout] 933 | .filter_map(|&k| Some((k, *map_name_class.get(&k.to_string())?))) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (13/7) [INFO] [stdout] --> src/lib.rs:1037:1 [INFO] [stdout] | [INFO] [stdout] 1037 | / async fn static_table_offsets_v2_v3( [INFO] [stdout] 1038 | | process: &Process, [INFO] [stdout] 1039 | | pointer_size: PointerSize, [INFO] [stdout] 1040 | | version: mono::Version, [INFO] [stdout] ... | [INFO] [stdout] 1050 | | monoclassruntimeinfo_domain_vtables: i32, [INFO] [stdout] 1051 | | ) -> Option<()> { [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: unused variable: `vtable_cap` [INFO] [stdout] --> src/lib.rs:1109:32 [INFO] [stdout] | [INFO] [stdout] 1109 | let (vtable_score, vtable_cap) = v2_v3_monovtable_vtable_score( [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vtable_cap` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1330:8 [INFO] [stdout] | [INFO] [stdout] 1330 | if !process.read::(c_image).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `process.read::(c_image).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/lib.rs:1419:1 [INFO] [stdout] | [INFO] [stdout] 1419 | / fn monoclassdef_next_class_cache_score( [INFO] [stdout] 1420 | | process: &Process, [INFO] [stdout] 1421 | | pointer_size: PointerSize, [INFO] [stdout] 1422 | | table_addr: Address, [INFO] [stdout] ... | [INFO] [stdout] 1427 | | monoclass_name_space: i32, [INFO] [stdout] 1428 | | ) -> i32 { [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] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/lib.rs:1504:1 [INFO] [stdout] | [INFO] [stdout] 1504 | / fn monoclass_fields_score( [INFO] [stdout] 1505 | | process: &Process, [INFO] [stdout] 1506 | | pointer_size: PointerSize, [INFO] [stdout] 1507 | | class: Address, [INFO] [stdout] ... | [INFO] [stdout] 1512 | | monoclassfield_name: i32, [INFO] [stdout] 1513 | | ) -> i32 { [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] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (13/7) [INFO] [stdout] --> src/lib.rs:1654:1 [INFO] [stdout] | [INFO] [stdout] 1654 | / fn v2_v3_monovtable_vtable_score( [INFO] [stdout] 1655 | | process: &Process, [INFO] [stdout] 1656 | | pointer_size: PointerSize, [INFO] [stdout] 1657 | | map_name_class: &BTreeMap, [INFO] [stdout] ... | [INFO] [stdout] 1667 | | monovtable_vtable: i32, [INFO] [stdout] 1668 | | ) -> (i32, i32) { [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] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lib.rs:1671:38 [INFO] [stdout] | [INFO] [stdout] 1671 | let map_name_static_field_bytes: BTreeMap<&str, &[(&str, &[(&[(&str, &str)], &[u8])])]> = [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] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/lib.rs:1744:40 [INFO] [stdout] | [INFO] [stdout] 1744 | for (nesteds, bytes) in bs.into_iter() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/lib.rs:1746:72 [INFO] [stdout] | [INFO] [stdout] 1746 | for &(nested_class_name, nested_field_name) in nesteds.into_iter() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `BTreeMap` [INFO] [stdout] --> src/lib.rs:1903:9 [INFO] [stdout] | [INFO] [stdout] 1903 | / if !map_name_class.contains_key(&k) { [INFO] [stdout] 1904 | | map_name_class.insert(k, c); [INFO] [stdout] 1905 | | } [INFO] [stdout] | |_________^ help: try: `map_name_class.entry(k).or_insert(c);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/lib.rs:1910:1 [INFO] [stdout] | [INFO] [stdout] 1910 | / fn class_field_name_offset( [INFO] [stdout] 1911 | | process: &Process, [INFO] [stdout] 1912 | | pointer_size: PointerSize, [INFO] [stdout] 1913 | | c: Address, [INFO] [stdout] ... | [INFO] [stdout] 1920 | | monoclassfield_offset: i32, [INFO] [stdout] 1921 | | ) -> Option { [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] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/lib.rs:1940:1 [INFO] [stdout] | [INFO] [stdout] 1940 | / fn class_field_names_offsets_iter<'a>( [INFO] [stdout] 1941 | | process: &'a Process, [INFO] [stdout] 1942 | | pointer_size: PointerSize, [INFO] [stdout] 1943 | | c: Address, [INFO] [stdout] ... | [INFO] [stdout] 1949 | | monoclassfield_offset: i32, [INFO] [stdout] 1950 | | ) -> impl Iterator + 'a { [INFO] [stdout] | |_____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MachOFileMemory` is never constructed [INFO] [stdout] --> src/file_format/macho.rs:137:8 [INFO] [stdout] | [INFO] [stdout] 137 | struct MachOFileMemory<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `compare_choose` is never used [INFO] [stdout] --> src/file_format/macho.rs:172:8 [INFO] [stdout] | [INFO] [stdout] 171 | impl<'a> MachOFileMemory<'a> { [INFO] [stdout] | ---------------------------- method in this implementation [INFO] [stdout] 172 | fn compare_choose( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ELF` contains a capitalized acronym [INFO] [stdout] --> src/binary_format.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | ELF, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Elf` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/file_format/elf.rs:143:37 [INFO] [stdout] | [INFO] [stdout] 143 | asr::print_message(&format!( [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 144 | | "elf::get_function_symbol_address: all good, both Some and equal" [INFO] [stdout] 145 | | )); [INFO] [stdout] | |_________________^ help: consider using `.to_string()`: `"elf::get_function_symbol_address: all good, both Some and equal".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_format/elf.rs:182:52 [INFO] [stdout] | [INFO] [stdout] 182 | let function_offset: u32 = get_function_offset(&elf_bytes2, function_name)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `elf_bytes2` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_format/elf.rs:186:50 [INFO] [stdout] | [INFO] [stdout] 186 | let bytes_expected: [u8; 0x100] = slice_read(&elf_bytes2, function_offset as usize).ok()?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `elf_bytes2` [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] --> src/file_format/elf.rs:201:33 [INFO] [stdout] | [INFO] [stdout] 201 | let shoff: u32 = slice_read(&bs, offsets.e_shoff).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:202:37 [INFO] [stdout] | [INFO] [stdout] 202 | let shentsize: u16 = slice_read(&bs, offsets.e_shentsize).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:203:33 [INFO] [stdout] | [INFO] [stdout] 203 | let shnum: u16 = slice_read(&bs, offsets.e_shnum).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:206:39 [INFO] [stdout] | [INFO] [stdout] 206 | let sh_type: u32 = slice_read(&bs, ent_a + offsets.sh_type).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:210:50 [INFO] [stdout] | [INFO] [stdout] 210 | let symbol_table_a: u32 = slice_read(&bs, ent_a + offsets.sh_offset).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:211:43 [INFO] [stdout] | [INFO] [stdout] 211 | let sh_size: u32 = slice_read(&bs, ent_a + offsets.sh_size).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:212:50 [INFO] [stdout] | [INFO] [stdout] 212 | let string_table_i: u32 = slice_read(&bs, ent_a + offsets.sh_link).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:213:46 [INFO] [stdout] | [INFO] [stdout] 213 | let sh_entsize: u32 = slice_read(&bs, ent_a + offsets.sh_entsize).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:217:28 [INFO] [stdout] | [INFO] [stdout] 217 | slice_read(&bs, string_table_ent_a + offsets.sh_offset).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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] --> src/file_format/elf.rs:221:58 [INFO] [stdout] | [INFO] [stdout] 221 | let symbol_name_offset: u32 = slice_read(&bs, sym_ent_a + offsets.st_name).ok()?; [INFO] [stdout] | ^^^ help: change this to: `bs` [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: enclosing `Some` and `?` operator are unneeded [INFO] [stdout] --> src/file_format/elf.rs:226:28 [INFO] [stdout] | [INFO] [stdout] 226 | return Some(slice_read::(&bs, sym_ent_a + offsets.st_value).ok()?); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Some` and `?` operator [INFO] [stdout] | [INFO] [stdout] 226 - return Some(slice_read::(&bs, sym_ent_a + offsets.st_value).ok()?); [INFO] [stdout] 226 + return slice_read::(&bs, sym_ent_a + offsets.st_value).ok(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_format/elf.rs:226:51 [INFO] [stdout] | [INFO] [stdout] 226 | return Some(slice_read::(&bs, sym_ent_a + offsets.st_value).ok()?); [INFO] [stdout] | ^^^ help: change this to: `bs` [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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/file_format/macho.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | / match process.read::(a) { [INFO] [stdout] 90 | | Ok(MH_MAGIC_64 | MH_CIGAM_64 | MH_MAGIC_32 | MH_CIGAM_32) => { [INFO] [stdout] 91 | | return Some(a); [INFO] [stdout] ... | [INFO] [stdout] 94 | | } [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] 89 ~ if let Ok(MH_MAGIC_64 | MH_CIGAM_64 | MH_MAGIC_32 | MH_CIGAM_32) = process.read::(a) { [INFO] [stdout] 90 + return Some(a); [INFO] [stdout] 91 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/file_format/macho.rs:283:37 [INFO] [stdout] | [INFO] [stdout] 283 | asr::print_message(&format!( [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 284 | | "macho::get_function_symbol_address: all good, both Some and equal" [INFO] [stdout] 285 | | )); [INFO] [stdout] | |_________________^ help: consider using `.to_string()`: `"macho::get_function_symbol_address: all good, both Some and equal".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_format/macho.rs:327:20 [INFO] [stdout] | [INFO] [stdout] 327 | bytes: &macho_bytes2, [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `macho_bytes2` [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] --> src/file_format/macho.rs:332:50 [INFO] [stdout] | [INFO] [stdout] 332 | let bytes_expected: [u8; 0x100] = slice_read(&macho_bytes2, function_offset).ok()?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `macho_bytes2` [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: enclosing `Some` and `?` operator are unneeded [INFO] [stdout] --> src/file_format/macho.rs:394:28 [INFO] [stdout] | [INFO] [stdout] 394 | return Some(macho_bytes.read( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 395 | | "function_offset", [INFO] [stdout] 396 | | symbol_table_j_value, [INFO] [stdout] 397 | | symbol_table_j_value, [INFO] [stdout] 398 | | )?); [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] help: remove the enclosing `Some` and `?` operator [INFO] [stdout] | [INFO] [stdout] 394 ~ return macho_bytes.read( [INFO] [stdout] 395 | "function_offset", [INFO] [stdout] 396 | symbol_table_j_value, [INFO] [stdout] 397 | symbol_table_j_value, [INFO] [stdout] 398 ~ ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lib.rs:104:26 [INFO] [stdout] | [INFO] [stdout] 104 | const NAME_FIELD_COUNTS: [(&str, (&[u32], &[u32])); 5] = [ [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lib.rs:118:32 [INFO] [stdout] | [INFO] [stdout] 118 | const NAME_STATIC_FIELD_BYTES: [(&str, &[(&str, &[(&[(&str, &str)], &[u8])])]); 9] = [ [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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:226:47 [INFO] [stdout] | [INFO] [stdout] 226 | let format = process_detect_binary_format(&process, name)?; [INFO] [stdout] | ^^^^^^^^ help: change this to: `process` [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: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:792:36 [INFO] [stdout] | [INFO] [stdout] 792 | .unwrap_or(n1.iter().max().unwrap().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*n1.iter().max().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/lib.rs:813:28 [INFO] [stdout] | [INFO] [stdout] 813 | .unwrap_or(n1.iter().max().unwrap().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*n1.iter().max().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lib.rs:929:38 [INFO] [stdout] | [INFO] [stdout] 929 | let map_name_static_field_bytes: BTreeMap<&str, &[(&str, &[(&[(&str, &str)], &[u8])])]> = [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] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/lib.rs:933:55 [INFO] [stdout] | [INFO] [stdout] 933 | .filter_map(|&k| Some((k, *map_name_class.get(&k.to_string())?))) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `k` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (13/7) [INFO] [stdout] --> src/lib.rs:1037:1 [INFO] [stdout] | [INFO] [stdout] 1037 | / async fn static_table_offsets_v2_v3( [INFO] [stdout] 1038 | | process: &Process, [INFO] [stdout] 1039 | | pointer_size: PointerSize, [INFO] [stdout] 1040 | | version: mono::Version, [INFO] [stdout] ... | [INFO] [stdout] 1050 | | monoclassruntimeinfo_domain_vtables: i32, [INFO] [stdout] 1051 | | ) -> Option<()> { [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1330:8 [INFO] [stdout] | [INFO] [stdout] 1330 | if !process.read::(c_image).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `process.read::(c_image).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/lib.rs:1419:1 [INFO] [stdout] | [INFO] [stdout] 1419 | / fn monoclassdef_next_class_cache_score( [INFO] [stdout] 1420 | | process: &Process, [INFO] [stdout] 1421 | | pointer_size: PointerSize, [INFO] [stdout] 1422 | | table_addr: Address, [INFO] [stdout] ... | [INFO] [stdout] 1427 | | monoclass_name_space: i32, [INFO] [stdout] 1428 | | ) -> i32 { [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] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/lib.rs:1504:1 [INFO] [stdout] | [INFO] [stdout] 1504 | / fn monoclass_fields_score( [INFO] [stdout] 1505 | | process: &Process, [INFO] [stdout] 1506 | | pointer_size: PointerSize, [INFO] [stdout] 1507 | | class: Address, [INFO] [stdout] ... | [INFO] [stdout] 1512 | | monoclassfield_name: i32, [INFO] [stdout] 1513 | | ) -> i32 { [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] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (13/7) [INFO] [stdout] --> src/lib.rs:1654:1 [INFO] [stdout] | [INFO] [stdout] 1654 | / fn v2_v3_monovtable_vtable_score( [INFO] [stdout] 1655 | | process: &Process, [INFO] [stdout] 1656 | | pointer_size: PointerSize, [INFO] [stdout] 1657 | | map_name_class: &BTreeMap, [INFO] [stdout] ... | [INFO] [stdout] 1667 | | monovtable_vtable: i32, [INFO] [stdout] 1668 | | ) -> (i32, i32) { [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] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lib.rs:1671:38 [INFO] [stdout] | [INFO] [stdout] 1671 | let map_name_static_field_bytes: BTreeMap<&str, &[(&str, &[(&[(&str, &str)], &[u8])])]> = [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] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/lib.rs:1744:40 [INFO] [stdout] | [INFO] [stdout] 1744 | for (nesteds, bytes) in bs.into_iter() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/lib.rs:1746:72 [INFO] [stdout] | [INFO] [stdout] 1746 | for &(nested_class_name, nested_field_name) in nesteds.into_iter() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `BTreeMap` [INFO] [stdout] --> src/lib.rs:1903:9 [INFO] [stdout] | [INFO] [stdout] 1903 | / if !map_name_class.contains_key(&k) { [INFO] [stdout] 1904 | | map_name_class.insert(k, c); [INFO] [stdout] 1905 | | } [INFO] [stdout] | |_________^ help: try: `map_name_class.entry(k).or_insert(c);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/lib.rs:1910:1 [INFO] [stdout] | [INFO] [stdout] 1910 | / fn class_field_name_offset( [INFO] [stdout] 1911 | | process: &Process, [INFO] [stdout] 1912 | | pointer_size: PointerSize, [INFO] [stdout] 1913 | | c: Address, [INFO] [stdout] ... | [INFO] [stdout] 1920 | | monoclassfield_offset: i32, [INFO] [stdout] 1921 | | ) -> Option { [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] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/lib.rs:1940:1 [INFO] [stdout] | [INFO] [stdout] 1940 | / fn class_field_names_offsets_iter<'a>( [INFO] [stdout] 1941 | | process: &'a Process, [INFO] [stdout] 1942 | | pointer_size: PointerSize, [INFO] [stdout] 1943 | | c: Address, [INFO] [stdout] ... | [INFO] [stdout] 1949 | | monoclassfield_offset: i32, [INFO] [stdout] 1950 | | ) -> impl Iterator + 'a { [INFO] [stdout] | |_____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.93s [INFO] running `Command { std: "docker" "inspect" "9824266d9605a0a2219a6e886df9e0630ec0ac0eeee3c7bc3a04d798f1516cb4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9824266d9605a0a2219a6e886df9e0630ec0ac0eeee3c7bc3a04d798f1516cb4", kill_on_drop: false }` [INFO] [stdout] 9824266d9605a0a2219a6e886df9e0630ec0ac0eeee3c7bc3a04d798f1516cb4