[INFO] updating cached repository Fedcomp/rxxma [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Fedcomp/rxxma [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Fedcomp/rxxma" "work/ex/clippy-test-run/sources/stable/gh/Fedcomp/rxxma"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Fedcomp/rxxma'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Fedcomp/rxxma" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Fedcomp/rxxma"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Fedcomp/rxxma'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] f6496fbd9b13f09bb3aadeda3622e9eec6b1adc2 [INFO] sha for GitHub repo Fedcomp/rxxma: f6496fbd9b13f09bb3aadeda3622e9eec6b1adc2 [INFO] validating manifest of Fedcomp/rxxma on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of Fedcomp/rxxma on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing Fedcomp/rxxma [INFO] finished frobbing Fedcomp/rxxma [INFO] frobbed toml for Fedcomp/rxxma written to work/ex/clippy-test-run/sources/stable/gh/Fedcomp/rxxma/Cargo.toml [INFO] started frobbing Fedcomp/rxxma [INFO] finished frobbing Fedcomp/rxxma [INFO] frobbed toml for Fedcomp/rxxma written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Fedcomp/rxxma/Cargo.toml [INFO] crate Fedcomp/rxxma has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting Fedcomp/rxxma against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/Fedcomp/rxxma:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 68dfa75a3bc68547a9d9b5805299b0fff5877b081c0119af454e94054621a41c [INFO] running `"docker" "start" "-a" "68dfa75a3bc68547a9d9b5805299b0fff5877b081c0119af454e94054621a41c"` [INFO] [stderr] Checking ascii v0.8.6 [INFO] [stderr] Checking backtrace v0.3.7 [INFO] [stderr] Checking env_logger v0.5.4 [INFO] [stderr] Checking failure v0.1.1 [INFO] [stderr] Checking rxxma v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmodx/file/try_from_vec_u8.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | bin: bin, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `bin` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmodx/file/try_from_vec_u8.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | sections: sections, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sections` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmodx/section.rs:73:13 [INFO] [stderr] | [INFO] [stderr] 73 | cellsize: cellsize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `cellsize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmodx/section.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | disksize: disksize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `disksize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmodx/section.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | imagesize: imagesize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `imagesize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmodx/section.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | memsize: memsize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `memsize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/plugin/try_from_vec_u8.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | flags: flags, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/plugin/try_from_vec_u8.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | defsize: defsize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `defsize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/plugin/mod.rs:102:20 [INFO] [stderr] | [INFO] [stderr] 102 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/plugin/mod.rs:103:20 [INFO] [stderr] | [INFO] [stderr] 103 | address: address, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/plugin/mod.rs:121:20 [INFO] [stderr] | [INFO] [stderr] 121 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/plugin/mod.rs:122:20 [INFO] [stderr] | [INFO] [stderr] 122 | address: address, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/opcode.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | param: param, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `param` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/opcode.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | address: address, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/opcode.rs:117:17 [INFO] [stderr] | [INFO] [stderr] 117 | address: address, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/opcode.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | address: address, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast/function.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast/function.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | visibility: visibility, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `visibility` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast/plugin.rs:18:21 [INFO] [stderr] | [INFO] [stderr] 18 | Ok(Plugin { tree_elements: tree_elements }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tree_elements` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast/decompiler.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | amx_plugin: amx_plugin, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `amx_plugin` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmodx/file/try_from_vec_u8.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | bin: bin, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `bin` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmodx/file/try_from_vec_u8.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | sections: sections, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sections` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmodx/section.rs:73:13 [INFO] [stderr] | [INFO] [stderr] 73 | cellsize: cellsize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `cellsize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmodx/section.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | disksize: disksize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `disksize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmodx/section.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | imagesize: imagesize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `imagesize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmodx/section.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | memsize: memsize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `memsize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/plugin/try_from_vec_u8.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | flags: flags, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `flags` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/plugin/try_from_vec_u8.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | defsize: defsize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `defsize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/plugin/mod.rs:102:20 [INFO] [stderr] | [INFO] [stderr] 102 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/plugin/mod.rs:103:20 [INFO] [stderr] | [INFO] [stderr] 103 | address: address, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/plugin/mod.rs:121:20 [INFO] [stderr] | [INFO] [stderr] 121 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/plugin/mod.rs:122:20 [INFO] [stderr] | [INFO] [stderr] 122 | address: address, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/opcode.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | param: param, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `param` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/opcode.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | address: address, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/opcode.rs:117:17 [INFO] [stderr] | [INFO] [stderr] 117 | address: address, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/amxmod/opcode.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | address: address, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast/function.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast/function.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | visibility: visibility, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `visibility` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast/plugin.rs:18:21 [INFO] [stderr] | [INFO] [stderr] 18 | Ok(Plugin { tree_elements: tree_elements }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tree_elements` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast/decompiler.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | amx_plugin: amx_plugin, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `amx_plugin` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/amxmodx/file/mod.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | const MAGIC: u32 = 0x414d5858; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x414d_5858` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: All variants have the same prefix: `Invalid` [INFO] [stderr] --> src/amxmod/plugin/try_from_vec_u8.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | / enum AmxParseError { [INFO] [stderr] 9 | | #[fail(display = "Invalid amx magic, expected: 0x{:X}, got: 0x{:X}", _0, _1)] [INFO] [stderr] 10 | | InvalidMagic(u16, u16), [INFO] [stderr] 11 | | #[fail(display = "Invalid file version, expected: {}, got: {}", _0, _1)] [INFO] [stderr] ... | [INFO] [stderr] 14 | | InvalidAmxVersion(u8, u8), [INFO] [stderr] 15 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/amxmodx/file/mod.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | const MAGIC: u32 = 0x414d5858; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x414d_5858` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: All variants have the same prefix: `Invalid` [INFO] [stderr] --> src/amxmod/plugin/try_from_vec_u8.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | / enum AmxParseError { [INFO] [stderr] 9 | | #[fail(display = "Invalid amx magic, expected: 0x{:X}, got: 0x{:X}", _0, _1)] [INFO] [stderr] 10 | | InvalidMagic(u16, u16), [INFO] [stderr] 11 | | #[fail(display = "Invalid file version, expected: {}, got: {}", _0, _1)] [INFO] [stderr] ... | [INFO] [stderr] 14 | | InvalidAmxVersion(u8, u8), [INFO] [stderr] 15 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/amxmod/plugin/try_from_vec_u8.rs:153:18 [INFO] [stderr] | [INFO] [stderr] 153 | cip: 4294967295, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `4_294_967_295` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/amxmod/plugin/mod.rs:228:63 [INFO] [stderr] | [INFO] [stderr] 228 | let number = match amx_plugin.read_constant_auto_type(99999999).unwrap() { [INFO] [stderr] | ^^^^^^^^ help: consider: `99_999_999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/amxmod/plugin/mod.rs:233:20 [INFO] [stderr] | [INFO] [stderr] 233 | assert_eq!(99999999, number); [INFO] [stderr] | ^^^^^^^^ help: consider: `99_999_999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/amxmodx/section.rs:64:37 [INFO] [stderr] | [INFO] [stderr] 64 | reader.seek(SeekFrom::Start(offset as u64)).context( [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(offset)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/amxmod/plugin/mod.rs:41:42 [INFO] [stderr] | [INFO] [stderr] 41 | self.bin.get(self.cod..self.dat).ok_or(format_err!( [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 42 | | "cod slice mismatch" [INFO] [stderr] 43 | | )) [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 41 | self.bin.get(self.cod..self.dat).ok_or_else(|| format_err!( [INFO] [stderr] 42 | "cod slice mismatch" [INFO] [stderr] 43 | )) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/amxmod/plugin/mod.rs:47:42 [INFO] [stderr] | [INFO] [stderr] 47 | self.bin.get(self.dat..self.hea).ok_or(format_err!( [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 48 | | "dat slice mismatch" [INFO] [stderr] 49 | | )) [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 47 | self.bin.get(self.dat..self.hea).ok_or_else(|| format_err!( [INFO] [stderr] 48 | "dat slice mismatch" [INFO] [stderr] 49 | )) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/amxmod/plugin/mod.rs:53:50 [INFO] [stderr] | [INFO] [stderr] 53 | self.bin.get(self.publics..self.natives).ok_or(format_err!( [INFO] [stderr] | __________________________________________________^ [INFO] [stderr] 54 | | "publics slice mismatch" [INFO] [stderr] 55 | | )) [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 53 | self.bin.get(self.publics..self.natives).ok_or_else(|| format_err!( [INFO] [stderr] 54 | "publics slice mismatch" [INFO] [stderr] 55 | )) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/amxmod/plugin/mod.rs:59:52 [INFO] [stderr] | [INFO] [stderr] 59 | self.bin.get(self.natives..self.libraries).ok_or( [INFO] [stderr] | ____________________________________________________^ [INFO] [stderr] 60 | | format_err!( [INFO] [stderr] 61 | | "natives slice mismatch" [INFO] [stderr] 62 | | ), [INFO] [stderr] 63 | | ) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 59 | self.bin.get(self.natives..self.libraries).ok_or_else(|| format_err!( [INFO] [stderr] 60 | "natives slice mismatch" [INFO] [stderr] 61 | )) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/amxmod/plugin/mod.rs:129:12 [INFO] [stderr] | [INFO] [stderr] 129 | if !(addr <= (self.hea - self.dat)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `addr > (self.hea - self.dat)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast/function.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | String::from(format!("{}", p.name.to_str().unwrap())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", p.name.to_str().unwrap())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ast/function.rs:42:26 [INFO] [stderr] | [INFO] [stderr] 42 | String::from(format!("{}", p.name.to_str().unwrap())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `p.name.to_str().unwrap().to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast/function.rs:47:17 [INFO] [stderr] | [INFO] [stderr] 47 | String::from(format!("sub_{:x}", STOCK_FUNCTION_COUNTER - 1)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("sub_{:x}", STOCK_FUNCTION_COUNTER - 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/ast/function_call.rs:36:14 [INFO] [stderr] | [INFO] [stderr] 36 | .unwrap_or(vec![]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec![])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:87:22 [INFO] [stderr] | [INFO] [stderr] 87 | .map(|e| match e { [INFO] [stderr] | ______________________^ [INFO] [stderr] 88 | | &mut FunctionType(ref mut f) => Some(f), [INFO] [stderr] 89 | | _ => None, [INFO] [stderr] 90 | | }) [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 87 | .map(|e| match *e { [INFO] [stderr] 88 | FunctionType(ref mut f) => Some(f), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/ast/decompiler.rs:106:35 [INFO] [stderr] | [INFO] [stderr] 106 | let element = current_tree.get(position).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `current_tree[position]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:108:21 [INFO] [stderr] | [INFO] [stderr] 108 | / match element { [INFO] [stderr] 109 | | &OpcodeType(o) => o, [INFO] [stderr] 110 | | _ => continue, [INFO] [stderr] 111 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 108 | match *element { [INFO] [stderr] 109 | OpcodeType(o) => o, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:135:22 [INFO] [stderr] | [INFO] [stderr] 135 | .map(|e| match e { [INFO] [stderr] | ______________________^ [INFO] [stderr] 136 | | &mut FunctionType(ref mut f) => Some(f), [INFO] [stderr] 137 | | _ => None, [INFO] [stderr] 138 | | }) [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 135 | .map(|e| match *e { [INFO] [stderr] 136 | FunctionType(ref mut f) => Some(f), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/ast/decompiler.rs:154:35 [INFO] [stderr] | [INFO] [stderr] 154 | let element = current_tree.get(position).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `current_tree[position]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:156:21 [INFO] [stderr] | [INFO] [stderr] 156 | / match element { [INFO] [stderr] 157 | | &OpcodeType(o) => o, [INFO] [stderr] 158 | | _ => continue, [INFO] [stderr] 159 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 156 | match *element { [INFO] [stderr] 157 | OpcodeType(o) => o, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/ast/decompiler.rs:166:39 [INFO] [stderr] | [INFO] [stderr] 166 | let element = current_tree.get(position - 1).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `current_tree[position - 1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:168:38 [INFO] [stderr] | [INFO] [stderr] 168 | let opcode = match element { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 169 | | &OpcodeType(o) => o, [INFO] [stderr] 170 | | _ => continue, [INFO] [stderr] 171 | | }; [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 168 | let opcode = match *element { [INFO] [stderr] 169 | OpcodeType(o) => o, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:195:73 [INFO] [stderr] | [INFO] [stderr] 195 | let is_having_non_opcodes = raw_args.iter().any(|e| match e { [INFO] [stderr] | _________________________________________________________________________^ [INFO] [stderr] 196 | | &OpcodeType(_) => false, [INFO] [stderr] 197 | | _ => true, [INFO] [stderr] 198 | | }); [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 195 | let is_having_non_opcodes = raw_args.iter().any(|e| match *e { [INFO] [stderr] 196 | OpcodeType(_) => false, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:211:34 [INFO] [stderr] | [INFO] [stderr] 211 | .map(|e| match e { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 212 | | &OpcodeType(o) => Some(o), [INFO] [stderr] 213 | | _ => None, [INFO] [stderr] 214 | | }) [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 211 | .map(|e| match *e { [INFO] [stderr] 212 | OpcodeType(o) => Some(o), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast/decompiler.rs:216:34 [INFO] [stderr] | [INFO] [stderr] 216 | .map(|o| o.unwrap().clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `o.unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ast/decompiler.rs:232:30 [INFO] [stderr] | [INFO] [stderr] 232 | .map(|constant| Argument::from(constant)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Argument::from` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:255:29 [INFO] [stderr] | [INFO] [stderr] 255 | / match element { [INFO] [stderr] 256 | | &OpcodeType(o) => o, [INFO] [stderr] 257 | | _ => break, [INFO] [stderr] 258 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 255 | match *element { [INFO] [stderr] 256 | OpcodeType(o) => o, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:276:29 [INFO] [stderr] | [INFO] [stderr] 276 | / match element { [INFO] [stderr] 277 | | &OpcodeType(o) => o, [INFO] [stderr] 278 | | _ => break, [INFO] [stderr] 279 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 276 | match *element { [INFO] [stderr] 277 | OpcodeType(o) => o, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:297:29 [INFO] [stderr] | [INFO] [stderr] 297 | / match element { [INFO] [stderr] 298 | | &OpcodeType(o) => o, [INFO] [stderr] 299 | | _ => break, [INFO] [stderr] 300 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 297 | match *element { [INFO] [stderr] 298 | OpcodeType(o) => o, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/amxmodx/section.rs:64:37 [INFO] [stderr] | [INFO] [stderr] 64 | reader.seek(SeekFrom::Start(offset as u64)).context( [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(offset)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/amxmod/plugin/mod.rs:41:42 [INFO] [stderr] | [INFO] [stderr] 41 | self.bin.get(self.cod..self.dat).ok_or(format_err!( [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 42 | | "cod slice mismatch" [INFO] [stderr] 43 | | )) [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 41 | self.bin.get(self.cod..self.dat).ok_or_else(|| format_err!( [INFO] [stderr] 42 | "cod slice mismatch" [INFO] [stderr] 43 | )) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/amxmod/plugin/mod.rs:47:42 [INFO] [stderr] | [INFO] [stderr] 47 | self.bin.get(self.dat..self.hea).ok_or(format_err!( [INFO] [stderr] | __________________________________________^ [INFO] [stderr] 48 | | "dat slice mismatch" [INFO] [stderr] 49 | | )) [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 47 | self.bin.get(self.dat..self.hea).ok_or_else(|| format_err!( [INFO] [stderr] 48 | "dat slice mismatch" [INFO] [stderr] 49 | )) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/amxmod/plugin/mod.rs:53:50 [INFO] [stderr] | [INFO] [stderr] 53 | self.bin.get(self.publics..self.natives).ok_or(format_err!( [INFO] [stderr] | __________________________________________________^ [INFO] [stderr] 54 | | "publics slice mismatch" [INFO] [stderr] 55 | | )) [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 53 | self.bin.get(self.publics..self.natives).ok_or_else(|| format_err!( [INFO] [stderr] 54 | "publics slice mismatch" [INFO] [stderr] 55 | )) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/amxmod/plugin/mod.rs:59:52 [INFO] [stderr] | [INFO] [stderr] 59 | self.bin.get(self.natives..self.libraries).ok_or( [INFO] [stderr] | ____________________________________________________^ [INFO] [stderr] 60 | | format_err!( [INFO] [stderr] 61 | | "natives slice mismatch" [INFO] [stderr] 62 | | ), [INFO] [stderr] 63 | | ) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 59 | self.bin.get(self.natives..self.libraries).ok_or_else(|| format_err!( [INFO] [stderr] 60 | "natives slice mismatch" [INFO] [stderr] 61 | )) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/amxmod/plugin/mod.rs:129:12 [INFO] [stderr] | [INFO] [stderr] 129 | if !(addr <= (self.hea - self.dat)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `addr > (self.hea - self.dat)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast/function.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | String::from(format!("{}", p.name.to_str().unwrap())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{}", p.name.to_str().unwrap())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ast/function.rs:42:26 [INFO] [stderr] | [INFO] [stderr] 42 | String::from(format!("{}", p.name.to_str().unwrap())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `p.name.to_str().unwrap().to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast/function.rs:47:17 [INFO] [stderr] | [INFO] [stderr] 47 | String::from(format!("sub_{:x}", STOCK_FUNCTION_COUNTER - 1)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("sub_{:x}", STOCK_FUNCTION_COUNTER - 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/ast/function_call.rs:36:14 [INFO] [stderr] | [INFO] [stderr] 36 | .unwrap_or(vec![]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| vec![])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:87:22 [INFO] [stderr] | [INFO] [stderr] 87 | .map(|e| match e { [INFO] [stderr] | ______________________^ [INFO] [stderr] 88 | | &mut FunctionType(ref mut f) => Some(f), [INFO] [stderr] 89 | | _ => None, [INFO] [stderr] 90 | | }) [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 87 | .map(|e| match *e { [INFO] [stderr] 88 | FunctionType(ref mut f) => Some(f), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/ast/decompiler.rs:106:35 [INFO] [stderr] | [INFO] [stderr] 106 | let element = current_tree.get(position).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `current_tree[position]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:108:21 [INFO] [stderr] | [INFO] [stderr] 108 | / match element { [INFO] [stderr] 109 | | &OpcodeType(o) => o, [INFO] [stderr] 110 | | _ => continue, [INFO] [stderr] 111 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 108 | match *element { [INFO] [stderr] 109 | OpcodeType(o) => o, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:135:22 [INFO] [stderr] | [INFO] [stderr] 135 | .map(|e| match e { [INFO] [stderr] | ______________________^ [INFO] [stderr] 136 | | &mut FunctionType(ref mut f) => Some(f), [INFO] [stderr] 137 | | _ => None, [INFO] [stderr] 138 | | }) [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 135 | .map(|e| match *e { [INFO] [stderr] 136 | FunctionType(ref mut f) => Some(f), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/ast/decompiler.rs:154:35 [INFO] [stderr] | [INFO] [stderr] 154 | let element = current_tree.get(position).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `current_tree[position]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:156:21 [INFO] [stderr] | [INFO] [stderr] 156 | / match element { [INFO] [stderr] 157 | | &OpcodeType(o) => o, [INFO] [stderr] 158 | | _ => continue, [INFO] [stderr] 159 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 156 | match *element { [INFO] [stderr] 157 | OpcodeType(o) => o, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/ast/decompiler.rs:166:39 [INFO] [stderr] | [INFO] [stderr] 166 | let element = current_tree.get(position - 1).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `current_tree[position - 1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:168:38 [INFO] [stderr] | [INFO] [stderr] 168 | let opcode = match element { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 169 | | &OpcodeType(o) => o, [INFO] [stderr] 170 | | _ => continue, [INFO] [stderr] 171 | | }; [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 168 | let opcode = match *element { [INFO] [stderr] 169 | OpcodeType(o) => o, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:195:73 [INFO] [stderr] | [INFO] [stderr] 195 | let is_having_non_opcodes = raw_args.iter().any(|e| match e { [INFO] [stderr] | _________________________________________________________________________^ [INFO] [stderr] 196 | | &OpcodeType(_) => false, [INFO] [stderr] 197 | | _ => true, [INFO] [stderr] 198 | | }); [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 195 | let is_having_non_opcodes = raw_args.iter().any(|e| match *e { [INFO] [stderr] 196 | OpcodeType(_) => false, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:211:34 [INFO] [stderr] | [INFO] [stderr] 211 | .map(|e| match e { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 212 | | &OpcodeType(o) => Some(o), [INFO] [stderr] 213 | | _ => None, [INFO] [stderr] 214 | | }) [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 211 | .map(|e| match *e { [INFO] [stderr] 212 | OpcodeType(o) => Some(o), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/ast/decompiler.rs:216:34 [INFO] [stderr] | [INFO] [stderr] 216 | .map(|o| o.unwrap().clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `o.unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ast/decompiler.rs:232:30 [INFO] [stderr] | [INFO] [stderr] 232 | .map(|constant| Argument::from(constant)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Argument::from` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:255:29 [INFO] [stderr] | [INFO] [stderr] 255 | / match element { [INFO] [stderr] 256 | | &OpcodeType(o) => o, [INFO] [stderr] 257 | | _ => break, [INFO] [stderr] 258 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 255 | match *element { [INFO] [stderr] 256 | OpcodeType(o) => o, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:276:29 [INFO] [stderr] | [INFO] [stderr] 276 | / match element { [INFO] [stderr] 277 | | &OpcodeType(o) => o, [INFO] [stderr] 278 | | _ => break, [INFO] [stderr] 279 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 276 | match *element { [INFO] [stderr] 277 | OpcodeType(o) => o, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast/decompiler.rs:297:29 [INFO] [stderr] | [INFO] [stderr] 297 | / match element { [INFO] [stderr] 298 | | &OpcodeType(o) => o, [INFO] [stderr] 299 | | _ => break, [INFO] [stderr] 300 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 297 | match *element { [INFO] [stderr] 298 | OpcodeType(o) => o, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 9.57s [INFO] running `"docker" "inspect" "68dfa75a3bc68547a9d9b5805299b0fff5877b081c0119af454e94054621a41c"` [INFO] running `"docker" "rm" "-f" "68dfa75a3bc68547a9d9b5805299b0fff5877b081c0119af454e94054621a41c"` [INFO] [stdout] 68dfa75a3bc68547a9d9b5805299b0fff5877b081c0119af454e94054621a41c