[INFO] crate cobalt 0.22.0 is already in cache [INFO] extracting crate cobalt 0.22.0 into work/ex/clippy-test-run/sources/stable/reg/cobalt/0.22.0 [INFO] extracting crate cobalt 0.22.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/cobalt/0.22.0 [INFO] validating manifest of cobalt-0.22.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 cobalt-0.22.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 cobalt-0.22.0 [INFO] finished frobbing cobalt-0.22.0 [INFO] frobbed toml for cobalt-0.22.0 written to work/ex/clippy-test-run/sources/stable/reg/cobalt/0.22.0/Cargo.toml [INFO] started frobbing cobalt-0.22.0 [INFO] finished frobbing cobalt-0.22.0 [INFO] frobbed toml for cobalt-0.22.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/cobalt/0.22.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 cobalt-0.22.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/cobalt/0.22.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] e715da392251b40d3603785a6b74be029bbc9768b1384505a4a9bcfe5e00777e [INFO] running `"docker" "start" "-a" "e715da392251b40d3603785a6b74be029bbc9768b1384505a4a9bcfe5e00777e"` [INFO] [stderr] Checking cobalt v0.22.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shared/connection.rs:230:13 [INFO] [stderr] | [INFO] [stderr] 230 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/shared/connection.rs:247:13 [INFO] [stderr] | [INFO] [stderr] 247 | rate_limiter: rate_limiter, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rate_limiter` [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/shared/connection.rs:248:13 [INFO] [stderr] | [INFO] [stderr] 248 | packet_modifier: packet_modifier, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `packet_modifier` [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/shared/message_queue.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/shared/message_queue.rs:164:13 [INFO] [stderr] | [INFO] [stderr] 164 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/shared/message_queue.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | data: data [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/shared/message_queue.rs:381:17 [INFO] [stderr] | [INFO] [stderr] 381 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/shared/message_queue.rs:383:17 [INFO] [stderr] | [INFO] [stderr] 383 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/shared/udp_socket.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | socket: socket, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `socket` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shared/udp_socket.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | buffer: buffer [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [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/shared/stats.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/client.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/server.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/shared/connection.rs:230:13 [INFO] [stderr] | [INFO] [stderr] 230 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/shared/connection.rs:247:13 [INFO] [stderr] | [INFO] [stderr] 247 | rate_limiter: rate_limiter, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rate_limiter` [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/shared/connection.rs:248:13 [INFO] [stderr] | [INFO] [stderr] 248 | packet_modifier: packet_modifier, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `packet_modifier` [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/shared/message_queue.rs:130:13 [INFO] [stderr] | [INFO] [stderr] 130 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/shared/message_queue.rs:164:13 [INFO] [stderr] | [INFO] [stderr] 164 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/shared/message_queue.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | data: data [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/shared/message_queue.rs:381:17 [INFO] [stderr] | [INFO] [stderr] 381 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/shared/message_queue.rs:383:17 [INFO] [stderr] | [INFO] [stderr] 383 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/shared/udp_socket.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | socket: socket, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `socket` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shared/udp_socket.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | buffer: buffer [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [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/shared/stats.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/client.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/server.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/shared/binary_rate_limiter.rs:178:53 [INFO] [stderr] | [INFO] [stderr] 178 | d.as_secs() * 1000 + (d.subsec_nanos() as u64 / 1000000) [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_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: unnecessary parentheses around function argument [INFO] [stderr] --> src/shared/connection.rs:425:25 [INFO] [stderr] | [INFO] [stderr] 425 | (cmp::max(self.last_receive_time - ack.time, tick_delay) - tick_delay) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/shared/connection.rs:777:65 [INFO] [stderr] | [INFO] [stderr] 777 | let b = (b.as_secs() as f32) * 1000.0 + (b.subsec_nanos() / 1000000) as f32; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/shared/ticker.rs:37:25 [INFO] [stderr] | [INFO] [stderr] 37 | tick_delay: 1000000000 / config.send_rate [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_000_000_000` [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/shared/ticker.rs:44:27 [INFO] [stderr] | [INFO] [stderr] 44 | self.tick_delay = 1000000000 / config.send_rate [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_000_000_000` [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/shared/ticker.rs:97:26 [INFO] [stderr] | [INFO] [stderr] 97 | d.as_secs() * 1000 * 1000000 + d.subsec_nanos() as u64 [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/shared/binary_rate_limiter.rs:178:53 [INFO] [stderr] | [INFO] [stderr] 178 | d.as_secs() * 1000 + (d.subsec_nanos() as u64 / 1000000) [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_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: unnecessary parentheses around function argument [INFO] [stderr] --> src/shared/connection.rs:425:25 [INFO] [stderr] | [INFO] [stderr] 425 | (cmp::max(self.last_receive_time - ack.time, tick_delay) - tick_delay) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/shared/connection.rs:777:65 [INFO] [stderr] | [INFO] [stderr] 777 | let b = (b.as_secs() as f32) * 1000.0 + (b.subsec_nanos() / 1000000) as f32; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/shared/ticker.rs:37:25 [INFO] [stderr] | [INFO] [stderr] 37 | tick_delay: 1000000000 / config.send_rate [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_000_000_000` [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/shared/ticker.rs:44:27 [INFO] [stderr] | [INFO] [stderr] 44 | self.tick_delay = 1000000000 / config.send_rate [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_000_000_000` [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/shared/ticker.rs:97:26 [INFO] [stderr] | [INFO] [stderr] 97 | d.as_secs() * 1000 * 1000000 + d.subsec_nanos() as u64 [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/test/client.rs:29:53 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] ... [INFO] [stderr] 145 | assert_millis_since!(start, 0, 16); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/test/client.rs:29:53 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] ... [INFO] [stderr] 630 | assert_millis_since!(start, 167, 33); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/test/client.rs:29:53 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] ... [INFO] [stderr] 648 | assert_millis_since!(start, 330, 16); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/test/client.rs:29:53 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] ... [INFO] [stderr] 658 | assert_millis_since!(start, 330, 16); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/test/client.rs:29:53 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] ... [INFO] [stderr] 668 | assert_millis_since!(start, 330, 16); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/test/connection.rs:84:26 [INFO] [stderr] | [INFO] [stderr] 84 | ), Some(ConnectionID(16909060))); [INFO] [stderr] | ^^^^^^^^ help: consider: `16_909_060` [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/test/server.rs:29:53 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] ... [INFO] [stderr] 142 | assert_millis_since!(start, 0, 16); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/test/server.rs:164:46 [INFO] [stderr] | [INFO] [stderr] 164 | ServerEvent::Connection(ConnectionID(151521030)) [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:167:96 [INFO] [stderr] | [INFO] [stderr] 167 | assert_eq!(server.connections().keys().collect::>(), vec![&ConnectionID(151521030)]); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:181:46 [INFO] [stderr] | [INFO] [stderr] 181 | ServerEvent::Connection(ConnectionID(67108865)) [INFO] [stderr] | ^^^^^^^^ help: consider: `67_108_865` [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/test/server.rs:188:27 [INFO] [stderr] | [INFO] [stderr] 188 | &ConnectionID(67108865), [INFO] [stderr] | ^^^^^^^^ help: consider: `67_108_865` [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/test/server.rs:189:27 [INFO] [stderr] | [INFO] [stderr] 189 | &ConnectionID(151521030) [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:211:45 [INFO] [stderr] | [INFO] [stderr] 211 | assert!(server.connection(&ConnectionID(151521030)).is_err()); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:212:45 [INFO] [stderr] | [INFO] [stderr] 212 | assert!(server.connection(&ConnectionID(67108865)).is_err()); [INFO] [stderr] | ^^^^^^^^ help: consider: `67_108_865` [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/test/server.rs:234:46 [INFO] [stderr] | [INFO] [stderr] 234 | ServerEvent::Connection(ConnectionID(151521030)) [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:358:46 [INFO] [stderr] | [INFO] [stderr] 358 | ServerEvent::Connection(ConnectionID(151521030)) [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:364:37 [INFO] [stderr] | [INFO] [stderr] 364 | server.connection(&ConnectionID(151521030)).unwrap().send(MessageKind::Instant, b"Foo".to_vec()); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:365:37 [INFO] [stderr] | [INFO] [stderr] 365 | server.connection(&ConnectionID(151521030)).unwrap().send(MessageKind::Instant, b"Bar".to_vec()); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:368:96 [INFO] [stderr] | [INFO] [stderr] 368 | assert_eq!(server.connections().keys().collect::>(), vec![&ConnectionID(151521030)]); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:408:37 [INFO] [stderr] | [INFO] [stderr] 408 | server.connection(&ConnectionID(151521030)).unwrap().send(MessageKind::Instant, b"Baz".to_vec()); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:411:96 [INFO] [stderr] | [INFO] [stderr] 411 | assert_eq!(server.connections().keys().collect::>(), vec![&ConnectionID(151521030)]); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:483:46 [INFO] [stderr] | [INFO] [stderr] 483 | ServerEvent::Connection(ConnectionID(151521030)), [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:484:43 [INFO] [stderr] | [INFO] [stderr] 484 | ServerEvent::Message(ConnectionID(151521030), b"Baz".to_vec()), [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:485:46 [INFO] [stderr] | [INFO] [stderr] 485 | ServerEvent::Connection(ConnectionID(84214017)), [INFO] [stderr] | ^^^^^^^^ help: consider: `84_214_017` [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/test/server.rs:486:43 [INFO] [stderr] | [INFO] [stderr] 486 | ServerEvent::Message(ConnectionID(84214017), b"Foo".to_vec()) [INFO] [stderr] | ^^^^^^^^ help: consider: `84_214_017` [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/test/server.rs:532:43 [INFO] [stderr] | [INFO] [stderr] 532 | ServerEvent::Message(ConnectionID(151521030), b"Foo".to_vec()), [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:533:43 [INFO] [stderr] | [INFO] [stderr] 533 | ServerEvent::Message(ConnectionID(84214017), b"Baz".to_vec()) [INFO] [stderr] | ^^^^^^^^ help: consider: `84_214_017` [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/test/server.rs:582:46 [INFO] [stderr] | [INFO] [stderr] 582 | ServerEvent::Connection(ConnectionID(151521030)), [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:583:46 [INFO] [stderr] | [INFO] [stderr] 583 | ServerEvent::Connection(ConnectionID(84214017)), [INFO] [stderr] | ^^^^^^^^ help: consider: `84_214_017` [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/test/server.rs:598:52 [INFO] [stderr] | [INFO] [stderr] 598 | ServerEvent::ConnectionClosed(ConnectionID(151521030), true) [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:603:45 [INFO] [stderr] | [INFO] [stderr] 603 | assert!(server.connection(&ConnectionID(151521030)).is_ok()); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:607:45 [INFO] [stderr] | [INFO] [stderr] 607 | assert!(server.connection(&ConnectionID(151521030)).is_err()); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:610:37 [INFO] [stderr] | [INFO] [stderr] 610 | server.connection(&ConnectionID(84214017)).unwrap().close(); [INFO] [stderr] | ^^^^^^^^ help: consider: `84_214_017` [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/test/server.rs:618:52 [INFO] [stderr] | [INFO] [stderr] 618 | ServerEvent::ConnectionClosed(ConnectionID(84214017), false) [INFO] [stderr] | ^^^^^^^^ help: consider: `84_214_017` [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/test/server.rs:644:46 [INFO] [stderr] | [INFO] [stderr] 644 | ServerEvent::Connection(ConnectionID(151521030)) [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:647:45 [INFO] [stderr] | [INFO] [stderr] 647 | assert!(server.connection(&ConnectionID(151521030)).is_ok()); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:648:96 [INFO] [stderr] | [INFO] [stderr] 648 | assert_eq!(server.connections().keys().collect::>(), vec![&ConnectionID(151521030)]); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:656:70 [INFO] [stderr] | [INFO] [stderr] 656 | assert_eq!(events, vec![ServerEvent::ConnectionLost(ConnectionID(151521030), true)]); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:657:45 [INFO] [stderr] | [INFO] [stderr] 657 | assert!(server.connection(&ConnectionID(151521030)).is_ok()); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:663:45 [INFO] [stderr] | [INFO] [stderr] 663 | assert!(server.connection(&ConnectionID(151521030)).is_err()); [INFO] [stderr] | ^^^^^^^^^ help: consider: `151_521_030` [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/test/server.rs:29:53 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] ... [INFO] [stderr] 683 | assert_millis_since!(start, 167, 33); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/test/server.rs:29:53 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] ... [INFO] [stderr] 701 | assert_millis_since!(start, 330, 16); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/test/server.rs:29:53 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] ... [INFO] [stderr] 711 | assert_millis_since!(start, 330, 16); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/test/server.rs:29:53 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] ... [INFO] [stderr] 721 | assert_millis_since!(start, 330, 16); [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#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/shared/binary_rate_limiter.rs:178:27 [INFO] [stderr] | [INFO] [stderr] 178 | d.as_secs() * 1000 + (d.subsec_nanos() as u64 / 1000000) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(d.subsec_nanos())` [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: needlessly taken reference of both operands [INFO] [stderr] --> src/shared/connection.rs:282:33 [INFO] [stderr] | [INFO] [stderr] 282 | if packet.len() >= 8 && &packet[0..4] == &config.protocol_header { [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] 282 | if packet.len() >= 8 && packet[0..4] == config.protocol_header { [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:284:17 [INFO] [stderr] | [INFO] [stderr] 284 | (packet[4] as u32) << 24 | (packet[5] as u32) << 16 | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[4])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:284:44 [INFO] [stderr] | [INFO] [stderr] 284 | (packet[4] as u32) << 24 | (packet[5] as u32) << 16 | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[5])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:285:17 [INFO] [stderr] | [INFO] [stderr] 285 | (packet[6] as u32) << 8 | packet[7] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[6])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:285:45 [INFO] [stderr] | [INFO] [stderr] 285 | (packet[6] as u32) << 8 | packet[7] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[7])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:397:34 [INFO] [stderr] | [INFO] [stderr] 397 | self.remote_seq_number = packet[8] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[8])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:400:30 [INFO] [stderr] | [INFO] [stderr] 400 | let ack_seq_number = packet[9] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[9])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:403:24 [INFO] [stderr] | [INFO] [stderr] 403 | let bitfield = (packet[10] as u32) << 24 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[10])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:404:24 [INFO] [stderr] | [INFO] [stderr] 404 | | (packet[11] as u32) << 16 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[11])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:405:24 [INFO] [stderr] | [INFO] [stderr] 405 | | (packet[12] as u32) << 8 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[12])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:406:25 [INFO] [stderr] | [INFO] [stderr] 406 | | packet[13] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[13])` [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: needlessly taken reference of both operands [INFO] [stderr] --> src/shared/connection.rs:656:9 [INFO] [stderr] | [INFO] [stderr] 656 | &packet[0..4] == &self.config.protocol_header && match self.state { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 656 | packet[0..4] == self.config.protocol_header && match self.state { [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/shared/connection.rs:682:20 [INFO] [stderr] | [INFO] [stderr] 682 | if &packet[8..14] == &CLOSURE_PACKET_DATA { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 682 | if packet[8..14] == CLOSURE_PACKET_DATA { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:691:25 [INFO] [stderr] | [INFO] [stderr] 691 | packet[8] as u32, self.remote_seq_number [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[8])` [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/shared/connection.rs:777:45 [INFO] [stderr] | [INFO] [stderr] 777 | let b = (b.as_secs() as f32) * 1000.0 + (b.subsec_nanos() / 1000000) as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.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 u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/shared/message_queue.rs:363:26 [INFO] [stderr] | [INFO] [stderr] 363 | let order_high = ((packet[index] & 0xF0) as u16) << 4; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(packet[index] & 0xF0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/shared/message_queue.rs:364:25 [INFO] [stderr] | [INFO] [stderr] 364 | let order_low = packet[index + 1] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(packet[index + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/shared/message_queue.rs:367:25 [INFO] [stderr] | [INFO] [stderr] 367 | let size_high = (packet[index + 2] as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(packet[index + 2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/shared/message_queue.rs:368:32 [INFO] [stderr] | [INFO] [stderr] 368 | let size = size_high | packet[index + 3] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(packet[index + 3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/shared/stats.rs:70:22 [INFO] [stderr] | [INFO] [stderr] 70 | buckets: (0..config.send_rate + 1).map(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=config.send_rate)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/shared/stats.rs:81:24 [INFO] [stderr] | [INFO] [stderr] 81 | self.buckets = (0..config.send_rate + 1).map(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=config.send_rate)` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/shared/ticker.rs:97:36 [INFO] [stderr] | [INFO] [stderr] 97 | d.as_secs() * 1000 * 1000000 + d.subsec_nanos() as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(d.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/server.rs:151:38 [INFO] [stderr] | [INFO] [stderr] 151 | pub fn connection(&mut self, id: &ConnectionID) -> Result<&mut Connection, Error> { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider passing by value instead: `ConnectionID` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/server.rs:349:9 [INFO] [stderr] | [INFO] [stderr] 349 | / if self.connections.contains_key(&id) { [INFO] [stderr] 350 | | [INFO] [stderr] 351 | | let connection = self.connections.get_mut(&id).unwrap(); [INFO] [stderr] 352 | | [INFO] [stderr] ... | [INFO] [stderr] 401 | | [INFO] [stderr] 402 | | } [INFO] [stderr] | |_________^ help: consider using: `self.connections.entry(id)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/server.rs:349:9 [INFO] [stderr] | [INFO] [stderr] 349 | / if self.connections.contains_key(&id) { [INFO] [stderr] 350 | | [INFO] [stderr] 351 | | let connection = self.connections.get_mut(&id).unwrap(); [INFO] [stderr] 352 | | [INFO] [stderr] ... | [INFO] [stderr] 401 | | [INFO] [stderr] 402 | | } [INFO] [stderr] | |_________^ help: consider using: `self.connections.entry(id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> examples/server.rs:67:26 [INFO] [stderr] | [INFO] [stderr] 67 | for (_, conn) in server.connections() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 67 | for conn in server.connections().values_mut() { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/shared/binary_rate_limiter.rs:178:27 [INFO] [stderr] | [INFO] [stderr] 178 | d.as_secs() * 1000 + (d.subsec_nanos() as u64 / 1000000) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(d.subsec_nanos())` [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: needlessly taken reference of both operands [INFO] [stderr] --> src/shared/connection.rs:282:33 [INFO] [stderr] | [INFO] [stderr] 282 | if packet.len() >= 8 && &packet[0..4] == &config.protocol_header { [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] 282 | if packet.len() >= 8 && packet[0..4] == config.protocol_header { [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:284:17 [INFO] [stderr] | [INFO] [stderr] 284 | (packet[4] as u32) << 24 | (packet[5] as u32) << 16 | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[4])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:284:44 [INFO] [stderr] | [INFO] [stderr] 284 | (packet[4] as u32) << 24 | (packet[5] as u32) << 16 | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[5])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:285:17 [INFO] [stderr] | [INFO] [stderr] 285 | (packet[6] as u32) << 8 | packet[7] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[6])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:285:45 [INFO] [stderr] | [INFO] [stderr] 285 | (packet[6] as u32) << 8 | packet[7] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[7])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:397:34 [INFO] [stderr] | [INFO] [stderr] 397 | self.remote_seq_number = packet[8] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[8])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:400:30 [INFO] [stderr] | [INFO] [stderr] 400 | let ack_seq_number = packet[9] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[9])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:403:24 [INFO] [stderr] | [INFO] [stderr] 403 | let bitfield = (packet[10] as u32) << 24 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[10])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:404:24 [INFO] [stderr] | [INFO] [stderr] 404 | | (packet[11] as u32) << 16 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[11])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:405:24 [INFO] [stderr] | [INFO] [stderr] 405 | | (packet[12] as u32) << 8 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[12])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:406:25 [INFO] [stderr] | [INFO] [stderr] 406 | | packet[13] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[13])` [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: needlessly taken reference of both operands [INFO] [stderr] --> src/shared/connection.rs:656:9 [INFO] [stderr] | [INFO] [stderr] 656 | &packet[0..4] == &self.config.protocol_header && match self.state { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 656 | packet[0..4] == self.config.protocol_header && match self.state { [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/shared/connection.rs:682:20 [INFO] [stderr] | [INFO] [stderr] 682 | if &packet[8..14] == &CLOSURE_PACKET_DATA { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 682 | if packet[8..14] == CLOSURE_PACKET_DATA { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/shared/connection.rs:691:25 [INFO] [stderr] | [INFO] [stderr] 691 | packet[8] as u32, self.remote_seq_number [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(packet[8])` [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/shared/connection.rs:777:45 [INFO] [stderr] | [INFO] [stderr] 777 | let b = (b.as_secs() as f32) * 1000.0 + (b.subsec_nanos() / 1000000) as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.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 u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/shared/message_queue.rs:363:26 [INFO] [stderr] | [INFO] [stderr] 363 | let order_high = ((packet[index] & 0xF0) as u16) << 4; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(packet[index] & 0xF0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/shared/message_queue.rs:364:25 [INFO] [stderr] | [INFO] [stderr] 364 | let order_low = packet[index + 1] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(packet[index + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/shared/message_queue.rs:367:25 [INFO] [stderr] | [INFO] [stderr] 367 | let size_high = (packet[index + 2] as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(packet[index + 2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/shared/message_queue.rs:368:32 [INFO] [stderr] | [INFO] [stderr] 368 | let size = size_high | packet[index + 3] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(packet[index + 3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/shared/stats.rs:70:22 [INFO] [stderr] | [INFO] [stderr] 70 | buckets: (0..config.send_rate + 1).map(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=config.send_rate)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/shared/stats.rs:81:24 [INFO] [stderr] | [INFO] [stderr] 81 | self.buckets = (0..config.send_rate + 1).map(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=config.send_rate)` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/shared/ticker.rs:97:36 [INFO] [stderr] | [INFO] [stderr] 97 | d.as_secs() * 1000 * 1000000 + d.subsec_nanos() as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(d.subsec_nanos())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/server.rs:151:38 [INFO] [stderr] | [INFO] [stderr] 151 | pub fn connection(&mut self, id: &ConnectionID) -> Result<&mut Connection, Error> { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider passing by value instead: `ConnectionID` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/server.rs:349:9 [INFO] [stderr] | [INFO] [stderr] 349 | / if self.connections.contains_key(&id) { [INFO] [stderr] 350 | | [INFO] [stderr] 351 | | let connection = self.connections.get_mut(&id).unwrap(); [INFO] [stderr] 352 | | [INFO] [stderr] ... | [INFO] [stderr] 401 | | [INFO] [stderr] 402 | | } [INFO] [stderr] | |_________^ help: consider using: `self.connections.entry(id)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/server.rs:349:9 [INFO] [stderr] | [INFO] [stderr] 349 | / if self.connections.contains_key(&id) { [INFO] [stderr] 350 | | [INFO] [stderr] 351 | | let connection = self.connections.get_mut(&id).unwrap(); [INFO] [stderr] 352 | | [INFO] [stderr] ... | [INFO] [stderr] 401 | | [INFO] [stderr] 402 | | } [INFO] [stderr] | |_________^ help: consider using: `self.connections.entry(id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/test/client.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos() / 1000000)` [INFO] [stderr] ... [INFO] [stderr] 145 | assert_millis_since!(start, 0, 16); [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/test/client.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] ... [INFO] [stderr] 145 | assert_millis_since!(start, 0, 16); [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#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/test/client.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos() / 1000000)` [INFO] [stderr] ... [INFO] [stderr] 630 | assert_millis_since!(start, 167, 33); [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/test/client.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] ... [INFO] [stderr] 630 | assert_millis_since!(start, 167, 33); [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#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/test/client.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos() / 1000000)` [INFO] [stderr] ... [INFO] [stderr] 648 | assert_millis_since!(start, 330, 16); [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/test/client.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] ... [INFO] [stderr] 648 | assert_millis_since!(start, 330, 16); [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#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/test/client.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos() / 1000000)` [INFO] [stderr] ... [INFO] [stderr] 658 | assert_millis_since!(start, 330, 16); [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/test/client.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] ... [INFO] [stderr] 658 | assert_millis_since!(start, 330, 16); [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#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/test/client.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos() / 1000000)` [INFO] [stderr] ... [INFO] [stderr] 668 | assert_millis_since!(start, 330, 16); [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/test/client.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] ... [INFO] [stderr] 668 | assert_millis_since!(start, 330, 16); [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#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/test/server.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos() / 1000000)` [INFO] [stderr] ... [INFO] [stderr] 142 | assert_millis_since!(start, 0, 16); [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/test/server.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] ... [INFO] [stderr] 142 | assert_millis_since!(start, 0, 16); [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#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: avoid using `collect()` when not needed [INFO] [stderr] --> src/test/server.rs:210:40 [INFO] [stderr] | [INFO] [stderr] 210 | assert!(server.connections().keys().collect::>().is_empty()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `.next().is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_collect [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/test/server.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos() / 1000000)` [INFO] [stderr] ... [INFO] [stderr] 683 | assert_millis_since!(start, 167, 33); [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/test/server.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] ... [INFO] [stderr] 683 | assert_millis_since!(start, 167, 33); [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#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/test/server.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos() / 1000000)` [INFO] [stderr] ... [INFO] [stderr] 701 | assert_millis_since!(start, 330, 16); [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/test/server.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] ... [INFO] [stderr] 701 | assert_millis_since!(start, 330, 16); [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#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/test/server.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos() / 1000000)` [INFO] [stderr] ... [INFO] [stderr] 711 | assert_millis_since!(start, 330, 16); [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/test/server.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] ... [INFO] [stderr] 711 | assert_millis_since!(start, 330, 16); [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#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/test/server.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(duration.subsec_nanos() / 1000000)` [INFO] [stderr] ... [INFO] [stderr] 721 | assert_millis_since!(start, 330, 16); [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/test/server.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let millis = (duration.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `duration.subsec_millis()` [INFO] [stderr] ... [INFO] [stderr] 721 | assert_millis_since!(start, 330, 16); [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#duration_subsec [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.67s [INFO] running `"docker" "inspect" "e715da392251b40d3603785a6b74be029bbc9768b1384505a4a9bcfe5e00777e"` [INFO] running `"docker" "rm" "-f" "e715da392251b40d3603785a6b74be029bbc9768b1384505a4a9bcfe5e00777e"` [INFO] [stdout] e715da392251b40d3603785a6b74be029bbc9768b1384505a4a9bcfe5e00777e