[INFO] crate tokio-utp 0.3.0 is already in cache [INFO] extracting crate tokio-utp 0.3.0 into work/ex/clippy-test-run/sources/stable/reg/tokio-utp/0.3.0 [INFO] extracting crate tokio-utp 0.3.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tokio-utp/0.3.0 [INFO] validating manifest of tokio-utp-0.3.0 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 tokio-utp-0.3.0 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 tokio-utp-0.3.0 [INFO] finished frobbing tokio-utp-0.3.0 [INFO] frobbed toml for tokio-utp-0.3.0 written to work/ex/clippy-test-run/sources/stable/reg/tokio-utp/0.3.0/Cargo.toml [INFO] started frobbing tokio-utp-0.3.0 [INFO] finished frobbing tokio-utp-0.3.0 [INFO] frobbed toml for tokio-utp-0.3.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tokio-utp/0.3.0/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 tokio-utp-0.3.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/tokio-utp/0.3.0:/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] 62da1207f6453b526fa3c22627741326175485937eba2546460a12265e8d1728 [INFO] running `"docker" "start" "-a" "62da1207f6453b526fa3c22627741326175485937eba2546460a12265e8d1728"` [INFO] [stderr] Checking unwrap v1.2.1 [INFO] [stderr] Checking smallvec v0.4.5 [INFO] [stderr] Checking crossbeam-channel v0.3.7 [INFO] [stderr] Checking tokio-reactor v0.1.8 [INFO] [stderr] Checking crossbeam v0.6.0 [INFO] [stderr] Checking tokio-udp v0.1.3 [INFO] [stderr] Checking tokio-uds v0.2.5 [INFO] [stderr] Checking tokio-tcp v0.1.3 [INFO] [stderr] Checking tokio-threadpool v0.1.11 [INFO] [stderr] Checking tokio-fs v0.1.5 [INFO] [stderr] Checking tokio v0.1.15 [INFO] [stderr] Checking tokio-core v0.1.17 [INFO] [stderr] Checking future-utils v0.6.0 [INFO] [stderr] Checking tokio-utp v0.3.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/in_queue.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | ack_nr: ack_nr, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `ack_nr` [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/out_queue.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | connection_id: connection_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `connection_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/out_queue.rs:98:17 [INFO] [stderr] | [INFO] [stderr] 98 | seq_nr: seq_nr, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `seq_nr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/out_queue.rs:99:17 [INFO] [stderr] | [INFO] [stderr] 99 | local_ack: local_ack, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `local_ack` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/out_queue.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | packet: packet, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `packet` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/packet.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | padding: padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `padding` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:237:17 [INFO] [stderr] | [INFO] [stderr] 237 | socket: socket, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `socket` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:266:13 [INFO] [stderr] | [INFO] [stderr] 266 | inner: inner, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:267:13 [INFO] [stderr] | [INFO] [stderr] 267 | next_tick: next_tick, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `next_tick` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | timeout: timeout, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `timeout` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:744:13 [INFO] [stderr] | [INFO] [stderr] 744 | receive_id: receive_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `receive_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:773:13 [INFO] [stderr] | [INFO] [stderr] 773 | set_readiness: set_readiness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `set_readiness` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:774:13 [INFO] [stderr] | [INFO] [stderr] 774 | out_queue: out_queue, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `out_queue` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:805:13 [INFO] [stderr] | [INFO] [stderr] 805 | token: token, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:806:13 [INFO] [stderr] | [INFO] [stderr] 806 | registration: registration, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `registration` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:975:13 [INFO] [stderr] | [INFO] [stderr] 975 | receive_id: receive_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `receive_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:976:13 [INFO] [stderr] | [INFO] [stderr] 976 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:993:13 [INFO] [stderr] | [INFO] [stderr] 993 | set_readiness: set_readiness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `set_readiness` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:1025:13 [INFO] [stderr] | [INFO] [stderr] 1025 | token: token, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:1026:13 [INFO] [stderr] | [INFO] [stderr] 1026 | registration: registration, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `registration` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:1074:13 [INFO] [stderr] | [INFO] [stderr] 1074 | registration: registration, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `registration` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:1539:13 [INFO] [stderr] | [INFO] [stderr] 1539 | receive_id: receive_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `receive_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:1540:13 [INFO] [stderr] | [INFO] [stderr] 1540 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/in_queue.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | ack_nr: ack_nr, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `ack_nr` [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/out_queue.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | connection_id: connection_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `connection_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/out_queue.rs:98:17 [INFO] [stderr] | [INFO] [stderr] 98 | seq_nr: seq_nr, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `seq_nr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/out_queue.rs:99:17 [INFO] [stderr] | [INFO] [stderr] 99 | local_ack: local_ack, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `local_ack` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/out_queue.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | packet: packet, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `packet` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/packet.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | padding: padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `padding` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:237:17 [INFO] [stderr] | [INFO] [stderr] 237 | socket: socket, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `socket` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:266:13 [INFO] [stderr] | [INFO] [stderr] 266 | inner: inner, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:267:13 [INFO] [stderr] | [INFO] [stderr] 267 | next_tick: next_tick, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `next_tick` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | timeout: timeout, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `timeout` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:744:13 [INFO] [stderr] | [INFO] [stderr] 744 | receive_id: receive_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `receive_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:773:13 [INFO] [stderr] | [INFO] [stderr] 773 | set_readiness: set_readiness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `set_readiness` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:774:13 [INFO] [stderr] | [INFO] [stderr] 774 | out_queue: out_queue, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `out_queue` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:805:13 [INFO] [stderr] | [INFO] [stderr] 805 | token: token, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:806:13 [INFO] [stderr] | [INFO] [stderr] 806 | registration: registration, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `registration` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:975:13 [INFO] [stderr] | [INFO] [stderr] 975 | receive_id: receive_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `receive_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:976:13 [INFO] [stderr] | [INFO] [stderr] 976 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:993:13 [INFO] [stderr] | [INFO] [stderr] 993 | set_readiness: set_readiness, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `set_readiness` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:1025:13 [INFO] [stderr] | [INFO] [stderr] 1025 | token: token, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:1026:13 [INFO] [stderr] | [INFO] [stderr] 1026 | registration: registration, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `registration` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:1074:13 [INFO] [stderr] | [INFO] [stderr] 1074 | registration: registration, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `registration` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:1539:13 [INFO] [stderr] | [INFO] [stderr] 1539 | receive_id: receive_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `receive_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/socket.rs:1540:13 [INFO] [stderr] | [INFO] [stderr] 1540 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/socket.rs:1032:9 [INFO] [stderr] | [INFO] [stderr] 1032 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | const TIMESTAMP_MASK: u32 = 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/delays.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | / if self.last_step.is_none() { [INFO] [stderr] 28 | | return None; [INFO] [stderr] 29 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `self.last_step?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/delays.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | self.curr_delays.iter().min().map(|&v| v) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.curr_delays.iter().min().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/socket.rs:1032:9 [INFO] [stderr] | [INFO] [stderr] 1032 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | const TIMESTAMP_MASK: u32 = 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/out_queue.rs:151:29 [INFO] [stderr] | [INFO] [stderr] 151 | selective_acks.get(index / 8).map(|b| *b).unwrap_or(0) & (1 << (index % 8)) != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `selective_acks.get(index / 8).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/out_queue.rs:356:12 [INFO] [stderr] | [INFO] [stderr] 356 | if src.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `src.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:627:55 [INFO] [stderr] | [INFO] [stderr] 627 | connection.disconnect_timeout_secs = cmp::min(u32::MAX as u64, duration.as_secs()) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(u32::MAX)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/socket.rs:745:19 [INFO] [stderr] | [INFO] [stderr] 745 | addr: addr.clone() [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*addr` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/socket.rs:932:29 [INFO] [stderr] | [INFO] [stderr] 932 | let _ = self.remove_connection(token); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/socket.rs:1082:9 [INFO] [stderr] | [INFO] [stderr] 1082 | / loop { [INFO] [stderr] 1083 | | // Ensure the buffer has at least 4kb of available space. [INFO] [stderr] 1084 | | self.in_buf.reserve(MIN_BUFFER_SIZE); [INFO] [stderr] 1085 | | [INFO] [stderr] ... | [INFO] [stderr] 1095 | | return Ok((bytes, addr)); [INFO] [stderr] 1096 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/socket.rs:1100:12 [INFO] [stderr] | [INFO] [stderr] 1100 | if self.connection_lookup.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.connection_lookup.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/socket.rs:1133:9 [INFO] [stderr] | [INFO] [stderr] 1133 | self.ready = self.ready | ready; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.ready |= ready` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1296:54 [INFO] [stderr] | [INFO] [stderr] 1296 | if now > self.last_recv_time + Duration::new(self.disconnect_timeout_secs as u64, 0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.disconnect_timeout_secs)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1357:44 [INFO] [stderr] | [INFO] [stderr] 1357 | average_delay_sample = dist_up as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(dist_up)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1359:45 [INFO] [stderr] | [INFO] [stderr] 1359 | average_delay_sample = -(dist_down as i64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i64::from(dist_down)` [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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1389:33 [INFO] [stderr] | [INFO] [stderr] 1389 | let drift = self.average_delay as i64 - prev_average_delay as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(self.average_delay)` [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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1389:61 [INFO] [stderr] | [INFO] [stderr] 1389 | let drift = self.average_delay as i64 - prev_average_delay as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(prev_average_delay)` [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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1391:42 [INFO] [stderr] | [INFO] [stderr] 1391 | self.clock_drift = ((self.clock_drift as i64 * 7 + drift) / 8) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(self.clock_drift)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1440:27 [INFO] [stderr] | [INFO] [stderr] 1440 | let off_target = ((target as i64) - (our_delay as i64)) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i64::from(target)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1440:45 [INFO] [stderr] | [INFO] [stderr] 1440 | let off_target = ((target as i64) - (our_delay as i64)) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i64::from(our_delay)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1445:41 [INFO] [stderr] | [INFO] [stderr] 1445 | let delay_factor = off_target / target as f64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(target)` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/socket.rs:1469:64 [INFO] [stderr] | [INFO] [stderr] 1469 | } else if our_delay > (target as f64 * 0.9) as u32 { [INFO] [stderr] | ________________________________________________________________^ [INFO] [stderr] 1470 | | // Even if we're a little under the target delay, we [INFO] [stderr] 1471 | | // conservatively discontinue the slow start phase [INFO] [stderr] 1472 | | self.slow_start = false; [INFO] [stderr] 1473 | | } else { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/socket.rs:1467:47 [INFO] [stderr] | [INFO] [stderr] 1467 | if ss_cwnd > SLOW_START_THRESHOLD { [INFO] [stderr] | _______________________________________________^ [INFO] [stderr] 1468 | | self.slow_start = false; [INFO] [stderr] 1469 | | } else if our_delay > (target as f64 * 0.9) as u32 { [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1469:36 [INFO] [stderr] | [INFO] [stderr] 1469 | } else if our_delay > (target as f64 * 0.9) as u32 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(target)` [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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/socket.rs:1600:9 [INFO] [stderr] | [INFO] [stderr] 1600 | / loop { [INFO] [stderr] 1601 | | match self.timeout.poll()? { [INFO] [stderr] 1602 | | Async::Ready(()) => { [INFO] [stderr] 1603 | | unwrap!(self.inner.write()).tick()?; [INFO] [stderr] ... | [INFO] [stderr] 1608 | | } [INFO] [stderr] 1609 | | } [INFO] [stderr] | |_________^ help: try: `while let Async::Ready(()) = self.timeout.poll()? { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/util.rs:8:24 [INFO] [stderr] | [INFO] [stderr] 8 | let sub_secs = duration.subsec_nanos() / NANOS_PER_MS; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:9:37 [INFO] [stderr] | [INFO] [stderr] 9 | duration.as_secs() * 1000 + sub_secs as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(sub_secs)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:27:51 [INFO] [stderr] | [INFO] [stderr] 27 | let mut ret = duration.as_secs().wrapping_mul(MICROS_PER_SEC as u64) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(MICROS_PER_SEC)` [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: Calling `subsec_micros()` is more concise than this calculation [INFO] [stderr] --> src/util.rs:28:12 [INFO] [stderr] | [INFO] [stderr] 28 | ret += duration.subsec_nanos() / NANOS_PER_MICRO; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_micros()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `tokio-utp`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/delays.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | / if self.last_step.is_none() { [INFO] [stderr] 28 | | return None; [INFO] [stderr] 29 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `self.last_step?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/delays.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | self.curr_delays.iter().min().map(|&v| v) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.curr_delays.iter().min().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/out_queue.rs:151:29 [INFO] [stderr] | [INFO] [stderr] 151 | selective_acks.get(index / 8).map(|b| *b).unwrap_or(0) & (1 << (index % 8)) != 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `selective_acks.get(index / 8).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/out_queue.rs:356:12 [INFO] [stderr] | [INFO] [stderr] 356 | if src.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `src.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:627:55 [INFO] [stderr] | [INFO] [stderr] 627 | connection.disconnect_timeout_secs = cmp::min(u32::MAX as u64, duration.as_secs()) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(u32::MAX)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/socket.rs:745:19 [INFO] [stderr] | [INFO] [stderr] 745 | addr: addr.clone() [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*addr` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/socket.rs:932:29 [INFO] [stderr] | [INFO] [stderr] 932 | let _ = self.remove_connection(token); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/socket.rs:1082:9 [INFO] [stderr] | [INFO] [stderr] 1082 | / loop { [INFO] [stderr] 1083 | | // Ensure the buffer has at least 4kb of available space. [INFO] [stderr] 1084 | | self.in_buf.reserve(MIN_BUFFER_SIZE); [INFO] [stderr] 1085 | | [INFO] [stderr] ... | [INFO] [stderr] 1095 | | return Ok((bytes, addr)); [INFO] [stderr] 1096 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/socket.rs:1100:12 [INFO] [stderr] | [INFO] [stderr] 1100 | if self.connection_lookup.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.connection_lookup.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/socket.rs:1133:9 [INFO] [stderr] | [INFO] [stderr] 1133 | self.ready = self.ready | ready; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.ready |= ready` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1296:54 [INFO] [stderr] | [INFO] [stderr] 1296 | if now > self.last_recv_time + Duration::new(self.disconnect_timeout_secs as u64, 0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.disconnect_timeout_secs)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1357:44 [INFO] [stderr] | [INFO] [stderr] 1357 | average_delay_sample = dist_up as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(dist_up)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1359:45 [INFO] [stderr] | [INFO] [stderr] 1359 | average_delay_sample = -(dist_down as i64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i64::from(dist_down)` [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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1389:33 [INFO] [stderr] | [INFO] [stderr] 1389 | let drift = self.average_delay as i64 - prev_average_delay as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(self.average_delay)` [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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1389:61 [INFO] [stderr] | [INFO] [stderr] 1389 | let drift = self.average_delay as i64 - prev_average_delay as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(prev_average_delay)` [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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1391:42 [INFO] [stderr] | [INFO] [stderr] 1391 | self.clock_drift = ((self.clock_drift as i64 * 7 + drift) / 8) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(self.clock_drift)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1440:27 [INFO] [stderr] | [INFO] [stderr] 1440 | let off_target = ((target as i64) - (our_delay as i64)) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i64::from(target)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1440:45 [INFO] [stderr] | [INFO] [stderr] 1440 | let off_target = ((target as i64) - (our_delay as i64)) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i64::from(our_delay)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1445:41 [INFO] [stderr] | [INFO] [stderr] 1445 | let delay_factor = off_target / target as f64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(target)` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/socket.rs:1469:64 [INFO] [stderr] | [INFO] [stderr] 1469 | } else if our_delay > (target as f64 * 0.9) as u32 { [INFO] [stderr] | ________________________________________________________________^ [INFO] [stderr] 1470 | | // Even if we're a little under the target delay, we [INFO] [stderr] 1471 | | // conservatively discontinue the slow start phase [INFO] [stderr] 1472 | | self.slow_start = false; [INFO] [stderr] 1473 | | } else { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/socket.rs:1467:47 [INFO] [stderr] | [INFO] [stderr] 1467 | if ss_cwnd > SLOW_START_THRESHOLD { [INFO] [stderr] | _______________________________________________^ [INFO] [stderr] 1468 | | self.slow_start = false; [INFO] [stderr] 1469 | | } else if our_delay > (target as f64 * 0.9) as u32 { [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:1469:36 [INFO] [stderr] | [INFO] [stderr] 1469 | } else if our_delay > (target as f64 * 0.9) as u32 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(target)` [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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/socket.rs:1600:9 [INFO] [stderr] | [INFO] [stderr] 1600 | / loop { [INFO] [stderr] 1601 | | match self.timeout.poll()? { [INFO] [stderr] 1602 | | Async::Ready(()) => { [INFO] [stderr] 1603 | | unwrap!(self.inner.write()).tick()?; [INFO] [stderr] ... | [INFO] [stderr] 1608 | | } [INFO] [stderr] 1609 | | } [INFO] [stderr] | |_________^ help: try: `while let Async::Ready(()) = self.timeout.poll()? { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/util.rs:8:24 [INFO] [stderr] | [INFO] [stderr] 8 | let sub_secs = duration.subsec_nanos() / NANOS_PER_MS; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:9:37 [INFO] [stderr] | [INFO] [stderr] 9 | duration.as_secs() * 1000 + sub_secs as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(sub_secs)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:27:51 [INFO] [stderr] | [INFO] [stderr] 27 | let mut ret = duration.as_secs().wrapping_mul(MICROS_PER_SEC as u64) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(MICROS_PER_SEC)` [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: Calling `subsec_micros()` is more concise than this calculation [INFO] [stderr] --> src/util.rs:28:12 [INFO] [stderr] | [INFO] [stderr] 28 | ret += duration.subsec_nanos() / NANOS_PER_MICRO; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_micros()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `tokio-utp`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "62da1207f6453b526fa3c22627741326175485937eba2546460a12265e8d1728"` [INFO] running `"docker" "rm" "-f" "62da1207f6453b526fa3c22627741326175485937eba2546460a12265e8d1728"` [INFO] [stdout] 62da1207f6453b526fa3c22627741326175485937eba2546460a12265e8d1728