[INFO] crate dnssector 0.1.2 is already in cache [INFO] extracting crate dnssector 0.1.2 into work/ex/clippy-test-run/sources/stable/reg/dnssector/0.1.2 [INFO] extracting crate dnssector 0.1.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dnssector/0.1.2 [INFO] validating manifest of dnssector-0.1.2 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 dnssector-0.1.2 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 dnssector-0.1.2 [INFO] finished frobbing dnssector-0.1.2 [INFO] frobbed toml for dnssector-0.1.2 written to work/ex/clippy-test-run/sources/stable/reg/dnssector/0.1.2/Cargo.toml [INFO] started frobbing dnssector-0.1.2 [INFO] finished frobbing dnssector-0.1.2 [INFO] frobbed toml for dnssector-0.1.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dnssector/0.1.2/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 dnssector-0.1.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/dnssector/0.1.2:/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] 4f25937cd159d939bdc208d9c91c7fa2c336eef0064083623a2b9a6b452f4b88 [INFO] running `"docker" "start" "-a" "4f25937cd159d939bdc208d9c91c7fa2c336eef0064083623a2b9a6b452f4b88"` [INFO] [stderr] Compiling debugtrace v0.1.0 [INFO] [stderr] Checking either v0.1.7 [INFO] [stderr] Checking xfailure v0.1.0 [INFO] [stderr] Checking conv v0.3.3 [INFO] [stderr] Checking backtrace v0.1.8 [INFO] [stderr] Checking chomp v0.3.1 [INFO] [stderr] Checking dnssector v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/dns_sector.rs:209:13 [INFO] [stderr] | [INFO] [stderr] 209 | packet: packet, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `packet` [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/dns_sector.rs:209:13 [INFO] [stderr] | [INFO] [stderr] 209 | packet: packet, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `packet` [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: long literal lacking separators [INFO] [stderr] --> src/c_abi.rs:69:37 [INFO] [stderr] | [INFO] [stderr] 69 | const SECTION_ITERATOR_MAGIC: u64 = 0x08af4e661b92fda3; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x08af_4e66_1b92_fda3` [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: Unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stderr] --> src/parsed_packet.rs:119:23 [INFO] [stderr] | [INFO] [stderr] 119 | debug_assert!(offset_edns >= 1 + DNS_RR_HEADER_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::int_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stderr] help: change `>= y + 1` to `> y` as shown [INFO] [stderr] | [INFO] [stderr] 119 | debug_assert!(offset_edns > DNS_RR_HEADER_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/c_abi.rs:69:37 [INFO] [stderr] | [INFO] [stderr] 69 | const SECTION_ITERATOR_MAGIC: u64 = 0x08af4e661b92fda3; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x08af_4e66_1b92_fda3` [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: Unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stderr] --> src/parsed_packet.rs:119:23 [INFO] [stderr] | [INFO] [stderr] 119 | debug_assert!(offset_edns >= 1 + DNS_RR_HEADER_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::int_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stderr] help: change `>= y + 1` to `> y` as shown [INFO] [stderr] | [INFO] [stderr] 119 | debug_assert!(offset_edns > DNS_RR_HEADER_SIZE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/c_abi.rs:26:38 [INFO] [stderr] | [INFO] [stderr] 26 | description_cs: CString::new("".as_bytes()).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b""` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: The function/method `rr_ip` doesn't need a mutable reference [INFO] [stderr] --> src/c_abi.rs:221:73 [INFO] [stderr] | [INFO] [stderr] 221 | Section::Answer | Section::NameServers | Section::Additional => (&mut *(section_iterator.it [INFO] [stderr] | _________________________________________________________________________^ [INFO] [stderr] 222 | | as *mut ResponseIterator)) [INFO] [stderr] | |______________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `rr_ip` doesn't need a mutable reference [INFO] [stderr] --> src/c_abi.rs:248:73 [INFO] [stderr] | [INFO] [stderr] 248 | Section::Answer | Section::NameServers | Section::Additional => (&mut *(section_iterator.it [INFO] [stderr] | _________________________________________________________________________^ [INFO] [stderr] 249 | | as *mut ResponseIterator)) [INFO] [stderr] | |______________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/c_abi.rs:319:61 [INFO] [stderr] | [INFO] [stderr] 319 | let default_zone_raw = if default_zone_raw.is_null() || default_zone_raw_len <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using default_zone_raw_len == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/compress.rs:53:24 [INFO] [stderr] | [INFO] [stderr] 53 | if refs_allowed <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using refs_allowed == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/compress.rs:61:27 [INFO] [stderr] | [INFO] [stderr] 61 | ((((len & 0x3f) as u16) << 8) | (packet[offset + 1]) as u16) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(len & 0x3f)` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/compress.rs:61:57 [INFO] [stderr] | [INFO] [stderr] 61 | ((((len & 0x3f) as u16) << 8) | (packet[offset + 1]) as u16) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from((packet[offset + 1]))` [INFO] [stderr] | [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 `or` followed by a function call [INFO] [stderr] --> src/compress.rs:73:49 [INFO] [stderr] | [INFO] [stderr] 73 | final_offset = final_offset.or(Some(offset + 2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Some(offset + 2))` [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] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/compress.rs:111:49 [INFO] [stderr] | [INFO] [stderr] 111 | final_offset = final_offset.or(Some(offset + 2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Some(offset + 2))` [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: statement can be reduced [INFO] [stderr] --> src/compress.rs:638:9 [INFO] [stderr] | [INFO] [stderr] 638 | &to[..len].copy_from_slice(&name[..len]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `to[..len].copy_from_slice(&name[..len]);` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`u16`) to itself [INFO] [stderr] --> src/constants.rs:101:18 [INFO] [stderr] | [INFO] [stderr] 101 | unsafe { mem::transmute(v as u16) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`u16`) to itself [INFO] [stderr] --> src/constants.rs:210:18 [INFO] [stderr] | [INFO] [stderr] 210 | unsafe { mem::transmute(v as u16) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`u16`) to itself [INFO] [stderr] --> src/constants.rs:247:18 [INFO] [stderr] | [INFO] [stderr] 247 | unsafe { mem::transmute(v as u16) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`u8`) to itself [INFO] [stderr] --> src/constants.rs:269:18 [INFO] [stderr] | [INFO] [stderr] 269 | unsafe { mem::transmute(v as u8) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`u8`) to itself [INFO] [stderr] --> src/constants.rs:285:18 [INFO] [stderr] | [INFO] [stderr] 285 | unsafe { mem::transmute(v as u8) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`u8`) to itself [INFO] [stderr] --> src/constants.rs:301:18 [INFO] [stderr] | [INFO] [stderr] 301 | unsafe { mem::transmute(v as u8) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/dns_sector.rs:334:20 [INFO] [stderr] | [INFO] [stderr] 334 | if rr_rdlen <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using rr_rdlen == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/dns_sector.rs:374:20 [INFO] [stderr] | [INFO] [stderr] 374 | if rr_rdlen <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using rr_rdlen == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/dns_sector.rs:439:12 [INFO] [stderr] | [INFO] [stderr] 439 | Ok((self.packet[offset] as u16) << 8 | self.packet[offset + 1] as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.packet[offset])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/dns_sector.rs:439:48 [INFO] [stderr] | [INFO] [stderr] 439 | Ok((self.packet[offset] as u16) << 8 | self.packet[offset + 1] as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.packet[offset + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dns_sector.rs:447:12 [INFO] [stderr] | [INFO] [stderr] 447 | Ok((self.packet[offset] as u32) << 24 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.packet[offset])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dns_sector.rs:448:15 [INFO] [stderr] | [INFO] [stderr] 448 | | (self.packet[offset + 1] as u32) << 16 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.packet[offset + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dns_sector.rs:449:15 [INFO] [stderr] | [INFO] [stderr] 449 | | (self.packet[offset + 2] as u32) << 8 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.packet[offset + 2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dns_sector.rs:450:15 [INFO] [stderr] | [INFO] [stderr] 450 | | self.packet[offset + 3] as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.packet[offset + 3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/parsed_packet.rs:79:31 [INFO] [stderr] | [INFO] [stderr] 79 | pub fn into_iter_question(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/parsed_packet.rs:84:29 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn into_iter_answer(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/parsed_packet.rs:89:34 [INFO] [stderr] | [INFO] [stderr] 89 | pub fn into_iter_nameservers(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/parsed_packet.rs:94:33 [INFO] [stderr] | [INFO] [stderr] 94 | pub fn into_iter_additional(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/parsed_packet.rs:99:47 [INFO] [stderr] | [INFO] [stderr] 99 | pub fn into_iter_additional_including_opt(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/parsed_packet.rs:104:27 [INFO] [stderr] | [INFO] [stderr] 104 | pub fn into_iter_edns(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/parsed_packet.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 150 | (self.ext_flags.unwrap_or(0) as u32) << 16 | (rflags as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.ext_flags.unwrap_or(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/parsed_packet.rs:150:54 [INFO] [stderr] | [INFO] [stderr] 150 | (self.ext_flags.unwrap_or(0) as u32) << 16 | (rflags as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(rflags)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: The function/method `::qdcount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:233:50 [INFO] [stderr] | [INFO] [stderr] 233 | let rrcount = DNSSector::qdcount(&mut packet); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::ancount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:241:51 [INFO] [stderr] | [INFO] [stderr] 241 | Section::Answer => DNSSector::ancount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::nscount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:242:56 [INFO] [stderr] | [INFO] [stderr] 242 | Section::NameServers => DNSSector::nscount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::arcount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:243:55 [INFO] [stderr] | [INFO] [stderr] 243 | Section::Additional => DNSSector::arcount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/parsed_packet.rs:246:12 [INFO] [stderr] | [INFO] [stderr] 246 | if rrcount >= 0xffff { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0xffff is the maximum value for this type, the case where the two sides are not equal never occurs, consider using rrcount == 0xffff instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: The function/method `::qdcount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:266:53 [INFO] [stderr] | [INFO] [stderr] 266 | Section::Question => DNSSector::qdcount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::ancount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:267:51 [INFO] [stderr] | [INFO] [stderr] 267 | Section::Answer => DNSSector::ancount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::nscount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:268:56 [INFO] [stderr] | [INFO] [stderr] 268 | Section::NameServers => DNSSector::nscount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::arcount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:269:55 [INFO] [stderr] | [INFO] [stderr] 269 | Section::Additional => DNSSector::arcount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/parsed_packet.rs:272:12 [INFO] [stderr] | [INFO] [stderr] 272 | if rrcount <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using rrcount == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:296:18 [INFO] [stderr] | [INFO] [stderr] 296 | .unwrap_or(self.packet().len()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.packet().len())` [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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:300:18 [INFO] [stderr] | [INFO] [stderr] 300 | .unwrap_or(self.packet().len()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.packet().len())` [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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:301:60 [INFO] [stderr] | [INFO] [stderr] 301 | Section::NameServers => self.offset_additional.unwrap_or(self.packet().len()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.packet().len())` [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: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/parsed_packet.rs:329:21 [INFO] [stderr] | [INFO] [stderr] 329 | packet_ptr.offset(insertion_offset as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `packet_ptr.add(insertion_offset)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/parsed_packet.rs:330:21 [INFO] [stderr] | [INFO] [stderr] 330 | packet_ptr.offset((insertion_offset + rr_len) as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `packet_ptr.add((insertion_offset + rr_len))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/parsed_packet.rs:334:13 [INFO] [stderr] | [INFO] [stderr] 334 | / &self.packet_mut()[insertion_offset..insertion_offset + rr_len] [INFO] [stderr] 335 | | .copy_from_slice(&rr.packet); [INFO] [stderr] | |_____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] help: replace it with [INFO] [stderr] | [INFO] [stderr] 334 | self.packet_mut()[insertion_offset..insertion_offset + rr_len] [INFO] [stderr] 335 | .copy_from_slice(&rr.packet); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:340:61 [INFO] [stderr] | [INFO] [stderr] 340 | self.offset_question = self.offset_question.or(Some(insertion_offset)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Some(insertion_offset))` [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: use of `or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:348:59 [INFO] [stderr] | [INFO] [stderr] 348 | self.offset_answers = self.offset_answers.or(Some(insertion_offset)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Some(insertion_offset))` [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: use of `or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:355:67 [INFO] [stderr] | [INFO] [stderr] 355 | self.offset_nameservers = self.offset_nameservers.or(Some(insertion_offset)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Some(insertion_offset))` [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: use of `or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:361:65 [INFO] [stderr] | [INFO] [stderr] 361 | self.offset_additional = self.offset_additional.or(Some(insertion_offset)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Some(insertion_offset))` [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parsed_packet.rs:405:9 [INFO] [stderr] | [INFO] [stderr] 405 | / match self.cached { [INFO] [stderr] 406 | | Some(ref cached) => return Some((&cached.0, cached.1, cached.2)), [INFO] [stderr] 407 | | None => {} [INFO] [stderr] 408 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Some(ref cached) = self.cached { return Some((&cached.0, cached.1, cached.2)) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parsed_packet.rs:437:9 [INFO] [stderr] | [INFO] [stderr] 437 | / match self.cached { [INFO] [stderr] 438 | | Some(ref cached) => { [INFO] [stderr] 439 | | let mut name_str = Compress::raw_name_to_str(&cached.0, 0); [INFO] [stderr] 440 | | name_str.make_ascii_lowercase(); [INFO] [stderr] ... | [INFO] [stderr] 443 | | None => {} [INFO] [stderr] 444 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 437 | if let Some(ref cached) = self.cached { [INFO] [stderr] 438 | let mut name_str = Compress::raw_name_to_str(&cached.0, 0); [INFO] [stderr] 439 | name_str.make_ascii_lowercase(); [INFO] [stderr] 440 | return Some((name_str, cached.1, cached.2)); [INFO] [stderr] 441 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parsed_packet.rs:463:9 [INFO] [stderr] | [INFO] [stderr] 463 | / match self.cached { [INFO] [stderr] 464 | | Some(ref cached) => return Some((cached.1, cached.2)), [INFO] [stderr] 465 | | None => {} [INFO] [stderr] 466 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Some(ref cached) = self.cached { return Some((cached.1, cached.2)) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/renamer.rs:24:43 [INFO] [stderr] | [INFO] [stderr] 24 | if name_len < source_name_len || (match_suffix == false && name_len != source_name_len) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!match_suffix` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/renamer.rs:27:12 [INFO] [stderr] | [INFO] [stderr] 27 | if source_name_len <= 0 || target_name_len <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using source_name_len == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/renamer.rs:27:36 [INFO] [stderr] | [INFO] [stderr] 27 | if source_name_len <= 0 || target_name_len <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using target_name_len == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/renamer.rs:58:40 [INFO] [stderr] | [INFO] [stderr] 58 | if !(0..label_len).all(|j| { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 59 | | name[i + j].to_ascii_lowercase() == source_name[i + j - offset].to_ascii_lowercase() [INFO] [stderr] 60 | | }) { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/c_abi.rs:26:38 [INFO] [stderr] | [INFO] [stderr] 26 | description_cs: CString::new("".as_bytes()).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b""` [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/renamer.rs:330:12 [INFO] [stderr] | [INFO] [stderr] 330 | if target_name.len() <= 0 || source_name.len() <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using target_name.len() == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/renamer.rs:330:38 [INFO] [stderr] | [INFO] [stderr] 330 | if target_name.len() <= 0 || source_name.len() <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using source_name.len() == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/rr_iterator.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | / let mut section = Section::Question; [INFO] [stderr] 174 | | if parsed_packet.offset_answers.is_some() && offset >= parsed_packet.offset_answers { [INFO] [stderr] 175 | | section = Section::Answer; [INFO] [stderr] 176 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let section = if parsed_packet.offset_answers.is_some() && offset >= parsed_packet.offset_answers { Section::Answer } else { Section::Question };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/rr_iterator.rs:213:25 [INFO] [stderr] | [INFO] [stderr] 213 | packet_ptr.offset(offset as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `packet_ptr.add(offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/rr_iterator.rs:224:25 [INFO] [stderr] | [INFO] [stderr] 224 | packet_ptr.offset(offset as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `packet_ptr.add(offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: The function/method `rr_ip` doesn't need a mutable reference [INFO] [stderr] --> src/c_abi.rs:221:73 [INFO] [stderr] | [INFO] [stderr] 221 | Section::Answer | Section::NameServers | Section::Additional => (&mut *(section_iterator.it [INFO] [stderr] | _________________________________________________________________________^ [INFO] [stderr] 222 | | as *mut ResponseIterator)) [INFO] [stderr] | |______________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `rr_ip` doesn't need a mutable reference [INFO] [stderr] --> src/c_abi.rs:248:73 [INFO] [stderr] | [INFO] [stderr] 248 | Section::Answer | Section::NameServers | Section::Additional => (&mut *(section_iterator.it [INFO] [stderr] | _________________________________________________________________________^ [INFO] [stderr] 249 | | as *mut ResponseIterator)) [INFO] [stderr] | |______________________________________^ [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/rr_iterator.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | &mut packet[offset..offset + new_name_len].copy_from_slice(name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `packet[offset..offset + new_name_len].copy_from_slice(name);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/rr_iterator.rs:316:12 [INFO] [stderr] | [INFO] [stderr] 316 | if rrcount <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using rrcount == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/c_abi.rs:319:61 [INFO] [stderr] | [INFO] [stderr] 319 | let default_zone_raw = if default_zone_raw.is_null() || default_zone_raw_len <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using default_zone_raw_len == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/synth/gen.rs:211:5 [INFO] [stderr] | [INFO] [stderr] 211 | / pub fn build( [INFO] [stderr] 212 | | rr_header: RRHeader, [INFO] [stderr] 213 | | primary_ns: Vec, [INFO] [stderr] 214 | | contact: Vec, [INFO] [stderr] ... | [INFO] [stderr] 231 | | RR::new(rr_header, &rdata) [INFO] [stderr] 232 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/compress.rs:53:24 [INFO] [stderr] | [INFO] [stderr] 53 | if refs_allowed <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using refs_allowed == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/compress.rs:61:27 [INFO] [stderr] | [INFO] [stderr] 61 | ((((len & 0x3f) as u16) << 8) | (packet[offset + 1]) as u16) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(len & 0x3f)` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/compress.rs:61:57 [INFO] [stderr] | [INFO] [stderr] 61 | ((((len & 0x3f) as u16) << 8) | (packet[offset + 1]) as u16) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from((packet[offset + 1]))` [INFO] [stderr] | [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 `or` followed by a function call [INFO] [stderr] --> src/compress.rs:73:49 [INFO] [stderr] | [INFO] [stderr] 73 | final_offset = final_offset.or(Some(offset + 2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Some(offset + 2))` [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] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/compress.rs:111:49 [INFO] [stderr] | [INFO] [stderr] 111 | final_offset = final_offset.or(Some(offset + 2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Some(offset + 2))` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/synth/parser.rs:81:45 [INFO] [stderr] | [INFO] [stderr] 81 | .and_then(|x| x.checked_add((c - b'0') as _)) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(c - b'0')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/synth/parser.rs:94:45 [INFO] [stderr] | [INFO] [stderr] 94 | .and_then(|x| x.checked_add((c - b'0') as _)) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(c - b'0')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/synth/parser.rs:125:45 [INFO] [stderr] | [INFO] [stderr] 125 | .and_then(|x| x.checked_add(from_hexdigit(c) as _)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(from_hexdigit(c))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/synth/parser.rs:140:22 [INFO] [stderr] | [INFO] [stderr] 140 | let r = (a as i16 - 48) * 100 + (b as i16 - 48) * 10 + (c as i16 - 48); [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(a)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/synth/parser.rs:140:46 [INFO] [stderr] | [INFO] [stderr] 140 | let r = (a as i16 - 48) * 100 + (b as i16 - 48) * 10 + (c as i16 - 48); [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/synth/parser.rs:140:69 [INFO] [stderr] | [INFO] [stderr] 140 | let r = (a as i16 - 48) * 100 + (b as i16 - 48) * 10 + (c as i16 - 48); [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/synth/parser.rs:161:79 [INFO] [stderr] | [INFO] [stderr] 161 | many1(i, |i| look_ahead(i, |i| not_horizontal_whitespace(i)).then(|i| maybe_escaped_char(i))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `maybe_escaped_char` [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: redundant closure found [INFO] [stderr] --> src/synth/parser.rs:161:40 [INFO] [stderr] | [INFO] [stderr] 161 | many1(i, |i| look_ahead(i, |i| not_horizontal_whitespace(i)).then(|i| maybe_escaped_char(i))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `not_horizontal_whitespace` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/synth/parser.rs:171:69 [INFO] [stderr] | [INFO] [stderr] 171 | many1(i, |i| look_ahead(i, |i| not_token(i, b'"')).then(|i| maybe_escaped_char(i))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `maybe_escaped_char` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/synth/parser.rs:221:20 [INFO] [stderr] | [INFO] [stderr] 221 | take_while1(i, |c| is_hexdigit(c)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `is_hexdigit` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/synth/parser.rs:273:27 [INFO] [stderr] | [INFO] [stderr] 273 | either(i, |i| ipv4_parser(i), |i| ipv6_parser(i)).bind(|i, _| { string_nocase(i, b".in-addr.arpa.") }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ipv4_parser` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/synth/parser.rs:273:47 [INFO] [stderr] | [INFO] [stderr] 273 | either(i, |i| ipv4_parser(i), |i| ipv6_parser(i)).bind(|i, _| { string_nocase(i, b".in-addr.arpa.") }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ipv6_parser` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/synth/parser.rs:348:6 [INFO] [stderr] | [INFO] [stderr] 348 | ) -> SimpleResult, Vec, u32, u32, u32, u32, u32)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/compress.rs:638:9 [INFO] [stderr] | [INFO] [stderr] 638 | &to[..len].copy_from_slice(&name[..len]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `to[..len].copy_from_slice(&name[..len]);` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`u16`) to itself [INFO] [stderr] --> src/constants.rs:101:18 [INFO] [stderr] | [INFO] [stderr] 101 | unsafe { mem::transmute(v as u16) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: aborting due to 11 previous errors [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`u16`) to itself [INFO] [stderr] --> src/constants.rs:210:18 [INFO] [stderr] | [INFO] [stderr] 210 | unsafe { mem::transmute(v as u16) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: Could not compile `dnssector`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: transmute from a type (`u16`) to itself [INFO] [stderr] --> src/constants.rs:247:18 [INFO] [stderr] | [INFO] [stderr] 247 | unsafe { mem::transmute(v as u16) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`u8`) to itself [INFO] [stderr] --> src/constants.rs:269:18 [INFO] [stderr] | [INFO] [stderr] 269 | unsafe { mem::transmute(v as u8) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`u8`) to itself [INFO] [stderr] --> src/constants.rs:285:18 [INFO] [stderr] | [INFO] [stderr] 285 | unsafe { mem::transmute(v as u8) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`u8`) to itself [INFO] [stderr] --> src/constants.rs:301:18 [INFO] [stderr] | [INFO] [stderr] 301 | unsafe { mem::transmute(v as u8) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/dns_sector.rs:334:20 [INFO] [stderr] | [INFO] [stderr] 334 | if rr_rdlen <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using rr_rdlen == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/dns_sector.rs:374:20 [INFO] [stderr] | [INFO] [stderr] 374 | if rr_rdlen <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using rr_rdlen == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/dns_sector.rs:439:12 [INFO] [stderr] | [INFO] [stderr] 439 | Ok((self.packet[offset] as u16) << 8 | self.packet[offset + 1] as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.packet[offset])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/dns_sector.rs:439:48 [INFO] [stderr] | [INFO] [stderr] 439 | Ok((self.packet[offset] as u16) << 8 | self.packet[offset + 1] as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.packet[offset + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dns_sector.rs:447:12 [INFO] [stderr] | [INFO] [stderr] 447 | Ok((self.packet[offset] as u32) << 24 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.packet[offset])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dns_sector.rs:448:15 [INFO] [stderr] | [INFO] [stderr] 448 | | (self.packet[offset + 1] as u32) << 16 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.packet[offset + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dns_sector.rs:449:15 [INFO] [stderr] | [INFO] [stderr] 449 | | (self.packet[offset + 2] as u32) << 8 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.packet[offset + 2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/dns_sector.rs:450:15 [INFO] [stderr] | [INFO] [stderr] 450 | | self.packet[offset + 3] as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.packet[offset + 3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/parsed_packet.rs:79:31 [INFO] [stderr] | [INFO] [stderr] 79 | pub fn into_iter_question(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/parsed_packet.rs:84:29 [INFO] [stderr] | [INFO] [stderr] 84 | pub fn into_iter_answer(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/parsed_packet.rs:89:34 [INFO] [stderr] | [INFO] [stderr] 89 | pub fn into_iter_nameservers(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/parsed_packet.rs:94:33 [INFO] [stderr] | [INFO] [stderr] 94 | pub fn into_iter_additional(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/parsed_packet.rs:99:47 [INFO] [stderr] | [INFO] [stderr] 99 | pub fn into_iter_additional_including_opt(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `into_*` usually take self by value; consider choosing a less ambiguous name [INFO] [stderr] --> src/parsed_packet.rs:104:27 [INFO] [stderr] | [INFO] [stderr] 104 | pub fn into_iter_edns(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/parsed_packet.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 150 | (self.ext_flags.unwrap_or(0) as u32) << 16 | (rflags as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.ext_flags.unwrap_or(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/parsed_packet.rs:150:54 [INFO] [stderr] | [INFO] [stderr] 150 | (self.ext_flags.unwrap_or(0) as u32) << 16 | (rflags as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(rflags)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: The function/method `::qdcount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:233:50 [INFO] [stderr] | [INFO] [stderr] 233 | let rrcount = DNSSector::qdcount(&mut packet); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::ancount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:241:51 [INFO] [stderr] | [INFO] [stderr] 241 | Section::Answer => DNSSector::ancount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::nscount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:242:56 [INFO] [stderr] | [INFO] [stderr] 242 | Section::NameServers => DNSSector::nscount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::arcount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:243:55 [INFO] [stderr] | [INFO] [stderr] 243 | Section::Additional => DNSSector::arcount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/parsed_packet.rs:246:12 [INFO] [stderr] | [INFO] [stderr] 246 | if rrcount >= 0xffff { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0xffff is the maximum value for this type, the case where the two sides are not equal never occurs, consider using rrcount == 0xffff instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: The function/method `::qdcount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:266:53 [INFO] [stderr] | [INFO] [stderr] 266 | Section::Question => DNSSector::qdcount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::ancount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:267:51 [INFO] [stderr] | [INFO] [stderr] 267 | Section::Answer => DNSSector::ancount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::nscount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:268:56 [INFO] [stderr] | [INFO] [stderr] 268 | Section::NameServers => DNSSector::nscount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `::arcount` doesn't need a mutable reference [INFO] [stderr] --> src/parsed_packet.rs:269:55 [INFO] [stderr] | [INFO] [stderr] 269 | Section::Additional => DNSSector::arcount(&mut packet), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/parsed_packet.rs:272:12 [INFO] [stderr] | [INFO] [stderr] 272 | if rrcount <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using rrcount == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:296:18 [INFO] [stderr] | [INFO] [stderr] 296 | .unwrap_or(self.packet().len()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.packet().len())` [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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:300:18 [INFO] [stderr] | [INFO] [stderr] 300 | .unwrap_or(self.packet().len()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.packet().len())` [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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:301:60 [INFO] [stderr] | [INFO] [stderr] 301 | Section::NameServers => self.offset_additional.unwrap_or(self.packet().len()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.packet().len())` [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: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/parsed_packet.rs:329:21 [INFO] [stderr] | [INFO] [stderr] 329 | packet_ptr.offset(insertion_offset as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `packet_ptr.add(insertion_offset)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/parsed_packet.rs:330:21 [INFO] [stderr] | [INFO] [stderr] 330 | packet_ptr.offset((insertion_offset + rr_len) as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `packet_ptr.add((insertion_offset + rr_len))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/parsed_packet.rs:334:13 [INFO] [stderr] | [INFO] [stderr] 334 | / &self.packet_mut()[insertion_offset..insertion_offset + rr_len] [INFO] [stderr] 335 | | .copy_from_slice(&rr.packet); [INFO] [stderr] | |_____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] help: replace it with [INFO] [stderr] | [INFO] [stderr] 334 | self.packet_mut()[insertion_offset..insertion_offset + rr_len] [INFO] [stderr] 335 | .copy_from_slice(&rr.packet); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:340:61 [INFO] [stderr] | [INFO] [stderr] 340 | self.offset_question = self.offset_question.or(Some(insertion_offset)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Some(insertion_offset))` [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: use of `or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:348:59 [INFO] [stderr] | [INFO] [stderr] 348 | self.offset_answers = self.offset_answers.or(Some(insertion_offset)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Some(insertion_offset))` [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: use of `or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:355:67 [INFO] [stderr] | [INFO] [stderr] 355 | self.offset_nameservers = self.offset_nameservers.or(Some(insertion_offset)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Some(insertion_offset))` [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: use of `or` followed by a function call [INFO] [stderr] --> src/parsed_packet.rs:361:65 [INFO] [stderr] | [INFO] [stderr] 361 | self.offset_additional = self.offset_additional.or(Some(insertion_offset)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| Some(insertion_offset))` [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parsed_packet.rs:405:9 [INFO] [stderr] | [INFO] [stderr] 405 | / match self.cached { [INFO] [stderr] 406 | | Some(ref cached) => return Some((&cached.0, cached.1, cached.2)), [INFO] [stderr] 407 | | None => {} [INFO] [stderr] 408 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Some(ref cached) = self.cached { return Some((&cached.0, cached.1, cached.2)) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parsed_packet.rs:437:9 [INFO] [stderr] | [INFO] [stderr] 437 | / match self.cached { [INFO] [stderr] 438 | | Some(ref cached) => { [INFO] [stderr] 439 | | let mut name_str = Compress::raw_name_to_str(&cached.0, 0); [INFO] [stderr] 440 | | name_str.make_ascii_lowercase(); [INFO] [stderr] ... | [INFO] [stderr] 443 | | None => {} [INFO] [stderr] 444 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 437 | if let Some(ref cached) = self.cached { [INFO] [stderr] 438 | let mut name_str = Compress::raw_name_to_str(&cached.0, 0); [INFO] [stderr] 439 | name_str.make_ascii_lowercase(); [INFO] [stderr] 440 | return Some((name_str, cached.1, cached.2)); [INFO] [stderr] 441 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parsed_packet.rs:463:9 [INFO] [stderr] | [INFO] [stderr] 463 | / match self.cached { [INFO] [stderr] 464 | | Some(ref cached) => return Some((cached.1, cached.2)), [INFO] [stderr] 465 | | None => {} [INFO] [stderr] 466 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Some(ref cached) = self.cached { return Some((cached.1, cached.2)) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/renamer.rs:24:43 [INFO] [stderr] | [INFO] [stderr] 24 | if name_len < source_name_len || (match_suffix == false && name_len != source_name_len) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!match_suffix` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/renamer.rs:27:12 [INFO] [stderr] | [INFO] [stderr] 27 | if source_name_len <= 0 || target_name_len <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using source_name_len == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/renamer.rs:27:36 [INFO] [stderr] | [INFO] [stderr] 27 | if source_name_len <= 0 || target_name_len <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using target_name_len == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/renamer.rs:58:40 [INFO] [stderr] | [INFO] [stderr] 58 | if !(0..label_len).all(|j| { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 59 | | name[i + j].to_ascii_lowercase() == source_name[i + j - offset].to_ascii_lowercase() [INFO] [stderr] 60 | | }) { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/renamer.rs:330:12 [INFO] [stderr] | [INFO] [stderr] 330 | if target_name.len() <= 0 || source_name.len() <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using target_name.len() == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/renamer.rs:330:38 [INFO] [stderr] | [INFO] [stderr] 330 | if target_name.len() <= 0 || source_name.len() <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using source_name.len() == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/rr_iterator.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | / let mut section = Section::Question; [INFO] [stderr] 174 | | if parsed_packet.offset_answers.is_some() && offset >= parsed_packet.offset_answers { [INFO] [stderr] 175 | | section = Section::Answer; [INFO] [stderr] 176 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let section = if parsed_packet.offset_answers.is_some() && offset >= parsed_packet.offset_answers { Section::Answer } else { Section::Question };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/rr_iterator.rs:213:25 [INFO] [stderr] | [INFO] [stderr] 213 | packet_ptr.offset(offset as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `packet_ptr.add(offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/rr_iterator.rs:224:25 [INFO] [stderr] | [INFO] [stderr] 224 | packet_ptr.offset(offset as isize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `packet_ptr.add(offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/rr_iterator.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | &mut packet[offset..offset + new_name_len].copy_from_slice(name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `packet[offset..offset + new_name_len].copy_from_slice(name);` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/rr_iterator.rs:316:12 [INFO] [stderr] | [INFO] [stderr] 316 | if rrcount <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using rrcount == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/synth/gen.rs:211:5 [INFO] [stderr] | [INFO] [stderr] 211 | / pub fn build( [INFO] [stderr] 212 | | rr_header: RRHeader, [INFO] [stderr] 213 | | primary_ns: Vec, [INFO] [stderr] 214 | | contact: Vec, [INFO] [stderr] ... | [INFO] [stderr] 231 | | RR::new(rr_header, &rdata) [INFO] [stderr] 232 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/synth/parser.rs:81:45 [INFO] [stderr] | [INFO] [stderr] 81 | .and_then(|x| x.checked_add((c - b'0') as _)) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(c - b'0')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/synth/parser.rs:94:45 [INFO] [stderr] | [INFO] [stderr] 94 | .and_then(|x| x.checked_add((c - b'0') as _)) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(c - b'0')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/synth/parser.rs:125:45 [INFO] [stderr] | [INFO] [stderr] 125 | .and_then(|x| x.checked_add(from_hexdigit(c) as _)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(from_hexdigit(c))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/synth/parser.rs:140:22 [INFO] [stderr] | [INFO] [stderr] 140 | let r = (a as i16 - 48) * 100 + (b as i16 - 48) * 10 + (c as i16 - 48); [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(a)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/synth/parser.rs:140:46 [INFO] [stderr] | [INFO] [stderr] 140 | let r = (a as i16 - 48) * 100 + (b as i16 - 48) * 10 + (c as i16 - 48); [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/synth/parser.rs:140:69 [INFO] [stderr] | [INFO] [stderr] 140 | let r = (a as i16 - 48) * 100 + (b as i16 - 48) * 10 + (c as i16 - 48); [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/synth/parser.rs:161:79 [INFO] [stderr] | [INFO] [stderr] 161 | many1(i, |i| look_ahead(i, |i| not_horizontal_whitespace(i)).then(|i| maybe_escaped_char(i))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `maybe_escaped_char` [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: redundant closure found [INFO] [stderr] --> src/synth/parser.rs:161:40 [INFO] [stderr] | [INFO] [stderr] 161 | many1(i, |i| look_ahead(i, |i| not_horizontal_whitespace(i)).then(|i| maybe_escaped_char(i))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `not_horizontal_whitespace` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/synth/parser.rs:171:69 [INFO] [stderr] | [INFO] [stderr] 171 | many1(i, |i| look_ahead(i, |i| not_token(i, b'"')).then(|i| maybe_escaped_char(i))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `maybe_escaped_char` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/synth/parser.rs:221:20 [INFO] [stderr] | [INFO] [stderr] 221 | take_while1(i, |c| is_hexdigit(c)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `is_hexdigit` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/synth/parser.rs:273:27 [INFO] [stderr] | [INFO] [stderr] 273 | either(i, |i| ipv4_parser(i), |i| ipv6_parser(i)).bind(|i, _| { string_nocase(i, b".in-addr.arpa.") }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ipv4_parser` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/synth/parser.rs:273:47 [INFO] [stderr] | [INFO] [stderr] 273 | either(i, |i| ipv4_parser(i), |i| ipv6_parser(i)).bind(|i, _| { string_nocase(i, b".in-addr.arpa.") }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ipv6_parser` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/synth/parser.rs:348:6 [INFO] [stderr] | [INFO] [stderr] 348 | ) -> SimpleResult, Vec, u32, u32, u32, u32, u32)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: aborting due to 11 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `dnssector`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "4f25937cd159d939bdc208d9c91c7fa2c336eef0064083623a2b9a6b452f4b88"` [INFO] running `"docker" "rm" "-f" "4f25937cd159d939bdc208d9c91c7fa2c336eef0064083623a2b9a6b452f4b88"` [INFO] [stdout] 4f25937cd159d939bdc208d9c91c7fa2c336eef0064083623a2b9a6b452f4b88