[INFO] updating cached repository conwayste/netwayste [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/conwayste/netwayste [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/conwayste/netwayste" "work/ex/clippy-test-run/sources/stable/gh/conwayste/netwayste"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/conwayste/netwayste'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/conwayste/netwayste" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/conwayste/netwayste"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/conwayste/netwayste'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] c4977ef718a8dc512f4cffe783618520fd0f1fbd [INFO] sha for GitHub repo conwayste/netwayste: c4977ef718a8dc512f4cffe783618520fd0f1fbd [INFO] validating manifest of conwayste/netwayste 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 conwayste/netwayste 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 conwayste/netwayste [INFO] finished frobbing conwayste/netwayste [INFO] frobbed toml for conwayste/netwayste written to work/ex/clippy-test-run/sources/stable/gh/conwayste/netwayste/Cargo.toml [INFO] started frobbing conwayste/netwayste [INFO] finished frobbing conwayste/netwayste [INFO] frobbed toml for conwayste/netwayste written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/conwayste/netwayste/Cargo.toml [INFO] crate conwayste/netwayste has a lockfile. skipping [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 conwayste/netwayste against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/conwayste/netwayste:/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] 8fb268571d6563352a4ade485830879b61d95ce3f3af63a601e69c6ac3e19efc [INFO] running `"docker" "start" "-a" "8fb268571d6563352a4ade485830879b61d95ce3f3af63a601e69c6ac3e19efc"` [INFO] [stderr] Checking rand v0.4.2 [INFO] [stderr] Checking bit-set v0.5.0 [INFO] [stderr] Checking bincode v0.9.2 [INFO] [stderr] Checking tempfile v3.0.2 [INFO] [stderr] Checking rusty-fork v0.2.0 [INFO] [stderr] Checking proptest v0.7.2 [INFO] [stderr] Checking netwayste v0.1.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/client.rs:267:21 [INFO] [stderr] | [INFO] [stderr] 267 | action: action, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `action` [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: using `println!("")` [INFO] [stderr] --> src/client.rs:447:5 [INFO] [stderr] | [INFO] [stderr] 447 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/client.rs:267:21 [INFO] [stderr] | [INFO] [stderr] 267 | action: action, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `action` [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: using `println!("")` [INFO] [stderr] --> src/client.rs:447:5 [INFO] [stderr] | [INFO] [stderr] 447 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server.rs:225:13 [INFO] [stderr] | [INFO] [stderr] 225 | seq_num: seq_num, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `seq_num` [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/server.rs:237:13 [INFO] [stderr] | [INFO] [stderr] 237 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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:238:13 [INFO] [stderr] | [INFO] [stderr] 238 | player_ids: player_ids, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_ids` [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:681:13 [INFO] [stderr] | [INFO] [stderr] 681 | sequence: sequence, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sequence` [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:821:13 [INFO] [stderr] | [INFO] [stderr] 821 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server.rs:822:13 [INFO] [stderr] | [INFO] [stderr] 822 | name: name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `name` [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:1901:17 [INFO] [stderr] | [INFO] [stderr] 1901 | cookie: cookie, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `cookie` [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:1923:17 [INFO] [stderr] | [INFO] [stderr] 1923 | cookie: cookie, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `cookie` [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:225:13 [INFO] [stderr] | [INFO] [stderr] 225 | seq_num: seq_num, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `seq_num` [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/server.rs:237:13 [INFO] [stderr] | [INFO] [stderr] 237 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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:238:13 [INFO] [stderr] | [INFO] [stderr] 238 | player_ids: player_ids, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_ids` [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:681:13 [INFO] [stderr] | [INFO] [stderr] 681 | sequence: sequence, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sequence` [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:821:13 [INFO] [stderr] | [INFO] [stderr] 821 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server.rs:822:13 [INFO] [stderr] | [INFO] [stderr] 822 | name: name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `name` [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:1901:17 [INFO] [stderr] | [INFO] [stderr] 1901 | cookie: cookie, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `cookie` [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:1923:17 [INFO] [stderr] | [INFO] [stderr] 1923 | cookie: cookie, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `cookie` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/net.rs:38:21 [INFO] [stderr] | [INFO] [stderr] 38 | pub const VERSION: &'static str = env!("CARGO_PKG_VERSION"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:228:43 [INFO] [stderr] | [INFO] [stderr] 228 | if let Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } = self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:228:60 [INFO] [stderr] | [INFO] [stderr] 228 | if let Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } = self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:228:71 [INFO] [stderr] | [INFO] [stderr] 228 | if let Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } = self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:230:51 [INFO] [stderr] | [INFO] [stderr] 230 | } else if let Packet::Response{ sequence, request_ack: _, code: _ } = self { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:230:67 [INFO] [stderr] | [INFO] [stderr] 230 | } else if let Packet::Response{ sequence, request_ack: _, code: _ } = self { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Response { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:232:39 [INFO] [stderr] | [INFO] [stderr] 232 | } else if let Packet::Update{ chats: _, game_updates: _, universe_update } = self { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:232:49 [INFO] [stderr] | [INFO] [stderr] 232 | } else if let Packet::Update{ chats: _, game_updates: _, universe_update } = self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Update { universe_update, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:488:40 [INFO] [stderr] | [INFO] [stderr] 488 | Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:488:57 [INFO] [stderr] | [INFO] [stderr] 488 | Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:488:68 [INFO] [stderr] | [INFO] [stderr] 488 | Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:489:41 [INFO] [stderr] | [INFO] [stderr] 489 | Packet::Response{ sequence, request_ack: _, code: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:489:57 [INFO] [stderr] | [INFO] [stderr] 489 | Packet::Response{ sequence, request_ack: _, code: _ } => sequence, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Response { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/net.rs:622:24 [INFO] [stderr] | [INFO] [stderr] 622 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 623 | | if self.will_seq_cause_a_wrap(self.buffer_wrap_index, sequence, oldest_seq_num, newest_seq_num) { [INFO] [stderr] 624 | | // Sequence is far enough, and we haven't wrapped, so it arrived late. [INFO] [stderr] 625 | | // Push it to the front of the queue [INFO] [stderr] ... | [INFO] [stderr] 631 | | } [INFO] [stderr] 632 | | } [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] 622 | } else if self.will_seq_cause_a_wrap(self.buffer_wrap_index, sequence, oldest_seq_num, newest_seq_num) { [INFO] [stderr] 623 | // Sequence is far enough, and we haven't wrapped, so it arrived late. [INFO] [stderr] 624 | // Push it to the front of the queue [INFO] [stderr] 625 | insertion_index = Some(0); [INFO] [stderr] 626 | self.buffer_wrap_index = Some(1); [INFO] [stderr] 627 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/client.rs:170:35 [INFO] [stderr] | [INFO] [stderr] 170 | Packet::Update{chats, game_updates: _, universe_update: _} => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/client.rs:170:52 [INFO] [stderr] | [INFO] [stderr] 170 | Packet::Update{chats, game_updates: _, universe_update: _} => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Update { chats, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client.rs:427:9 [INFO] [stderr] | [INFO] [stderr] 427 | return action; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `action` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Variant name ends with the enum's name [INFO] [stderr] --> src/client.rs:439:5 [INFO] [stderr] | [INFO] [stderr] 439 | TickEvent, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: Variant name ends with the enum's name [INFO] [stderr] --> src/client.rs:440:5 [INFO] [stderr] | [INFO] [stderr] 440 | UserInputEvent(UserInput), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/net.rs:38:21 [INFO] [stderr] | [INFO] [stderr] 38 | pub const VERSION: &'static str = env!("CARGO_PKG_VERSION"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:228:43 [INFO] [stderr] | [INFO] [stderr] 228 | if let Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } = self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:228:60 [INFO] [stderr] | [INFO] [stderr] 228 | if let Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } = self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:228:71 [INFO] [stderr] | [INFO] [stderr] 228 | if let Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } = self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:230:51 [INFO] [stderr] | [INFO] [stderr] 230 | } else if let Packet::Response{ sequence, request_ack: _, code: _ } = self { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:230:67 [INFO] [stderr] | [INFO] [stderr] 230 | } else if let Packet::Response{ sequence, request_ack: _, code: _ } = self { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Response { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:232:39 [INFO] [stderr] | [INFO] [stderr] 232 | } else if let Packet::Update{ chats: _, game_updates: _, universe_update } = self { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:232:49 [INFO] [stderr] | [INFO] [stderr] 232 | } else if let Packet::Update{ chats: _, game_updates: _, universe_update } = self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Update { universe_update, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:488:40 [INFO] [stderr] | [INFO] [stderr] 488 | Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:488:57 [INFO] [stderr] | [INFO] [stderr] 488 | Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:488:68 [INFO] [stderr] | [INFO] [stderr] 488 | Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:489:41 [INFO] [stderr] | [INFO] [stderr] 489 | Packet::Response{ sequence, request_ack: _, code: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:489:57 [INFO] [stderr] | [INFO] [stderr] 489 | Packet::Response{ sequence, request_ack: _, code: _ } => sequence, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Response { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/net.rs:622:24 [INFO] [stderr] | [INFO] [stderr] 622 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 623 | | if self.will_seq_cause_a_wrap(self.buffer_wrap_index, sequence, oldest_seq_num, newest_seq_num) { [INFO] [stderr] 624 | | // Sequence is far enough, and we haven't wrapped, so it arrived late. [INFO] [stderr] 625 | | // Push it to the front of the queue [INFO] [stderr] ... | [INFO] [stderr] 631 | | } [INFO] [stderr] 632 | | } [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] 622 | } else if self.will_seq_cause_a_wrap(self.buffer_wrap_index, sequence, oldest_seq_num, newest_seq_num) { [INFO] [stderr] 623 | // Sequence is far enough, and we haven't wrapped, so it arrived late. [INFO] [stderr] 624 | // Push it to the front of the queue [INFO] [stderr] 625 | insertion_index = Some(0); [INFO] [stderr] 626 | self.buffer_wrap_index = Some(1); [INFO] [stderr] 627 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:876:34 [INFO] [stderr] | [INFO] [stderr] 876 | if let Packet::Request { sequence: _, response_ack: _, cookie: _, action } = pkt { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:876:47 [INFO] [stderr] | [INFO] [stderr] 876 | if let Packet::Request { sequence: _, response_ack: _, cookie: _, action } = pkt { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:876:64 [INFO] [stderr] | [INFO] [stderr] 876 | if let Packet::Request { sequence: _, response_ack: _, cookie: _, action } = pkt { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { action, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:923:44 [INFO] [stderr] | [INFO] [stderr] 923 | if let Packet::Request { sequence, response_ack: _, cookie: _, action:_ } = pkt { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:923:61 [INFO] [stderr] | [INFO] [stderr] 923 | if let Packet::Request { sequence, response_ack: _, cookie: _, action:_ } = pkt { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:923:72 [INFO] [stderr] | [INFO] [stderr] 923 | if let Packet::Request { sequence, response_ack: _, cookie: _, action:_ } = pkt { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:944:48 [INFO] [stderr] | [INFO] [stderr] 944 | if let Packet::Request { sequence, response_ack: _, cookie: _, action:_ } = pkt { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:944:65 [INFO] [stderr] | [INFO] [stderr] 944 | if let Packet::Request { sequence, response_ack: _, cookie: _, action:_ } = pkt { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:944:76 [INFO] [stderr] | [INFO] [stderr] 944 | if let Packet::Request { sequence, response_ack: _, cookie: _, action:_ } = pkt { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/client.rs:170:35 [INFO] [stderr] | [INFO] [stderr] 170 | Packet::Update{chats, game_updates: _, universe_update: _} => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/client.rs:170:52 [INFO] [stderr] | [INFO] [stderr] 170 | Packet::Update{chats, game_updates: _, universe_update: _} => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Update { chats, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client.rs:427:9 [INFO] [stderr] | [INFO] [stderr] 427 | return action; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `action` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Variant name ends with the enum's name [INFO] [stderr] --> src/client.rs:439:5 [INFO] [stderr] | [INFO] [stderr] 439 | TickEvent, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: Variant name ends with the enum's name [INFO] [stderr] --> src/client.rs:440:5 [INFO] [stderr] | [INFO] [stderr] 440 | UserInputEvent(UserInput), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/net.rs:38:21 [INFO] [stderr] | [INFO] [stderr] 38 | pub const VERSION: &'static str = env!("CARGO_PKG_VERSION"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:228:43 [INFO] [stderr] | [INFO] [stderr] 228 | if let Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } = self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:228:60 [INFO] [stderr] | [INFO] [stderr] 228 | if let Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } = self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:228:71 [INFO] [stderr] | [INFO] [stderr] 228 | if let Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } = self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:230:51 [INFO] [stderr] | [INFO] [stderr] 230 | } else if let Packet::Response{ sequence, request_ack: _, code: _ } = self { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:230:67 [INFO] [stderr] | [INFO] [stderr] 230 | } else if let Packet::Response{ sequence, request_ack: _, code: _ } = self { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Response { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:232:39 [INFO] [stderr] | [INFO] [stderr] 232 | } else if let Packet::Update{ chats: _, game_updates: _, universe_update } = self { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:232:49 [INFO] [stderr] | [INFO] [stderr] 232 | } else if let Packet::Update{ chats: _, game_updates: _, universe_update } = self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Update { universe_update, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:488:40 [INFO] [stderr] | [INFO] [stderr] 488 | Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:488:57 [INFO] [stderr] | [INFO] [stderr] 488 | Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:488:68 [INFO] [stderr] | [INFO] [stderr] 488 | Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:489:41 [INFO] [stderr] | [INFO] [stderr] 489 | Packet::Response{ sequence, request_ack: _, code: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:489:57 [INFO] [stderr] | [INFO] [stderr] 489 | Packet::Response{ sequence, request_ack: _, code: _ } => sequence, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Response { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/net.rs:622:24 [INFO] [stderr] | [INFO] [stderr] 622 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 623 | | if self.will_seq_cause_a_wrap(self.buffer_wrap_index, sequence, oldest_seq_num, newest_seq_num) { [INFO] [stderr] 624 | | // Sequence is far enough, and we haven't wrapped, so it arrived late. [INFO] [stderr] 625 | | // Push it to the front of the queue [INFO] [stderr] ... | [INFO] [stderr] 631 | | } [INFO] [stderr] 632 | | } [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] 622 | } else if self.will_seq_cause_a_wrap(self.buffer_wrap_index, sequence, oldest_seq_num, newest_seq_num) { [INFO] [stderr] 623 | // Sequence is far enough, and we haven't wrapped, so it arrived late. [INFO] [stderr] 624 | // Push it to the front of the queue [INFO] [stderr] 625 | insertion_index = Some(0); [INFO] [stderr] 626 | self.buffer_wrap_index = Some(1); [INFO] [stderr] 627 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/server.rs:203:29 [INFO] [stderr] | [INFO] [stderr] 203 | timestamp = timestamp & 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/server.rs:206:29 [INFO] [stderr] | [INFO] [stderr] 206 | rand_salt = rand_salt & 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:274:9 [INFO] [stderr] | [INFO] [stderr] 274 | return self.messages.front(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.messages.front()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:279:9 [INFO] [stderr] | [INFO] [stderr] 279 | return self.messages.back(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.messages.back()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:309:9 [INFO] [stderr] | [INFO] [stderr] 309 | return amount_to_consume; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `amount_to_consume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:373:9 [INFO] [stderr] | [INFO] [stderr] 373 | return ResponseCode::PlayerList(players); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::PlayerList(players)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:402:9 [INFO] [stderr] | [INFO] [stderr] 402 | return ResponseCode::OK; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::OK` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:437:13 [INFO] [stderr] | [INFO] [stderr] 437 | return ResponseCode::OK; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::OK` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:439:13 [INFO] [stderr] | [INFO] [stderr] 439 | return ResponseCode::BadRequest(Some(format!("room name already in use"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::BadRequest(Some(format!("room name already in use")))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:462:9 [INFO] [stderr] | [INFO] [stderr] 462 | return ResponseCode::BadRequest(Some(format!("no room named {:?}", room_name))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::BadRequest(Some(format!("no room named {:?}", room_name)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:484:9 [INFO] [stderr] | [INFO] [stderr] 484 | return ResponseCode::OK; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::OK` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:517:17 [INFO] [stderr] | [INFO] [stderr] 517 | return self.handle_disconnect(player_id); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.handle_disconnect(player_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:522:17 [INFO] [stderr] | [INFO] [stderr] 522 | return ResponseCode::OK; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::OK` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:525:17 [INFO] [stderr] | [INFO] [stderr] 525 | return self.list_players(player_id); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.list_players(player_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:528:17 [INFO] [stderr] | [INFO] [stderr] 528 | return self.handle_chat_message(player_id, msg); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.handle_chat_message(player_id, msg)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:531:17 [INFO] [stderr] | [INFO] [stderr] 531 | return self.list_rooms(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.list_rooms()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:534:17 [INFO] [stderr] | [INFO] [stderr] 534 | return self.create_new_room(Some(player_id), name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.create_new_room(Some(player_id), name)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:537:17 [INFO] [stderr] | [INFO] [stderr] 537 | return self.join_room(player_id, room_name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.join_room(player_id, room_name)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:540:17 [INFO] [stderr] | [INFO] [stderr] 540 | return self.leave_room(player_id); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.leave_room(player_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:543:17 [INFO] [stderr] | [INFO] [stderr] 543 | return ResponseCode::BadRequest( Some("already connected".to_owned()) ); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::BadRequest( Some("already connected".to_owned()) )` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:546:17 [INFO] [stderr] | [INFO] [stderr] 546 | return ResponseCode::BadRequest( Some("Invalid request".to_owned()) ); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::BadRequest( Some("Invalid request".to_owned()) )` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:548:55 [INFO] [stderr] | [INFO] [stderr] 548 | RequestAction::TestSequenceNumber(_) => { return ResponseCode::OldPacket; }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::OldPacket` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:563:9 [INFO] [stderr] | [INFO] [stderr] 563 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:577:17 [INFO] [stderr] | [INFO] [stderr] 577 | return Err(Box::new(io::Error::new(ErrorKind::InvalidData, "invalid packet - server-only"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Box::new(io::Error::new(ErrorKind::InvalidData, "invalid packet - server-only")))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/server.rs:641:56 [INFO] [stderr] | [INFO] [stderr] 641 | Packet::UpdateReply{cookie, last_chat_seq, last_game_update_seq: _, last_gen: _} => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/server.rs:641:81 [INFO] [stderr] | [INFO] [stderr] 641 | Packet::UpdateReply{cookie, last_chat_seq, last_game_update_seq: _, last_gen: _} => { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `UpdateReply { cookie, last_chat_seq, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/server.rs:677:13 [INFO] [stderr] | [INFO] [stderr] 677 | sequence [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/server.rs:672:28 [INFO] [stderr] | [INFO] [stderr] 672 | let sequence = match opt_player { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 673 | | Some(player) => player.increment_response_seq_num(), [INFO] [stderr] 674 | | None => 0 [INFO] [stderr] 675 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:698:13 [INFO] [stderr] | [INFO] [stderr] 698 | return response; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `response` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:706:13 [INFO] [stderr] | [INFO] [stderr] 706 | return response; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `response` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:801:9 [INFO] [stderr] | [INFO] [stderr] 801 | return Some(unsent_messages); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(unsent_messages)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/server.rs:979:13 [INFO] [stderr] | [INFO] [stderr] 979 | udp_sink [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/server.rs:978:28 [INFO] [stderr] | [INFO] [stderr] 978 | let udp_sink = udp_sink.send(outgoing_item).map_err(|_| ()); // this method flushes (if too slow, use send_all) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/net.rs:38:21 [INFO] [stderr] | [INFO] [stderr] 38 | pub const VERSION: &'static str = env!("CARGO_PKG_VERSION"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unused variable: `exit_tx` [INFO] [stderr] --> src/client.rs:231:13 [INFO] [stderr] | [INFO] [stderr] 231 | exit_tx: &mpsc::UnboundedSender<()>, [INFO] [stderr] | ^^^^^^^ help: consider using `_exit_tx` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:228:43 [INFO] [stderr] | [INFO] [stderr] 228 | if let Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } = self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:228:60 [INFO] [stderr] | [INFO] [stderr] 228 | if let Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } = self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:228:71 [INFO] [stderr] | [INFO] [stderr] 228 | if let Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } = self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:230:51 [INFO] [stderr] | [INFO] [stderr] 230 | } else if let Packet::Response{ sequence, request_ack: _, code: _ } = self { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:230:67 [INFO] [stderr] | [INFO] [stderr] 230 | } else if let Packet::Response{ sequence, request_ack: _, code: _ } = self { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Response { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:232:39 [INFO] [stderr] | [INFO] [stderr] 232 | } else if let Packet::Update{ chats: _, game_updates: _, universe_update } = self { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:232:49 [INFO] [stderr] | [INFO] [stderr] 232 | } else if let Packet::Update{ chats: _, game_updates: _, universe_update } = self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Update { universe_update, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:488:40 [INFO] [stderr] | [INFO] [stderr] 488 | Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:488:57 [INFO] [stderr] | [INFO] [stderr] 488 | Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:488:68 [INFO] [stderr] | [INFO] [stderr] 488 | Packet::Request{ sequence, response_ack: _, cookie: _, action: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:489:41 [INFO] [stderr] | [INFO] [stderr] 489 | Packet::Response{ sequence, request_ack: _, code: _ } => sequence, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:489:57 [INFO] [stderr] | [INFO] [stderr] 489 | Packet::Response{ sequence, request_ack: _, code: _ } => sequence, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Response { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/net.rs:622:24 [INFO] [stderr] | [INFO] [stderr] 622 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 623 | | if self.will_seq_cause_a_wrap(self.buffer_wrap_index, sequence, oldest_seq_num, newest_seq_num) { [INFO] [stderr] 624 | | // Sequence is far enough, and we haven't wrapped, so it arrived late. [INFO] [stderr] 625 | | // Push it to the front of the queue [INFO] [stderr] ... | [INFO] [stderr] 631 | | } [INFO] [stderr] 632 | | } [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] 622 | } else if self.will_seq_cause_a_wrap(self.buffer_wrap_index, sequence, oldest_seq_num, newest_seq_num) { [INFO] [stderr] 623 | // Sequence is far enough, and we haven't wrapped, so it arrived late. [INFO] [stderr] 624 | // Push it to the front of the queue [INFO] [stderr] 625 | insertion_index = Some(0); [INFO] [stderr] 626 | self.buffer_wrap_index = Some(1); [INFO] [stderr] 627 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:876:34 [INFO] [stderr] | [INFO] [stderr] 876 | if let Packet::Request { sequence: _, response_ack: _, cookie: _, action } = pkt { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:876:47 [INFO] [stderr] | [INFO] [stderr] 876 | if let Packet::Request { sequence: _, response_ack: _, cookie: _, action } = pkt { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:876:64 [INFO] [stderr] | [INFO] [stderr] 876 | if let Packet::Request { sequence: _, response_ack: _, cookie: _, action } = pkt { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { action, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:923:44 [INFO] [stderr] | [INFO] [stderr] 923 | if let Packet::Request { sequence, response_ack: _, cookie: _, action:_ } = pkt { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:923:61 [INFO] [stderr] | [INFO] [stderr] 923 | if let Packet::Request { sequence, response_ack: _, cookie: _, action:_ } = pkt { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:923:72 [INFO] [stderr] | [INFO] [stderr] 923 | if let Packet::Request { sequence, response_ack: _, cookie: _, action:_ } = pkt { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:944:48 [INFO] [stderr] | [INFO] [stderr] 944 | if let Packet::Request { sequence, response_ack: _, cookie: _, action:_ } = pkt { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:944:65 [INFO] [stderr] | [INFO] [stderr] 944 | if let Packet::Request { sequence, response_ack: _, cookie: _, action:_ } = pkt { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/net.rs:944:76 [INFO] [stderr] | [INFO] [stderr] 944 | if let Packet::Request { sequence, response_ack: _, cookie: _, action:_ } = pkt { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Request { sequence, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/server.rs:203:29 [INFO] [stderr] | [INFO] [stderr] 203 | timestamp = timestamp & 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/server.rs:206:29 [INFO] [stderr] | [INFO] [stderr] 206 | rand_salt = rand_salt & 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:274:9 [INFO] [stderr] | [INFO] [stderr] 274 | return self.messages.front(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.messages.front()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:279:9 [INFO] [stderr] | [INFO] [stderr] 279 | return self.messages.back(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.messages.back()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:309:9 [INFO] [stderr] | [INFO] [stderr] 309 | return amount_to_consume; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `amount_to_consume` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:373:9 [INFO] [stderr] | [INFO] [stderr] 373 | return ResponseCode::PlayerList(players); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::PlayerList(players)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:402:9 [INFO] [stderr] | [INFO] [stderr] 402 | return ResponseCode::OK; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::OK` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:437:13 [INFO] [stderr] | [INFO] [stderr] 437 | return ResponseCode::OK; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::OK` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:439:13 [INFO] [stderr] | [INFO] [stderr] 439 | return ResponseCode::BadRequest(Some(format!("room name already in use"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::BadRequest(Some(format!("room name already in use")))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:462:9 [INFO] [stderr] | [INFO] [stderr] 462 | return ResponseCode::BadRequest(Some(format!("no room named {:?}", room_name))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::BadRequest(Some(format!("no room named {:?}", room_name)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:484:9 [INFO] [stderr] | [INFO] [stderr] 484 | return ResponseCode::OK; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::OK` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:517:17 [INFO] [stderr] | [INFO] [stderr] 517 | return self.handle_disconnect(player_id); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.handle_disconnect(player_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:522:17 [INFO] [stderr] | [INFO] [stderr] 522 | return ResponseCode::OK; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::OK` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:525:17 [INFO] [stderr] | [INFO] [stderr] 525 | return self.list_players(player_id); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.list_players(player_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:528:17 [INFO] [stderr] | [INFO] [stderr] 528 | return self.handle_chat_message(player_id, msg); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.handle_chat_message(player_id, msg)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:531:17 [INFO] [stderr] | [INFO] [stderr] 531 | return self.list_rooms(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.list_rooms()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:534:17 [INFO] [stderr] | [INFO] [stderr] 534 | return self.create_new_room(Some(player_id), name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.create_new_room(Some(player_id), name)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:537:17 [INFO] [stderr] | [INFO] [stderr] 537 | return self.join_room(player_id, room_name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.join_room(player_id, room_name)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:540:17 [INFO] [stderr] | [INFO] [stderr] 540 | return self.leave_room(player_id); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.leave_room(player_id)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:543:17 [INFO] [stderr] | [INFO] [stderr] 543 | return ResponseCode::BadRequest( Some("already connected".to_owned()) ); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::BadRequest( Some("already connected".to_owned()) )` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:546:17 [INFO] [stderr] | [INFO] [stderr] 546 | return ResponseCode::BadRequest( Some("Invalid request".to_owned()) ); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::BadRequest( Some("Invalid request".to_owned()) )` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:548:55 [INFO] [stderr] | [INFO] [stderr] 548 | RequestAction::TestSequenceNumber(_) => { return ResponseCode::OldPacket; }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ResponseCode::OldPacket` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:563:9 [INFO] [stderr] | [INFO] [stderr] 563 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:577:17 [INFO] [stderr] | [INFO] [stderr] 577 | return Err(Box::new(io::Error::new(ErrorKind::InvalidData, "invalid packet - server-only"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Box::new(io::Error::new(ErrorKind::InvalidData, "invalid packet - server-only")))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/server.rs:641:56 [INFO] [stderr] | [INFO] [stderr] 641 | Packet::UpdateReply{cookie, last_chat_seq, last_game_update_seq: _, last_gen: _} => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/server.rs:641:81 [INFO] [stderr] | [INFO] [stderr] 641 | Packet::UpdateReply{cookie, last_chat_seq, last_game_update_seq: _, last_gen: _} => { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `UpdateReply { cookie, last_chat_seq, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/server.rs:677:13 [INFO] [stderr] | [INFO] [stderr] 677 | sequence [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/server.rs:672:28 [INFO] [stderr] | [INFO] [stderr] 672 | let sequence = match opt_player { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 673 | | Some(player) => player.increment_response_seq_num(), [INFO] [stderr] 674 | | None => 0 [INFO] [stderr] 675 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:698:13 [INFO] [stderr] | [INFO] [stderr] 698 | return response; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `response` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:706:13 [INFO] [stderr] | [INFO] [stderr] 706 | return response; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `response` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server.rs:801:9 [INFO] [stderr] | [INFO] [stderr] 801 | return Some(unsent_messages); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(unsent_messages)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/server.rs:979:13 [INFO] [stderr] | [INFO] [stderr] 979 | udp_sink [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/server.rs:978:28 [INFO] [stderr] | [INFO] [stderr] 978 | let udp_sink = udp_sink.send(outgoing_item).map_err(|_| ()); // this method flushes (if too slow, use send_all) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/server.rs:1750:30 [INFO] [stderr] | [INFO] [stderr] 1750 | Packet::Response{sequence: _, request_ack: _, code} => { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/server.rs:1750:43 [INFO] [stderr] | [INFO] [stderr] 1750 | Packet::Response{sequence: _, request_ack: _, code} => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Response { code, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/server.rs:1767:30 [INFO] [stderr] | [INFO] [stderr] 1767 | Packet::Response{sequence: _, request_ack: _, code} => { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/server.rs:1767:43 [INFO] [stderr] | [INFO] [stderr] 1767 | Packet::Response{sequence: _, request_ack: _, code} => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Response { code, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/server.rs:1778:30 [INFO] [stderr] | [INFO] [stderr] 1778 | Packet::Response{sequence: _, request_ack: _, code} => { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/server.rs:1778:43 [INFO] [stderr] | [INFO] [stderr] 1778 | Packet::Response{sequence: _, request_ack: _, code} => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Response { code, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/server.rs:2110:45 [INFO] [stderr] | [INFO] [stderr] 2110 | assert_eq!(msgs.player_id, PlayerID(0xFFFFFFFFFFFFFFFF)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xFFFF_FFFF_FFFF_FFFF` [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: method is never used: `new` [INFO] [stderr] --> src/net.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | pub fn new(sequence: u64, name: String, msg: String) -> BroadcastChatMessage { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/client.rs:122:49 [INFO] [stderr] | [INFO] [stderr] 122 | fn check_for_upgrade(&self, server_version: &String) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the `code @ _` pattern can be written as just `code` [INFO] [stderr] --> src/client.rs:164:21 [INFO] [stderr] | [INFO] [stderr] 164 | code @ _ => { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/client.rs:180:51 [INFO] [stderr] | [INFO] [stderr] 180 | let send = udp_tx.unbounded_send((addr.clone(), packet)); [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/client.rs:272:49 [INFO] [stderr] | [INFO] [stderr] 272 | let result = udp_tx.unbounded_send((addr.clone(), packet)); [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/client.rs:284:13 [INFO] [stderr] | [INFO] [stderr] 284 | / match last_action { [INFO] [stderr] 285 | | &RequestAction::JoinRoom(ref room_name) => { [INFO] [stderr] 286 | | self.room = Some(room_name.clone()); [INFO] [stderr] 287 | | println!("Joined room {}.", room_name); [INFO] [stderr] ... | [INFO] [stderr] 299 | | } [INFO] [stderr] 300 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 284 | match *last_action { [INFO] [stderr] 285 | RequestAction::JoinRoom(ref room_name) => { [INFO] [stderr] 286 | self.room = Some(room_name.clone()); [INFO] [stderr] 287 | println!("Joined room {}.", room_name); [INFO] [stderr] 288 | } [INFO] [stderr] 289 | RequestAction::LeaveRoom => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `NetworkStatistics` [INFO] [stderr] --> src/net.rs:318:1 [INFO] [stderr] | [INFO] [stderr] 318 | pub struct NetworkStatistics { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/net.rs:326:5 [INFO] [stderr] | [INFO] [stderr] 326 | fn new() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client.rs:376:20 [INFO] [stderr] | [INFO] [stderr] 376 | if args.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client.rs:381:20 [INFO] [stderr] | [INFO] [stderr] 381 | if args.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client.rs:406:20 [INFO] [stderr] | [INFO] [stderr] 406 | if args.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `args.is_empty()` [INFO] [stderr] [INFO] [stderr] warning: method is never used: `reset` [INFO] [stderr] --> src/net.rs:335:5 [INFO] [stderr] | [INFO] [stderr] 335 | fn reset(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `TXQueue` [INFO] [stderr] --> src/net.rs:452:1 [INFO] [stderr] | [INFO] [stderr] 452 | pub struct TXQueue { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `NetworkManager` [INFO] [stderr] --> src/net.rs:705:1 [INFO] [stderr] | [INFO] [stderr] 705 | pub struct NetworkManager { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/net.rs:715:5 [INFO] [stderr] | [INFO] [stderr] 715 | pub fn new() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `with_message_buffering` [INFO] [stderr] --> src/net.rs:724:5 [INFO] [stderr] | [INFO] [stderr] 724 | pub fn with_message_buffering(self) -> NetworkManager { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `reset` [INFO] [stderr] --> src/net.rs:736:5 [INFO] [stderr] | [INFO] [stderr] 736 | pub fn reset(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client.rs:419:20 [INFO] [stderr] | [INFO] [stderr] 419 | if args.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/client.rs:463:35 [INFO] [stderr] | [INFO] [stderr] 463 | let addr = env::args().nth(1).unwrap_or("127.0.0.1:12345".to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "127.0.0.1:12345".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client.rs:595:26 [INFO] [stderr] | [INFO] [stderr] 595 | let command = if words.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!words.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/server.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | / if self.game_info.is_none() { [INFO] [stderr] 127 | | return None; [INFO] [stderr] 128 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `self.game_info?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/server.rs:202:30 [INFO] [stderr] | [INFO] [stderr] 202 | let mut timestamp: u64 = time::Instant::now().elapsed().as_secs().into(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `time::Instant::now().elapsed().as_secs()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/server.rs:203:5 [INFO] [stderr] | [INFO] [stderr] 203 | timestamp = timestamp & 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `timestamp &= 0xFFFFFFFF` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/server.rs:206:5 [INFO] [stderr] | [INFO] [stderr] 206 | rand_salt = rand_salt & 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rand_salt &= 0xFFFFFFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/server.rs:251:22 [INFO] [stderr] | [INFO] [stderr] 251 | for _ in 0..(queue_size-MAX_NUM_CHAT_MESSAGES+1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=queue_size-MAX_NUM_CHAT_MESSAGES` [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: unused variable: `chat_msg` [INFO] [stderr] --> src/net.rs:1578:13 [INFO] [stderr] | [INFO] [stderr] 1578 | let chat_msg = BroadcastChatMessage::new(0, "chatchat".to_owned(), "chatchat".to_owned()); [INFO] [stderr] | ^^^^^^^^ help: consider using `_chat_msg` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `exit_tx` [INFO] [stderr] --> src/client.rs:231:13 [INFO] [stderr] | [INFO] [stderr] 231 | exit_tx: &mpsc::UnboundedSender<()>, [INFO] [stderr] | ^^^^^^^ help: consider using `_exit_tx` instead [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/server.rs:344:9 [INFO] [stderr] | [INFO] [stderr] 344 | / if opt_room_id.is_none() { [INFO] [stderr] 345 | | return None; [INFO] [stderr] 346 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `opt_room_id?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/server.rs:353:9 [INFO] [stderr] | [INFO] [stderr] 353 | / if opt_room_id.is_none() { [INFO] [stderr] 354 | | return None; [INFO] [stderr] 355 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `opt_room_id?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/server.rs:434:12 [INFO] [stderr] | [INFO] [stderr] 434 | if !self.room_map.get(&room_name).is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.room_map.get(&room_name).is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/server.rs:439:50 [INFO] [stderr] | [INFO] [stderr] 439 | return ResponseCode::BadRequest(Some(format!("room name already in use"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"room name already in use".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/server.rs:452:13 [INFO] [stderr] | [INFO] [stderr] 452 | for ref mut gs in self.rooms.values_mut() { [INFO] [stderr] | ^^^^^^^^^^ ----------------------- help: try: `let gs = &mut self.rooms.values_mut();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/server.rs:456:30 [INFO] [stderr] | [INFO] [stderr] 456 | room_id: gs.room_id.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `gs.room_id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/server.rs:474:17 [INFO] [stderr] | [INFO] [stderr] 474 | for ref mut gs in self.rooms.values_mut() { [INFO] [stderr] | ^^^^^^^^^^ ----------------------- help: try: `let gs = &mut self.rooms.values_mut();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/server.rs:558:13 [INFO] [stderr] | [INFO] [stderr] 558 | for ref player in self.players.values() { [INFO] [stderr] | ^^^^^^^^^^ --------------------- help: try: `let player = &self.players.values();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/server.rs:689:60 [INFO] [stderr] | [INFO] [stderr] 689 | let player = self.add_new_player(name.clone(), addr.clone()); [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/server.rs:712:47 [INFO] [stderr] | [INFO] [stderr] 712 | fn construct_client_updates(&mut self) -> Result>, Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server.rs:715:12 [INFO] [stderr] | [INFO] [stderr] 715 | if self.rooms.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.rooms.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server.rs:723:44 [INFO] [stderr] | [INFO] [stderr] 723 | if room.messages.is_empty() || room.player_ids.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `room.player_ids.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/server.rs:748:43 [INFO] [stderr] | [INFO] [stderr] 748 | client_updates.push( (player.addr.clone(), update_packet) ); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `player.addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server.rs:753:12 [INFO] [stderr] | [INFO] [stderr] 753 | if client_updates.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!client_updates.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/server.rs:768:17 [INFO] [stderr] | [INFO] [stderr] 768 | / if opt_newest_msg.is_none() { [INFO] [stderr] 769 | | return None; [INFO] [stderr] 770 | | } [INFO] [stderr] | |_________________^ help: replace_it_with: `opt_newest_msg?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server.rs:793:12 [INFO] [stderr] | [INFO] [stderr] 793 | if raw_unsent_messages.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `raw_unsent_messages.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server.rs:805:12 [INFO] [stderr] | [INFO] [stderr] 805 | if self.rooms.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.rooms.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/server.rs:819:28 [INFO] [stderr] | [INFO] [stderr] 819 | player_id: player_id.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `player_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/server.rs:926:49 [INFO] [stderr] | [INFO] [stderr] 926 | let response = (addr.clone(), response_packet); [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: unused variable: `chat_msg` [INFO] [stderr] --> src/net.rs:1578:13 [INFO] [stderr] | [INFO] [stderr] 1578 | let chat_msg = BroadcastChatMessage::new(0, "chatchat".to_owned(), "chatchat".to_owned()); [INFO] [stderr] | ^^^^^^^^ help: consider using `_chat_msg` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/client.rs:122:49 [INFO] [stderr] | [INFO] [stderr] 122 | fn check_for_upgrade(&self, server_version: &String) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the `code @ _` pattern can be written as just `code` [INFO] [stderr] --> src/client.rs:164:21 [INFO] [stderr] | [INFO] [stderr] 164 | code @ _ => { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/client.rs:180:51 [INFO] [stderr] | [INFO] [stderr] 180 | let send = udp_tx.unbounded_send((addr.clone(), packet)); [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/client.rs:272:49 [INFO] [stderr] | [INFO] [stderr] 272 | let result = udp_tx.unbounded_send((addr.clone(), packet)); [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/client.rs:284:13 [INFO] [stderr] | [INFO] [stderr] 284 | / match last_action { [INFO] [stderr] 285 | | &RequestAction::JoinRoom(ref room_name) => { [INFO] [stderr] 286 | | self.room = Some(room_name.clone()); [INFO] [stderr] 287 | | println!("Joined room {}.", room_name); [INFO] [stderr] ... | [INFO] [stderr] 299 | | } [INFO] [stderr] 300 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 284 | match *last_action { [INFO] [stderr] 285 | RequestAction::JoinRoom(ref room_name) => { [INFO] [stderr] 286 | self.room = Some(room_name.clone()); [INFO] [stderr] 287 | println!("Joined room {}.", room_name); [INFO] [stderr] 288 | } [INFO] [stderr] 289 | RequestAction::LeaveRoom => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client.rs:376:20 [INFO] [stderr] | [INFO] [stderr] 376 | if args.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client.rs:381:20 [INFO] [stderr] | [INFO] [stderr] 381 | if args.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client.rs:406:20 [INFO] [stderr] | [INFO] [stderr] 406 | if args.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client.rs:419:20 [INFO] [stderr] | [INFO] [stderr] 419 | if args.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!args.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/client.rs:463:35 [INFO] [stderr] | [INFO] [stderr] 463 | let addr = env::args().nth(1).unwrap_or("127.0.0.1:12345".to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "127.0.0.1:12345".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client.rs:595:26 [INFO] [stderr] | [INFO] [stderr] 595 | let command = if words.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!words.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/client.rs:927:77 [INFO] [stderr] | [INFO] [stderr] 927 | client_state.handle_user_input_event(&udp_tx, &exit_tx, user_input, addr.clone()); [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: method is never used: `reset` [INFO] [stderr] --> src/net.rs:335:5 [INFO] [stderr] | [INFO] [stderr] 335 | fn reset(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `with_message_buffering` [INFO] [stderr] --> src/net.rs:724:5 [INFO] [stderr] | [INFO] [stderr] 724 | pub fn with_message_buffering(self) -> NetworkManager { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `reset` [INFO] [stderr] --> src/net.rs:736:5 [INFO] [stderr] | [INFO] [stderr] 736 | pub fn reset(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/server.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | / if self.game_info.is_none() { [INFO] [stderr] 127 | | return None; [INFO] [stderr] 128 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `self.game_info?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/server.rs:202:30 [INFO] [stderr] | [INFO] [stderr] 202 | let mut timestamp: u64 = time::Instant::now().elapsed().as_secs().into(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `time::Instant::now().elapsed().as_secs()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/server.rs:203:5 [INFO] [stderr] | [INFO] [stderr] 203 | timestamp = timestamp & 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `timestamp &= 0xFFFFFFFF` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/server.rs:206:5 [INFO] [stderr] | [INFO] [stderr] 206 | rand_salt = rand_salt & 0xFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rand_salt &= 0xFFFFFFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/server.rs:251:22 [INFO] [stderr] | [INFO] [stderr] 251 | for _ in 0..(queue_size-MAX_NUM_CHAT_MESSAGES+1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=queue_size-MAX_NUM_CHAT_MESSAGES` [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: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/server.rs:344:9 [INFO] [stderr] | [INFO] [stderr] 344 | / if opt_room_id.is_none() { [INFO] [stderr] 345 | | return None; [INFO] [stderr] 346 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `opt_room_id?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/server.rs:353:9 [INFO] [stderr] | [INFO] [stderr] 353 | / if opt_room_id.is_none() { [INFO] [stderr] 354 | | return None; [INFO] [stderr] 355 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `opt_room_id?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/server.rs:434:12 [INFO] [stderr] | [INFO] [stderr] 434 | if !self.room_map.get(&room_name).is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.room_map.get(&room_name).is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/server.rs:439:50 [INFO] [stderr] | [INFO] [stderr] 439 | return ResponseCode::BadRequest(Some(format!("room name already in use"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"room name already in use".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/server.rs:452:13 [INFO] [stderr] | [INFO] [stderr] 452 | for ref mut gs in self.rooms.values_mut() { [INFO] [stderr] | ^^^^^^^^^^ ----------------------- help: try: `let gs = &mut self.rooms.values_mut();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/server.rs:456:30 [INFO] [stderr] | [INFO] [stderr] 456 | room_id: gs.room_id.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `gs.room_id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/server.rs:474:17 [INFO] [stderr] | [INFO] [stderr] 474 | for ref mut gs in self.rooms.values_mut() { [INFO] [stderr] | ^^^^^^^^^^ ----------------------- help: try: `let gs = &mut self.rooms.values_mut();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/server.rs:558:13 [INFO] [stderr] | [INFO] [stderr] 558 | for ref player in self.players.values() { [INFO] [stderr] | ^^^^^^^^^^ --------------------- help: try: `let player = &self.players.values();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/server.rs:689:60 [INFO] [stderr] | [INFO] [stderr] 689 | let player = self.add_new_player(name.clone(), addr.clone()); [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/server.rs:712:47 [INFO] [stderr] | [INFO] [stderr] 712 | fn construct_client_updates(&mut self) -> Result>, Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server.rs:715:12 [INFO] [stderr] | [INFO] [stderr] 715 | if self.rooms.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.rooms.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server.rs:723:44 [INFO] [stderr] | [INFO] [stderr] 723 | if room.messages.is_empty() || room.player_ids.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `room.player_ids.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/server.rs:748:43 [INFO] [stderr] | [INFO] [stderr] 748 | client_updates.push( (player.addr.clone(), update_packet) ); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `player.addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server.rs:753:12 [INFO] [stderr] | [INFO] [stderr] 753 | if client_updates.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!client_updates.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/server.rs:768:17 [INFO] [stderr] | [INFO] [stderr] 768 | / if opt_newest_msg.is_none() { [INFO] [stderr] 769 | | return None; [INFO] [stderr] 770 | | } [INFO] [stderr] | |_________________^ help: replace_it_with: `opt_newest_msg?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server.rs:793:12 [INFO] [stderr] | [INFO] [stderr] 793 | if raw_unsent_messages.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `raw_unsent_messages.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server.rs:805:12 [INFO] [stderr] | [INFO] [stderr] 805 | if self.rooms.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.rooms.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/server.rs:819:28 [INFO] [stderr] | [INFO] [stderr] 819 | player_id: player_id.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `player_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/server.rs:926:49 [INFO] [stderr] | [INFO] [stderr] 926 | let response = (addr.clone(), response_packet); [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: the `resp_code @ _` pattern can be written as just `resp_code` [INFO] [stderr] --> src/server.rs:1032:13 [INFO] [stderr] | [INFO] [stderr] 1032 | resp_code @ _ => panic!("Unexpected response code: {:?}", resp_code) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: called `.get_mut().unwrap()` on a VecDeque. Using `[]` is more clear and more concise [INFO] [stderr] --> src/server.rs:1295:51 [INFO] [stderr] | [INFO] [stderr] 1295 | let message: &mut ServerChatMessage = room.messages.get_mut(0).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&mut room.messages[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/server.rs:1684:13 [INFO] [stderr] | [INFO] [stderr] 1684 | for ref mut room in server.rooms.values_mut() { [INFO] [stderr] | ^^^^^^^^^^^^ ------------------------- help: try: `let room = &mut server.rooms.values_mut();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/server.rs:1728:13 [INFO] [stderr] | [INFO] [stderr] 1728 | for ref mut room in server.rooms.values_mut() { [INFO] [stderr] | ^^^^^^^^^^^^ ------------------------- help: try: `let room = &mut server.rooms.values_mut();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/server.rs:1801:53 [INFO] [stderr] | [INFO] [stderr] 1801 | ("([A-Z]{1,4} [0-9]{1,2}){3}").prop_map(|a| RequestAction::ChatMessage(a)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `RequestAction::ChatMessage` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/server.rs:1802:53 [INFO] [stderr] | [INFO] [stderr] 1802 | ("([A-Z]{1,4} [0-9]{1,2}){3}").prop_map(|a| RequestAction::NewRoom(a)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `RequestAction::NewRoom` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/server.rs:1803:53 [INFO] [stderr] | [INFO] [stderr] 1803 | ("([A-Z]{1,4} [0-9]{1,2}){3}").prop_map(|a| RequestAction::JoinRoom(a)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `RequestAction::JoinRoom` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/server.rs:2098:32 [INFO] [stderr] | [INFO] [stderr] 2098 | let room_id: &RoomID = server.room_map.get(&room_name.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&server.room_map[&room_name.clone()]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/server.rs:2104:27 [INFO] [stderr] | [INFO] [stderr] 2104 | let room: &Room = server.rooms.get(&room_id).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&server.rooms[&room_id]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a VecDeque. Using `[]` is more clear and more concise [INFO] [stderr] --> src/server.rs:2107:40 [INFO] [stderr] | [INFO] [stderr] 2107 | let msgs: &ServerChatMessage = room.messages.get(0).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&room.messages[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/server.rs:2162:27 [INFO] [stderr] | [INFO] [stderr] 2162 | let room: &Room = server.rooms.get(&room_id).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&server.rooms[&room_id]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 22.39s [INFO] running `"docker" "inspect" "8fb268571d6563352a4ade485830879b61d95ce3f3af63a601e69c6ac3e19efc"` [INFO] running `"docker" "rm" "-f" "8fb268571d6563352a4ade485830879b61d95ce3f3af63a601e69c6ac3e19efc"` [INFO] [stdout] 8fb268571d6563352a4ade485830879b61d95ce3f3af63a601e69c6ac3e19efc