[INFO] crate utp 0.7.0 is already in cache [INFO] extracting crate utp 0.7.0 into work/ex/clippy-test-run/sources/stable/reg/utp/0.7.0 [INFO] extracting crate utp 0.7.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/utp/0.7.0 [INFO] validating manifest of utp-0.7.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 utp-0.7.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 utp-0.7.0 [INFO] finished frobbing utp-0.7.0 [INFO] frobbed toml for utp-0.7.0 written to work/ex/clippy-test-run/sources/stable/reg/utp/0.7.0/Cargo.toml [INFO] started frobbing utp-0.7.0 [INFO] finished frobbing utp-0.7.0 [INFO] frobbed toml for utp-0.7.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/utp/0.7.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 utp-0.7.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/utp/0.7.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] 22af25a0aac07447470c1792ed410002547d08d2020256a0036bf7de59abb7cc [INFO] running `"docker" "start" "-a" "22af25a0aac07447470c1792ed410002547d08d2020256a0036bf7de59abb7cc"` [INFO] [stderr] Checking utp v0.7.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/stream.rs:88:21 [INFO] [stderr] | [INFO] [stderr] 88 | UtpStream { socket: socket } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `socket` [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/stream.rs:88:21 [INFO] [stderr] | [INFO] [stderr] 88 | UtpStream { socket: socket } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `socket` [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: unneeded return statement [INFO] [stderr] --> src/socket.rs:286:9 [INFO] [stderr] | [INFO] [stderr] 286 | return Ok(socket); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(socket)` [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: unneeded return statement [INFO] [stderr] --> src/socket.rs:334:13 [INFO] [stderr] | [INFO] [stderr] 334 | return Ok((read, self.connected_to)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((read, self.connected_to))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/socket.rs:388:83 [INFO] [stderr] | [INFO] [stderr] 388 | let elapsed_ms = elapsed.as_secs() * 1000 + (elapsed.subsec_nanos() / 1000_000) as u64; [INFO] [stderr] | ^^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/socket.rs:544:9 [INFO] [stderr] | [INFO] [stderr] 544 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/socket.rs:512:13 [INFO] [stderr] | [INFO] [stderr] 512 | return max_len; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `max_len` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/socket.rs:732:9 [INFO] [stderr] | [INFO] [stderr] 732 | return sack; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `sack` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/socket.rs:926:9 [INFO] [stderr] | [INFO] [stderr] 926 | return queuing_delay; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `queuing_delay` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/packet.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] ... [INFO] [stderr] 312 | make_setter!(set_seq_nr, seq_nr, u16); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/packet.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] ... [INFO] [stderr] 313 | make_setter!(set_ack_nr, ack_nr, u16); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/packet.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] ... [INFO] [stderr] 314 | make_setter!(set_connection_id, connection_id, u16); [INFO] [stderr] | ---------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/packet.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] ... [INFO] [stderr] 315 | make_setter!(set_wnd_size, wnd_size, u32); [INFO] [stderr] | ------------------------------------------ in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/packet.rs:245:13 [INFO] [stderr] | [INFO] [stderr] 245 | let mut header = unsafe { &mut *(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/socket.rs:463:17 [INFO] [stderr] | [INFO] [stderr] 463 | let mut packet = &mut self.send_window[0]; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/packet.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=$end)` [INFO] [stderr] ... [INFO] [stderr] 191 | connection_id: u8_to_unsigned_be!(buf, 2, 3, u16), [INFO] [stderr] | ---------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/packet.rs:12:63 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from($src[$start+i])` [INFO] [stderr] ... [INFO] [stderr] 191 | connection_id: u8_to_unsigned_be!(buf, 2, 3, u16), [INFO] [stderr] | ---------------------------------- in this macro invocation [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: an inclusive range would be more readable [INFO] [stderr] --> src/packet.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=$end)` [INFO] [stderr] ... [INFO] [stderr] 192 | timestamp: u8_to_unsigned_be!(buf, 4, 7, u32), [INFO] [stderr] | ---------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/packet.rs:12:63 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from($src[$start+i])` [INFO] [stderr] ... [INFO] [stderr] 192 | timestamp: u8_to_unsigned_be!(buf, 4, 7, u32), [INFO] [stderr] | ---------------------------------- in this macro invocation [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: an inclusive range would be more readable [INFO] [stderr] --> src/packet.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=$end)` [INFO] [stderr] ... [INFO] [stderr] 193 | timestamp_difference: u8_to_unsigned_be!(buf, 8, 11, u32), [INFO] [stderr] | ----------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/packet.rs:12:63 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from($src[$start+i])` [INFO] [stderr] ... [INFO] [stderr] 193 | timestamp_difference: u8_to_unsigned_be!(buf, 8, 11, u32), [INFO] [stderr] | ----------------------------------- in this macro invocation [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: an inclusive range would be more readable [INFO] [stderr] --> src/packet.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=$end)` [INFO] [stderr] ... [INFO] [stderr] 194 | wnd_size: u8_to_unsigned_be!(buf, 12, 15, u32), [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/packet.rs:12:63 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from($src[$start+i])` [INFO] [stderr] ... [INFO] [stderr] 194 | wnd_size: u8_to_unsigned_be!(buf, 12, 15, u32), [INFO] [stderr] | ------------------------------------ in this macro invocation [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: an inclusive range would be more readable [INFO] [stderr] --> src/packet.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=$end)` [INFO] [stderr] ... [INFO] [stderr] 195 | seq_nr: u8_to_unsigned_be!(buf, 16, 17, u16), [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/packet.rs:12:63 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from($src[$start+i])` [INFO] [stderr] ... [INFO] [stderr] 195 | seq_nr: u8_to_unsigned_be!(buf, 16, 17, u16), [INFO] [stderr] | ------------------------------------ in this macro invocation [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: an inclusive range would be more readable [INFO] [stderr] --> src/packet.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=$end)` [INFO] [stderr] ... [INFO] [stderr] 196 | ack_nr: u8_to_unsigned_be!(buf, 18, 19, u16), [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/packet.rs:12:63 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from($src[$start+i])` [INFO] [stderr] ... [INFO] [stderr] 196 | ack_nr: u8_to_unsigned_be!(buf, 18, 19, u16), [INFO] [stderr] | ------------------------------------ in this macro invocation [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: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:245:41 [INFO] [stderr] | [INFO] [stderr] 245 | let mut header = unsafe { &mut *(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:251:33 [INFO] [stderr] | [INFO] [stderr] 251 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:256:33 [INFO] [stderr] | [INFO] [stderr] 256 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:261:33 [INFO] [stderr] | [INFO] [stderr] 261 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:288:33 [INFO] [stderr] | [INFO] [stderr] 288 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:293:37 [INFO] [stderr] | [INFO] [stderr] 293 | let header = unsafe { &mut *(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:298:33 [INFO] [stderr] | [INFO] [stderr] 298 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:303:37 [INFO] [stderr] | [INFO] [stderr] 303 | let header = unsafe { &mut *(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:19:37 [INFO] [stderr] | [INFO] [stderr] 19 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 307 | make_getter!(seq_nr, u16, u16); [INFO] [stderr] | ------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:19:37 [INFO] [stderr] | [INFO] [stderr] 19 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 308 | make_getter!(ack_nr, u16, u16); [INFO] [stderr] | ------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:19:37 [INFO] [stderr] | [INFO] [stderr] 19 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 309 | make_getter!(connection_id, u16, u16); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:19:37 [INFO] [stderr] | [INFO] [stderr] 19 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 310 | make_getter!(wnd_size, u32, u32); [INFO] [stderr] | --------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:28:44 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 312 | make_setter!(set_seq_nr, seq_nr, u16); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:28:44 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 313 | make_setter!(set_ack_nr, ack_nr, u16); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:28:44 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 314 | make_setter!(set_connection_id, connection_id, u16); [INFO] [stderr] | ---------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:28:44 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 315 | make_setter!(set_wnd_size, wnd_size, u32); [INFO] [stderr] | ------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/socket.rs:53:38 [INFO] [stderr] | [INFO] [stderr] 53 | .and_then(|mut it| it.next().ok_or(SocketError::InvalidAddress.into())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| SocketError::InvalidAddress.into())` [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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:388:57 [INFO] [stderr] | [INFO] [stderr] 388 | let elapsed_ms = elapsed.as_secs() * 1000 + (elapsed.subsec_nanos() / 1000_000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(elapsed.subsec_nanos() / 1000_000)` [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_millis()` is more concise than this calculation [INFO] [stderr] --> src/socket.rs:388:57 [INFO] [stderr] | [INFO] [stderr] 388 | let elapsed_ms = elapsed.as_secs() * 1000 + (elapsed.subsec_nanos() / 1000_000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `elapsed.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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:672:20 [INFO] [stderr] | [INFO] [stderr] 672 | let rtt = (self.rtt as i64 * 100).into(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i64::from(self.rtt)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/socket.rs:784:22 [INFO] [stderr] | [INFO] [stderr] 784 | for _ in 0..position + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `0..=position` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:951:49 [INFO] [stderr] | [INFO] [stderr] 951 | let cwnd_increase = GAIN * off_target * bytes_newly_acked as f64 * MSS as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(bytes_newly_acked)` [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:951:76 [INFO] [stderr] | [INFO] [stderr] 951 | let cwnd_increase = GAIN * off_target * bytes_newly_acked as f64 * MSS as f64; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(MSS)` [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:952:45 [INFO] [stderr] | [INFO] [stderr] 952 | let cwnd_increase = cwnd_increase / self.cwnd as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(self.cwnd)` [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:955:22 [INFO] [stderr] | [INFO] [stderr] 955 | self.cwnd = (self.cwnd as f64 + cwnd_increase) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(self.cwnd)` [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:989:45 [INFO] [stderr] | [INFO] [stderr] 989 | let off_target: f64 = (TARGET - u32::from(self.queuing_delay()) as f64) / TARGET; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(u32::from(self.queuing_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: Calling `subsec_micros()` is more concise than this calculation [INFO] [stderr] --> src/time.rs:11:63 [INFO] [stderr] | [INFO] [stderr] 11 | (t.as_secs().wrapping_mul(1_000_000) as u32).wrapping_add(t.subsec_nanos() / 1000).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `t.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] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/time.rs:21:15 [INFO] [stderr] | [INFO] [stderr] 21 | Delay(self.0 as i64 - other.0 as i64) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(self.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/time.rs:21:31 [INFO] [stderr] | [INFO] [stderr] 21 | Delay(self.0 as i64 - other.0 as i64) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(other.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/time.rs:54:15 [INFO] [stderr] | [INFO] [stderr] 54 | Delay(value as i64) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(value)` [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: aborting due to 16 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `utp`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/packet.rs:515:50 [INFO] [stderr] | [INFO] [stderr] 515 | assert_eq!(packet.timestamp(), Timestamp(2570047530)); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_570_047_530` [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: long literal lacking separators [INFO] [stderr] --> src/packet.rs:516:57 [INFO] [stderr] | [INFO] [stderr] 516 | assert_eq!(packet.timestamp_difference(), Delay(2672436769)); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `2_672_436_769` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/packet.rs:647:35 [INFO] [stderr] | [INFO] [stderr] 647 | let timestamp = Timestamp(15270793); [INFO] [stderr] | ^^^^^^^^ help: consider: `15_270_793` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/packet.rs:648:36 [INFO] [stderr] | [INFO] [stderr] 648 | let timestamp_diff = Delay(1707040186); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_707_040_186` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/packet.rs:650:32 [INFO] [stderr] | [INFO] [stderr] 650 | let window_size: u32 = 1048576; [INFO] [stderr] | ^^^^^^^ help: consider: `1_048_576` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/packet.rs:682:35 [INFO] [stderr] | [INFO] [stderr] 682 | let timestamp = Timestamp(15270793); [INFO] [stderr] | ^^^^^^^^ help: consider: `15_270_793` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/packet.rs:683:36 [INFO] [stderr] | [INFO] [stderr] 683 | let timestamp_diff = Delay(1707040186); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_707_040_186` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/packet.rs:685:32 [INFO] [stderr] | [INFO] [stderr] 685 | let window_size: u32 = 1048576; [INFO] [stderr] | ^^^^^^^ help: consider: `1_048_576` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/socket.rs:286:9 [INFO] [stderr] | [INFO] [stderr] 286 | return Ok(socket); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(socket)` [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: unneeded return statement [INFO] [stderr] --> src/socket.rs:334:13 [INFO] [stderr] | [INFO] [stderr] 334 | return Ok((read, self.connected_to)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok((read, self.connected_to))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/socket.rs:388:83 [INFO] [stderr] | [INFO] [stderr] 388 | let elapsed_ms = elapsed.as_secs() * 1000 + (elapsed.subsec_nanos() / 1000_000) as u64; [INFO] [stderr] | ^^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/socket.rs:544:9 [INFO] [stderr] | [INFO] [stderr] 544 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/socket.rs:512:13 [INFO] [stderr] | [INFO] [stderr] 512 | return max_len; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `max_len` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/socket.rs:732:9 [INFO] [stderr] | [INFO] [stderr] 732 | return sack; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `sack` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/socket.rs:926:9 [INFO] [stderr] | [INFO] [stderr] 926 | return queuing_delay; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `queuing_delay` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/socket.rs:2214:30 [INFO] [stderr] | [INFO] [stderr] 2214 | assert!(take_address(("0.0.0.0:0")).is_ok()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/socket.rs:2214:30 [INFO] [stderr] | [INFO] [stderr] 2214 | assert!(take_address(("0.0.0.0:0")).is_ok()); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/socket.rs:2215:30 [INFO] [stderr] | [INFO] [stderr] 2215 | assert!(take_address(("[::]:0")).is_ok()); [INFO] [stderr] | ^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/socket.rs:2215:30 [INFO] [stderr] | [INFO] [stderr] 2215 | assert!(take_address(("[::]:0")).is_ok()); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/socket.rs:2222:30 [INFO] [stderr] | [INFO] [stderr] 2222 | assert!(take_address(("1.2.3.4:70000")).is_err()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/socket.rs:2222:30 [INFO] [stderr] | [INFO] [stderr] 2222 | assert!(take_address(("1.2.3.4:70000")).is_err()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:71:25 [INFO] [stderr] | [INFO] [stderr] 71 | 158488.0 / 19683.0]; [INFO] [stderr] | ^^^^^^^^ help: consider: `158_488.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/packet.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] ... [INFO] [stderr] 312 | make_setter!(set_seq_nr, seq_nr, u16); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/packet.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] ... [INFO] [stderr] 313 | make_setter!(set_ack_nr, ack_nr, u16); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/packet.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] ... [INFO] [stderr] 314 | make_setter!(set_connection_id, connection_id, u16); [INFO] [stderr] | ---------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/packet.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] ... [INFO] [stderr] 315 | make_setter!(set_wnd_size, wnd_size, u32); [INFO] [stderr] | ------------------------------------------ in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/packet.rs:245:13 [INFO] [stderr] | [INFO] [stderr] 245 | let mut header = unsafe { &mut *(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/socket.rs:463:17 [INFO] [stderr] | [INFO] [stderr] 463 | let mut packet = &mut self.send_window[0]; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/packet.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=$end)` [INFO] [stderr] ... [INFO] [stderr] 191 | connection_id: u8_to_unsigned_be!(buf, 2, 3, u16), [INFO] [stderr] | ---------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/packet.rs:12:63 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from($src[$start+i])` [INFO] [stderr] ... [INFO] [stderr] 191 | connection_id: u8_to_unsigned_be!(buf, 2, 3, u16), [INFO] [stderr] | ---------------------------------- in this macro invocation [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: an inclusive range would be more readable [INFO] [stderr] --> src/packet.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=$end)` [INFO] [stderr] ... [INFO] [stderr] 192 | timestamp: u8_to_unsigned_be!(buf, 4, 7, u32), [INFO] [stderr] | ---------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/packet.rs:12:63 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from($src[$start+i])` [INFO] [stderr] ... [INFO] [stderr] 192 | timestamp: u8_to_unsigned_be!(buf, 4, 7, u32), [INFO] [stderr] | ---------------------------------- in this macro invocation [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: an inclusive range would be more readable [INFO] [stderr] --> src/packet.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=$end)` [INFO] [stderr] ... [INFO] [stderr] 193 | timestamp_difference: u8_to_unsigned_be!(buf, 8, 11, u32), [INFO] [stderr] | ----------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/packet.rs:12:63 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from($src[$start+i])` [INFO] [stderr] ... [INFO] [stderr] 193 | timestamp_difference: u8_to_unsigned_be!(buf, 8, 11, u32), [INFO] [stderr] | ----------------------------------- in this macro invocation [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: an inclusive range would be more readable [INFO] [stderr] --> src/packet.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=$end)` [INFO] [stderr] ... [INFO] [stderr] 194 | wnd_size: u8_to_unsigned_be!(buf, 12, 15, u32), [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/packet.rs:12:63 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from($src[$start+i])` [INFO] [stderr] ... [INFO] [stderr] 194 | wnd_size: u8_to_unsigned_be!(buf, 12, 15, u32), [INFO] [stderr] | ------------------------------------ in this macro invocation [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: an inclusive range would be more readable [INFO] [stderr] --> src/packet.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=$end)` [INFO] [stderr] ... [INFO] [stderr] 195 | seq_nr: u8_to_unsigned_be!(buf, 16, 17, u16), [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/packet.rs:12:63 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from($src[$start+i])` [INFO] [stderr] ... [INFO] [stderr] 195 | seq_nr: u8_to_unsigned_be!(buf, 16, 17, u16), [INFO] [stderr] | ------------------------------------ in this macro invocation [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: an inclusive range would be more readable [INFO] [stderr] --> src/packet.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=$end)` [INFO] [stderr] ... [INFO] [stderr] 196 | ack_nr: u8_to_unsigned_be!(buf, 18, 19, u16), [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/packet.rs:12:63 [INFO] [stderr] | [INFO] [stderr] 12 | (0 .. $end - $start + 1).rev().fold(0, |acc, i| acc | $src[$start+i] as $t << (i * 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from($src[$start+i])` [INFO] [stderr] ... [INFO] [stderr] 196 | ack_nr: u8_to_unsigned_be!(buf, 18, 19, u16), [INFO] [stderr] | ------------------------------------ in this macro invocation [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: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:245:41 [INFO] [stderr] | [INFO] [stderr] 245 | let mut header = unsafe { &mut *(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:251:33 [INFO] [stderr] | [INFO] [stderr] 251 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:256:33 [INFO] [stderr] | [INFO] [stderr] 256 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:261:33 [INFO] [stderr] | [INFO] [stderr] 261 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:288:33 [INFO] [stderr] | [INFO] [stderr] 288 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:293:37 [INFO] [stderr] | [INFO] [stderr] 293 | let header = unsafe { &mut *(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:298:33 [INFO] [stderr] | [INFO] [stderr] 298 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:303:37 [INFO] [stderr] | [INFO] [stderr] 303 | let header = unsafe { &mut *(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:19:37 [INFO] [stderr] | [INFO] [stderr] 19 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 307 | make_getter!(seq_nr, u16, u16); [INFO] [stderr] | ------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:19:37 [INFO] [stderr] | [INFO] [stderr] 19 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 308 | make_getter!(ack_nr, u16, u16); [INFO] [stderr] | ------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:19:37 [INFO] [stderr] | [INFO] [stderr] 19 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 309 | make_getter!(connection_id, u16, u16); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:19:37 [INFO] [stderr] | [INFO] [stderr] 19 | let header = unsafe { &*(self.0.as_ptr() as *const PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 310 | make_getter!(wnd_size, u32, u32); [INFO] [stderr] | --------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:28:44 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 312 | make_setter!(set_seq_nr, seq_nr, u16); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:28:44 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 313 | make_setter!(set_ack_nr, ack_nr, u16); [INFO] [stderr] | -------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:28:44 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 314 | make_setter!(set_connection_id, connection_id, u16); [INFO] [stderr] | ---------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut packet::PacketHeader`) [INFO] [stderr] --> src/packet.rs:28:44 [INFO] [stderr] | [INFO] [stderr] 28 | let mut header = unsafe { &mut*(self.0.as_mut_ptr() as *mut PacketHeader) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 315 | make_setter!(set_wnd_size, wnd_size, u32); [INFO] [stderr] | ------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/packet.rs:744:39 [INFO] [stderr] | [INFO] [stderr] 744 | TestResult::from_bool(&packet.as_ref() == &x.as_slice()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 744 | TestResult::from_bool(packet.as_ref() == x.as_slice()) [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/socket.rs:53:38 [INFO] [stderr] | [INFO] [stderr] 53 | .and_then(|mut it| it.next().ok_or(SocketError::InvalidAddress.into())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| SocketError::InvalidAddress.into())` [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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:388:57 [INFO] [stderr] | [INFO] [stderr] 388 | let elapsed_ms = elapsed.as_secs() * 1000 + (elapsed.subsec_nanos() / 1000_000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(elapsed.subsec_nanos() / 1000_000)` [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_millis()` is more concise than this calculation [INFO] [stderr] --> src/socket.rs:388:57 [INFO] [stderr] | [INFO] [stderr] 388 | let elapsed_ms = elapsed.as_secs() * 1000 + (elapsed.subsec_nanos() / 1000_000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `elapsed.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 i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:672:20 [INFO] [stderr] | [INFO] [stderr] 672 | let rtt = (self.rtt as i64 * 100).into(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i64::from(self.rtt)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/socket.rs:784:22 [INFO] [stderr] | [INFO] [stderr] 784 | for _ in 0..position + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `0..=position` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/socket.rs:951:49 [INFO] [stderr] | [INFO] [stderr] 951 | let cwnd_increase = GAIN * off_target * bytes_newly_acked as f64 * MSS as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(bytes_newly_acked)` [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:951:76 [INFO] [stderr] | [INFO] [stderr] 951 | let cwnd_increase = GAIN * off_target * bytes_newly_acked as f64 * MSS as f64; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(MSS)` [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:952:45 [INFO] [stderr] | [INFO] [stderr] 952 | let cwnd_increase = cwnd_increase / self.cwnd as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(self.cwnd)` [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:955:22 [INFO] [stderr] | [INFO] [stderr] 955 | self.cwnd = (self.cwnd as f64 + cwnd_increase) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(self.cwnd)` [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:989:45 [INFO] [stderr] | [INFO] [stderr] 989 | let off_target: f64 = (TARGET - u32::from(self.queuing_delay()) as f64) / TARGET; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(u32::from(self.queuing_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: Calling `subsec_micros()` is more concise than this calculation [INFO] [stderr] --> src/time.rs:11:63 [INFO] [stderr] | [INFO] [stderr] 11 | (t.as_secs().wrapping_mul(1_000_000) as u32).wrapping_add(t.subsec_nanos() / 1000).into() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `t.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] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/time.rs:21:15 [INFO] [stderr] | [INFO] [stderr] 21 | Delay(self.0 as i64 - other.0 as i64) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(self.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/time.rs:21:31 [INFO] [stderr] | [INFO] [stderr] 21 | Delay(self.0 as i64 - other.0 as i64) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i64::from(other.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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/time.rs:54:15 [INFO] [stderr] | [INFO] [stderr] 54 | Delay(value as i64) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(value)` [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: strict comparison of f32 or f64 [INFO] [stderr] --> src/util.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | assert_eq!(ewma(empty.iter(), alpha), 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/util.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | assert_eq!(ewma(empty.iter(), alpha), 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/util.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | assert_eq!(ewma(input.iter(), alpha), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/util.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | assert_eq!(ewma(input.iter(), alpha), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/util.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | assert_eq!(ewma(input.iter(), alpha), expected[expected.len() - 1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/util.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | assert_eq!(ewma(input.iter(), alpha), expected[expected.len() - 1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: aborting due to 19 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `utp`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "22af25a0aac07447470c1792ed410002547d08d2020256a0036bf7de59abb7cc"` [INFO] running `"docker" "rm" "-f" "22af25a0aac07447470c1792ed410002547d08d2020256a0036bf7de59abb7cc"` [INFO] [stdout] 22af25a0aac07447470c1792ed410002547d08d2020256a0036bf7de59abb7cc