[INFO] fetching crate enet-rust 0.1.0... [INFO] linting enet-rust-0.1.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate enet-rust 0.1.0 into /workspace/builds/worker-7-tc1/source [INFO] started tweaking crates.io crate enet-rust 0.1.0 [INFO] finished tweaking crates.io crate enet-rust 0.1.0 [INFO] tweaked toml for crates.io crate enet-rust 0.1.0 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate enet-rust 0.1.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ed5a0e53a416b2eb4cb9382e1b4ab3a842edf4c0ec016f5ae4a67b0ee2eb5198 [INFO] running `Command { std: "docker" "start" "-a" "ed5a0e53a416b2eb4cb9382e1b4ab3a842edf4c0ec016f5ae4a67b0ee2eb5198", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ed5a0e53a416b2eb4cb9382e1b4ab3a842edf4c0ec016f5ae4a67b0ee2eb5198", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ed5a0e53a416b2eb4cb9382e1b4ab3a842edf4c0ec016f5ae4a67b0ee2eb5198", kill_on_drop: false }` [INFO] [stdout] ed5a0e53a416b2eb4cb9382e1b4ab3a842edf4c0ec016f5ae4a67b0ee2eb5198 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 41fdf8ca1e17f27746f77133c839018fb6ecd826e3473fa40f55362c02eb53db [INFO] running `Command { std: "docker" "start" "-a" "41fdf8ca1e17f27746f77133c839018fb6ecd826e3473fa40f55362c02eb53db", kill_on_drop: false }` [INFO] [stderr] Checking enet-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::mem::zeroed` [INFO] [stdout] --> src/include/h_win32.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::mem::zeroed; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `incomingBandwidth` [INFO] [stdout] --> src/c/c_host.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | incomingBandwidth: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_incomingBandwidth` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `outgoingBandwidth` [INFO] [stdout] --> src/c/c_host.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | outgoingBandwidth: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outgoingBandwidth` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `channelLimit` is never read [INFO] [stdout] --> src/c/c_host.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 54 | channelLimit = ENET_PROTOCOL_MINIMUM_CHANNEL_COUNT as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `channelLimit` is never read [INFO] [stdout] --> src/c/c_host.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | channelLimit = ENET_PROTOCOL_MAXIMUM_CHANNEL_COUNT as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ENetAddress` [INFO] [stdout] --> src/include/h_enet.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | / pub fn new() -> ENetAddress { [INFO] [stdout] 84 | | ENetAddress { [INFO] [stdout] 85 | | host: [0; 16], [INFO] [stdout] 86 | | port: 0, [INFO] [stdout] ... | [INFO] [stdout] 89 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 82 + impl Default for ENetAddress { [INFO] [stdout] 83 + fn default() -> Self { [INFO] [stdout] 84 + Self::new() [INFO] [stdout] 85 + } [INFO] [stdout] 86 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/include/h_enet.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | / match socket.local_addr() { [INFO] [stdout] 101 | | Ok(addr) => { [INFO] [stdout] 102 | | return if addr.is_ipv6() { [INFO] [stdout] 103 | | Some(self.into_ipv6()) [INFO] [stdout] ... | [INFO] [stdout] 109 | | Err(_) => {} [INFO] [stdout] 110 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 100 ~ if let Ok(addr) = socket.local_addr() { [INFO] [stdout] 101 + return if addr.is_ipv6() { [INFO] [stdout] 102 + Some(self.into_ipv6()) [INFO] [stdout] 103 + } else { [INFO] [stdout] 104 + self.try_into_ipv4() [INFO] [stdout] 105 + } [INFO] [stdout] 106 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::mem::zeroed` [INFO] [stdout] --> src/include/h_win32.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::mem::zeroed; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.37s [INFO] [stdout] warning: unused variable: `incomingBandwidth` [INFO] [stdout] --> src/c/c_host.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | incomingBandwidth: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_incomingBandwidth` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `outgoingBandwidth` [INFO] [stdout] --> src/c/c_host.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | outgoingBandwidth: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outgoingBandwidth` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `channelLimit` is never read [INFO] [stdout] --> src/c/c_host.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 54 | channelLimit = ENET_PROTOCOL_MINIMUM_CHANNEL_COUNT as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `channelLimit` is never read [INFO] [stdout] --> src/c/c_host.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | channelLimit = ENET_PROTOCOL_MAXIMUM_CHANNEL_COUNT as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/include/h_enet.rs:162:1 [INFO] [stdout] | [INFO] [stdout] 162 | impl Into for ENetAddress { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 162 ~ impl From for SocketAddr { [INFO] [stdout] 163 ~ fn from(val: ENetAddress) -> Self { [INFO] [stdout] 164 ~ if val.is_ipv4() { [INFO] [stdout] 165 ~ val.into_ipv4() [INFO] [stdout] 166 | } else { [INFO] [stdout] 167 ~ val.into_ipv6() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ENetAddress` [INFO] [stdout] --> src/include/h_enet.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | / pub fn new() -> ENetAddress { [INFO] [stdout] 84 | | ENetAddress { [INFO] [stdout] 85 | | host: [0; 16], [INFO] [stdout] 86 | | port: 0, [INFO] [stdout] ... | [INFO] [stdout] 89 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 82 + impl Default for ENetAddress { [INFO] [stdout] 83 + fn default() -> Self { [INFO] [stdout] 84 + Self::new() [INFO] [stdout] 85 + } [INFO] [stdout] 86 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/include/h_enet.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | / match socket.local_addr() { [INFO] [stdout] 101 | | Ok(addr) => { [INFO] [stdout] 102 | | return if addr.is_ipv6() { [INFO] [stdout] 103 | | Some(self.into_ipv6()) [INFO] [stdout] ... | [INFO] [stdout] 109 | | Err(_) => {} [INFO] [stdout] 110 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 100 ~ if let Ok(addr) = socket.local_addr() { [INFO] [stdout] 101 + return if addr.is_ipv6() { [INFO] [stdout] 102 + Some(self.into_ipv6()) [INFO] [stdout] 103 + } else { [INFO] [stdout] 104 + self.try_into_ipv4() [INFO] [stdout] 105 + } [INFO] [stdout] 106 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/include/h_enet.rs:162:1 [INFO] [stdout] | [INFO] [stdout] 162 | impl Into for ENetAddress { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 162 ~ impl From for SocketAddr { [INFO] [stdout] 163 ~ fn from(val: ENetAddress) -> Self { [INFO] [stdout] 164 ~ if val.is_ipv4() { [INFO] [stdout] 165 ~ val.into_ipv4() [INFO] [stdout] 166 | } else { [INFO] [stdout] 167 ~ val.into_ipv6() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/include/h_enet.rs:341:19 [INFO] [stdout] | [INFO] [stdout] 341 | pub compress: Option>, &mut [Vec], usize, usize, &mut [u8], usize) -> usize>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/include/h_enet.rs:342:21 [INFO] [stdout] | [INFO] [stdout] 342 | pub decompress: Option>, &[u8], usize, &mut [u8], usize) -> usize>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/include/h_enet.rs:343:18 [INFO] [stdout] | [INFO] [stdout] 343 | pub destroy: Option>)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ENetCompressor` [INFO] [stdout] --> src/include/h_enet.rs:347:5 [INFO] [stdout] | [INFO] [stdout] 347 | / pub fn new() -> ENetCompressor { [INFO] [stdout] 348 | | ENetCompressor{ [INFO] [stdout] 349 | | context: None, [INFO] [stdout] 350 | | compress: None, [INFO] [stdout] ... | [INFO] [stdout] 354 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 346 + impl Default for ENetCompressor { [INFO] [stdout] 347 + fn default() -> Self { [INFO] [stdout] 348 + Self::new() [INFO] [stdout] 349 + } [INFO] [stdout] 350 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/include/h_enet.rs:377:19 [INFO] [stdout] | [INFO] [stdout] 377 | pub checksum: Option], usize) -> u32>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual absolute difference pattern without using `abs_diff` [INFO] [stdout] --> src/include/h_utility.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / if x < y { [INFO] [stdout] 23 | | y - x [INFO] [stdout] 24 | | } else { [INFO] [stdout] 25 | | x - y [INFO] [stdout] 26 | | } [INFO] [stdout] | |_____^ help: replace with `abs_diff`: `y.abs_diff(x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_abs_diff [INFO] [stdout] = note: `#[warn(clippy::manual_abs_diff)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/c/c_host.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / if enet_socket_send(&host.socket, address, &[buffer], 1) > 0 { [INFO] [stdout] 14 | | true [INFO] [stdout] 15 | | } else { [INFO] [stdout] 16 | | false [INFO] [stdout] 17 | | } [INFO] [stdout] | |_____^ help: you can reduce it to: `enet_socket_send(&host.socket, address, &[buffer], 1) > 0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/c/c_host.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | if !(channelLimit != 0) || channelLimit > ENET_PROTOCOL_MAXIMUM_CHANNEL_COUNT as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `(channelLimit == 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/c/c_win32.rs:121:36 [INFO] [stdout] | [INFO] [stdout] 121 | match socket.recv_from(*buffer) { [INFO] [stdout] | ^^^^^^^ help: try: `buffer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/c/c_host.rs:21:14 [INFO] [stdout] | [INFO] [stdout] 21 | address: &ENetAddress, [INFO] [stdout] | ^^^^^^^^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 26 | ) -> Option> { [INFO] [stdout] | ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 26 | ) -> Option>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/include/h_enet.rs:341:19 [INFO] [stdout] | [INFO] [stdout] 341 | pub compress: Option>, &mut [Vec], usize, usize, &mut [u8], usize) -> usize>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/include/h_enet.rs:342:21 [INFO] [stdout] | [INFO] [stdout] 342 | pub decompress: Option>, &[u8], usize, &mut [u8], usize) -> usize>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/include/h_enet.rs:343:18 [INFO] [stdout] | [INFO] [stdout] 343 | pub destroy: Option>)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ENetCompressor` [INFO] [stdout] --> src/include/h_enet.rs:347:5 [INFO] [stdout] | [INFO] [stdout] 347 | / pub fn new() -> ENetCompressor { [INFO] [stdout] 348 | | ENetCompressor{ [INFO] [stdout] 349 | | context: None, [INFO] [stdout] 350 | | compress: None, [INFO] [stdout] ... | [INFO] [stdout] 354 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 346 + impl Default for ENetCompressor { [INFO] [stdout] 347 + fn default() -> Self { [INFO] [stdout] 348 + Self::new() [INFO] [stdout] 349 + } [INFO] [stdout] 350 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/include/h_enet.rs:377:19 [INFO] [stdout] | [INFO] [stdout] 377 | pub checksum: Option], usize) -> u32>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual absolute difference pattern without using `abs_diff` [INFO] [stdout] --> src/include/h_utility.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | / if x < y { [INFO] [stdout] 23 | | y - x [INFO] [stdout] 24 | | } else { [INFO] [stdout] 25 | | x - y [INFO] [stdout] 26 | | } [INFO] [stdout] | |_____^ help: replace with `abs_diff`: `y.abs_diff(x)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_abs_diff [INFO] [stdout] = note: `#[warn(clippy::manual_abs_diff)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/c/c_host.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / if enet_socket_send(&host.socket, address, &[buffer], 1) > 0 { [INFO] [stdout] 14 | | true [INFO] [stdout] 15 | | } else { [INFO] [stdout] 16 | | false [INFO] [stdout] 17 | | } [INFO] [stdout] | |_____^ help: you can reduce it to: `enet_socket_send(&host.socket, address, &[buffer], 1) > 0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/c/c_host.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | if !(channelLimit != 0) || channelLimit > ENET_PROTOCOL_MAXIMUM_CHANNEL_COUNT as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `(channelLimit == 0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/c/c_win32.rs:121:36 [INFO] [stdout] | [INFO] [stdout] 121 | match socket.recv_from(*buffer) { [INFO] [stdout] | ^^^^^^^ help: try: `buffer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/c/c_host.rs:21:14 [INFO] [stdout] | [INFO] [stdout] 21 | address: &ENetAddress, [INFO] [stdout] | ^^^^^^^^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 26 | ) -> Option> { [INFO] [stdout] | ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 26 | ) -> Option>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "41fdf8ca1e17f27746f77133c839018fb6ecd826e3473fa40f55362c02eb53db", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "41fdf8ca1e17f27746f77133c839018fb6ecd826e3473fa40f55362c02eb53db", kill_on_drop: false }` [INFO] [stdout] 41fdf8ca1e17f27746f77133c839018fb6ecd826e3473fa40f55362c02eb53db