[INFO] crate kcp 0.4.10 is already in cache [INFO] extracting crate kcp 0.4.10 into work/ex/clippy-test-run/sources/stable/reg/kcp/0.4.10 [INFO] extracting crate kcp 0.4.10 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/kcp/0.4.10 [INFO] validating manifest of kcp-0.4.10 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 kcp-0.4.10 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 kcp-0.4.10 [INFO] finished frobbing kcp-0.4.10 [INFO] frobbed toml for kcp-0.4.10 written to work/ex/clippy-test-run/sources/stable/reg/kcp/0.4.10/Cargo.toml [INFO] started frobbing kcp-0.4.10 [INFO] finished frobbing kcp-0.4.10 [INFO] frobbed toml for kcp-0.4.10 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/kcp/0.4.10/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 kcp-0.4.10 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/kcp/0.4.10:/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] 63db28efb5918cf032fe1be75a4e35a2a20780236a2ef59139247be79158f36c [INFO] running `"docker" "start" "-a" "63db28efb5918cf032fe1be75a4e35a2a20780236a2ef59139247be79158f36c"` [INFO] [stderr] Checking kcp v0.4.10 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/kcp.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/kcp.rs:241:13 [INFO] [stderr] | [INFO] [stderr] 241 | conv: conv, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `conv` [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/kcp.rs:260:13 [INFO] [stderr] | [INFO] [stderr] 260 | stream: stream, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [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/kcp.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/kcp.rs:241:13 [INFO] [stderr] | [INFO] [stderr] 241 | conv: conv, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `conv` [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/kcp.rs:260:13 [INFO] [stderr] | [INFO] [stderr] 260 | stream: stream, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/kcp.rs:38:30 [INFO] [stderr] | [INFO] [stderr] 38 | const KCP_PROBE_LIMIT: u32 = 120000; [INFO] [stderr] | ^^^^^^ help: consider: `120_000` [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 if statement can be collapsed [INFO] [stderr] --> src/kcp.rs:692:9 [INFO] [stderr] | [INFO] [stderr] 692 | / if self.snd_una > old_una { [INFO] [stderr] 693 | | if self.cwnd < self.rmt_wnd { [INFO] [stderr] 694 | | let mss = self.mss; [INFO] [stderr] 695 | | if self.cwnd < self.ssthresh { [INFO] [stderr] ... | [INFO] [stderr] 711 | | } [INFO] [stderr] 712 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 692 | if self.snd_una > old_una && self.cwnd < self.rmt_wnd { [INFO] [stderr] 693 | let mss = self.mss; [INFO] [stderr] 694 | if self.cwnd < self.ssthresh { [INFO] [stderr] 695 | self.cwnd += 1; [INFO] [stderr] 696 | self.incr += mss; [INFO] [stderr] 697 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/kcp.rs:748:20 [INFO] [stderr] | [INFO] [stderr] 748 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 749 | | if timediff(self.current, self.ts_probe) >= 0 { [INFO] [stderr] 750 | | if self.probe_wait < KCP_PROBE_INIT { [INFO] [stderr] 751 | | self.probe_wait = KCP_PROBE_INIT; [INFO] [stderr] ... | [INFO] [stderr] 759 | | } [INFO] [stderr] 760 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 748 | } else if timediff(self.current, self.ts_probe) >= 0 { [INFO] [stderr] 749 | if self.probe_wait < KCP_PROBE_INIT { [INFO] [stderr] 750 | self.probe_wait = KCP_PROBE_INIT; [INFO] [stderr] 751 | } [INFO] [stderr] 752 | self.probe_wait += self.probe_wait / 2; [INFO] [stderr] 753 | if self.probe_wait > KCP_PROBE_LIMIT { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::BufMut::put_u32': use put_u32_be or put_u32_le [INFO] [stderr] --> src/kcp.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | buf.put_u32::(self.conv); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::BufMut::put_u16': use put_u16_be or put_u16_le [INFO] [stderr] --> src/kcp.rs:104:13 [INFO] [stderr] | [INFO] [stderr] 104 | buf.put_u16::(self.wnd); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::BufMut::put_u32': use put_u32_be or put_u32_le [INFO] [stderr] --> src/kcp.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | buf.put_u32::(self.ts); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::BufMut::put_u32': use put_u32_be or put_u32_le [INFO] [stderr] --> src/kcp.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | buf.put_u32::(self.sn); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::BufMut::put_u32': use put_u32_be or put_u32_le [INFO] [stderr] --> src/kcp.rs:107:13 [INFO] [stderr] | [INFO] [stderr] 107 | buf.put_u32::(self.una); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::BufMut::put_u32': use put_u32_be or put_u32_le [INFO] [stderr] --> src/kcp.rs:108:13 [INFO] [stderr] | [INFO] [stderr] 108 | buf.put_u32::(self.data.len() as u32); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::Buf::get_u32': use get_u32_be or get_u32_le [INFO] [stderr] --> src/kcp.rs:583:28 [INFO] [stderr] | [INFO] [stderr] 583 | let conv = buf.get_u32::(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::Buf::get_u16': use get_u16_be or get_u16_le [INFO] [stderr] --> src/kcp.rs:599:27 [INFO] [stderr] | [INFO] [stderr] 599 | let wnd = buf.get_u16::(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::Buf::get_u32': use get_u32_be or get_u32_le [INFO] [stderr] --> src/kcp.rs:600:26 [INFO] [stderr] | [INFO] [stderr] 600 | let ts = buf.get_u32::(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::Buf::get_u32': use get_u32_be or get_u32_le [INFO] [stderr] --> src/kcp.rs:601:26 [INFO] [stderr] | [INFO] [stderr] 601 | let sn = buf.get_u32::(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::Buf::get_u32': use get_u32_be or get_u32_le [INFO] [stderr] --> src/kcp.rs:602:27 [INFO] [stderr] | [INFO] [stderr] 602 | let una = buf.get_u32::(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::Buf::get_u32': use get_u32_be or get_u32_le [INFO] [stderr] --> src/kcp.rs:603:27 [INFO] [stderr] | [INFO] [stderr] 603 | let len = buf.get_u32::() as usize; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/kcp.rs:38:30 [INFO] [stderr] | [INFO] [stderr] 38 | const KCP_PROBE_LIMIT: u32 = 120000; [INFO] [stderr] | ^^^^^^ help: consider: `120_000` [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 if statement can be collapsed [INFO] [stderr] --> src/kcp.rs:692:9 [INFO] [stderr] | [INFO] [stderr] 692 | / if self.snd_una > old_una { [INFO] [stderr] 693 | | if self.cwnd < self.rmt_wnd { [INFO] [stderr] 694 | | let mss = self.mss; [INFO] [stderr] 695 | | if self.cwnd < self.ssthresh { [INFO] [stderr] ... | [INFO] [stderr] 711 | | } [INFO] [stderr] 712 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 692 | if self.snd_una > old_una && self.cwnd < self.rmt_wnd { [INFO] [stderr] 693 | let mss = self.mss; [INFO] [stderr] 694 | if self.cwnd < self.ssthresh { [INFO] [stderr] 695 | self.cwnd += 1; [INFO] [stderr] 696 | self.incr += mss; [INFO] [stderr] 697 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/kcp.rs:748:20 [INFO] [stderr] | [INFO] [stderr] 748 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 749 | | if timediff(self.current, self.ts_probe) >= 0 { [INFO] [stderr] 750 | | if self.probe_wait < KCP_PROBE_INIT { [INFO] [stderr] 751 | | self.probe_wait = KCP_PROBE_INIT; [INFO] [stderr] ... | [INFO] [stderr] 759 | | } [INFO] [stderr] 760 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 748 | } else if timediff(self.current, self.ts_probe) >= 0 { [INFO] [stderr] 749 | if self.probe_wait < KCP_PROBE_INIT { [INFO] [stderr] 750 | self.probe_wait = KCP_PROBE_INIT; [INFO] [stderr] 751 | } [INFO] [stderr] 752 | self.probe_wait += self.probe_wait / 2; [INFO] [stderr] 753 | if self.probe_wait > KCP_PROBE_LIMIT { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/kcp.rs:504:40 [INFO] [stderr] | [INFO] [stderr] 504 | if timediff(sn, self.rcv_nxt + self.rcv_wnd as u32) >= 0 || timediff(sn, self.rcv_nxt) < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.rcv_wnd)` [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: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/kcp.rs:567:5 [INFO] [stderr] | [INFO] [stderr] 567 | / pub fn input(&mut self, buf: &[u8]) -> KcpResult { [INFO] [stderr] 568 | | let input_size = buf.len(); [INFO] [stderr] 569 | | [INFO] [stderr] 570 | | trace!("[RI] {} bytes", buf.len()); [INFO] [stderr] ... | [INFO] [stderr] 714 | | Ok(buf.position() as usize) [INFO] [stderr] 715 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/kcp.rs:646:52 [INFO] [stderr] | [INFO] [stderr] 646 | if timediff(sn, self.rcv_nxt + self.rcv_wnd as u32) < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.rcv_wnd)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/kcp.rs:703:24 [INFO] [stderr] | [INFO] [stderr] 703 | if (self.cwnd + 1) as u32 * mss <= self.incr { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.cwnd + 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/kcp.rs:709:33 [INFO] [stderr] | [INFO] [stderr] 709 | self.incr = self.rmt_wnd as u32 * mss; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.rmt_wnd)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::BufMut::put_u32': use put_u32_be or put_u32_le [INFO] [stderr] --> src/kcp.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | buf.put_u32::(self.conv); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::BufMut::put_u16': use put_u16_be or put_u16_le [INFO] [stderr] --> src/kcp.rs:104:13 [INFO] [stderr] | [INFO] [stderr] 104 | buf.put_u16::(self.wnd); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::BufMut::put_u32': use put_u32_be or put_u32_le [INFO] [stderr] --> src/kcp.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | buf.put_u32::(self.ts); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::BufMut::put_u32': use put_u32_be or put_u32_le [INFO] [stderr] --> src/kcp.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | buf.put_u32::(self.sn); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::BufMut::put_u32': use put_u32_be or put_u32_le [INFO] [stderr] --> src/kcp.rs:107:13 [INFO] [stderr] | [INFO] [stderr] 107 | buf.put_u32::(self.una); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::BufMut::put_u32': use put_u32_be or put_u32_le [INFO] [stderr] --> src/kcp.rs:108:13 [INFO] [stderr] | [INFO] [stderr] 108 | buf.put_u32::(self.data.len() as u32); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/kcp.rs:835:53 [INFO] [stderr] | [INFO] [stderr] 835 | while timediff(self.snd_nxt, self.snd_una + cwnd as u32) < 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/kcp.rs:928:25 [INFO] [stderr] | [INFO] [stderr] 928 | self.incr = self.cwnd as u32 * self.mss; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::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: use of deprecated item 'bytes::Buf::get_u32': use get_u32_be or get_u32_le [INFO] [stderr] --> src/kcp.rs:583:28 [INFO] [stderr] | [INFO] [stderr] 583 | let conv = buf.get_u32::(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::Buf::get_u16': use get_u16_be or get_u16_le [INFO] [stderr] --> src/kcp.rs:599:27 [INFO] [stderr] | [INFO] [stderr] 599 | let wnd = buf.get_u16::(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::Buf::get_u32': use get_u32_be or get_u32_le [INFO] [stderr] --> src/kcp.rs:600:26 [INFO] [stderr] | [INFO] [stderr] 600 | let ts = buf.get_u32::(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::Buf::get_u32': use get_u32_be or get_u32_le [INFO] [stderr] --> src/kcp.rs:601:26 [INFO] [stderr] | [INFO] [stderr] 601 | let sn = buf.get_u32::(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::Buf::get_u32': use get_u32_be or get_u32_le [INFO] [stderr] --> src/kcp.rs:602:27 [INFO] [stderr] | [INFO] [stderr] 602 | let una = buf.get_u32::(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::Buf::get_u32': use get_u32_be or get_u32_le [INFO] [stderr] --> src/kcp.rs:603:27 [INFO] [stderr] | [INFO] [stderr] 603 | let len = buf.get_u32::() as usize; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> tests/kcp.rs:28:23 [INFO] [stderr] | [INFO] [stderr] 28 | DelayPacket { buf: buf, ts: 0 } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `buf` [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] --> tests/kcp.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | nmax: nmax, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `nmax` [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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/kcp.rs:504:40 [INFO] [stderr] | [INFO] [stderr] 504 | if timediff(sn, self.rcv_nxt + self.rcv_wnd as u32) >= 0 || timediff(sn, self.rcv_nxt) < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.rcv_wnd)` [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: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/kcp.rs:567:5 [INFO] [stderr] | [INFO] [stderr] 567 | / pub fn input(&mut self, buf: &[u8]) -> KcpResult { [INFO] [stderr] 568 | | let input_size = buf.len(); [INFO] [stderr] 569 | | [INFO] [stderr] 570 | | trace!("[RI] {} bytes", buf.len()); [INFO] [stderr] ... | [INFO] [stderr] 714 | | Ok(buf.position() as usize) [INFO] [stderr] 715 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/kcp.rs:646:52 [INFO] [stderr] | [INFO] [stderr] 646 | if timediff(sn, self.rcv_nxt + self.rcv_wnd as u32) < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.rcv_wnd)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/kcp.rs:703:24 [INFO] [stderr] | [INFO] [stderr] 703 | if (self.cwnd + 1) as u32 * mss <= self.incr { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.cwnd + 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/kcp.rs:709:33 [INFO] [stderr] | [INFO] [stderr] 709 | self.incr = self.rmt_wnd as u32 * mss; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.rmt_wnd)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/kcp.rs:835:53 [INFO] [stderr] | [INFO] [stderr] 835 | while timediff(self.snd_nxt, self.snd_una + cwnd as u32) < 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/kcp.rs:928:25 [INFO] [stderr] | [INFO] [stderr] 928 | self.incr = self.cwnd as u32 * self.mss; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::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: long literal lacking separators [INFO] [stderr] --> tests/kcp.rs:237:29 [INFO] [stderr] | [INFO] [stderr] 237 | let mut kcp1 = Kcp::new(0x11223344, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1122_3344` [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] --> tests/kcp.rs:242:29 [INFO] [stderr] | [INFO] [stderr] 242 | let mut kcp2 = Kcp::new(0x11223344, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1122_3344` [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: use of deprecated item 'bytes::BufMut::put_u32': use put_u32_be or put_u32_le [INFO] [stderr] --> tests/kcp.rs:292:17 [INFO] [stderr] | [INFO] [stderr] 292 | buf.put_u32::(index); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::BufMut::put_u32': use put_u32_be or put_u32_le [INFO] [stderr] --> tests/kcp.rs:294:17 [INFO] [stderr] | [INFO] [stderr] 294 | buf.put_u32::(current); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::Buf::get_u32': use get_u32_be or get_u32_le [INFO] [stderr] --> tests/kcp.rs:344:34 [INFO] [stderr] | [INFO] [stderr] 344 | let sn = cur.get_u32::(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'bytes::Buf::get_u32': use get_u32_be or get_u32_le [INFO] [stderr] --> tests/kcp.rs:345:34 [INFO] [stderr] | [INFO] [stderr] 345 | let ts = cur.get_u32::(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> tests/kcp.rs:85:28 [INFO] [stderr] | [INFO] [stderr] 85 | (timespec.sec * 1000 + timespec.nsec as i64 / 1000 / 1000) as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(timespec.nsec)` [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] Finished dev [unoptimized + debuginfo] target(s) in 3.22s [INFO] running `"docker" "inspect" "63db28efb5918cf032fe1be75a4e35a2a20780236a2ef59139247be79158f36c"` [INFO] running `"docker" "rm" "-f" "63db28efb5918cf032fe1be75a4e35a2a20780236a2ef59139247be79158f36c"` [INFO] [stdout] 63db28efb5918cf032fe1be75a4e35a2a20780236a2ef59139247be79158f36c