[INFO] crate ws 0.7.9 is already in cache [INFO] extracting crate ws 0.7.9 into work/ex/clippy-test-run/sources/stable/reg/ws/0.7.9 [INFO] extracting crate ws 0.7.9 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ws/0.7.9 [INFO] validating manifest of ws-0.7.9 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 ws-0.7.9 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 ws-0.7.9 [INFO] finished frobbing ws-0.7.9 [INFO] frobbed toml for ws-0.7.9 written to work/ex/clippy-test-run/sources/stable/reg/ws/0.7.9/Cargo.toml [INFO] started frobbing ws-0.7.9 [INFO] finished frobbing ws-0.7.9 [INFO] frobbed toml for ws-0.7.9 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ws/0.7.9/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting ws-0.7.9 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/ws/0.7.9:/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] 7a6427f374f5b48d18a3a436b7bd1e1283bbd432c7e4c6984988321985410ac6 [INFO] running `"docker" "start" "-a" "7a6427f374f5b48d18a3a436b7bd1e1283bbd432c7e4c6984988321985410ac6"` [INFO] [stderr] Checking term v0.5.1 [INFO] [stderr] Checking mio-extras v2.0.5 [INFO] [stderr] Checking ws v0.7.9 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/handshake.rs:380:13 [INFO] [stderr] | [INFO] [stderr] 380 | headers: headers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [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 `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/handshake.rs:393:9 [INFO] [stderr] | [INFO] [stderr] 393 | write!(w, "{} {} HTTP/1.1\r\n", self.method, self.path)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/handshake.rs:397:13 [INFO] [stderr] | [INFO] [stderr] 397 | write!(w, "\r\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/handshake.rs:399:9 [INFO] [stderr] | [INFO] [stderr] 399 | write!(w, "\r\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/handshake.rs:634:9 [INFO] [stderr] | [INFO] [stderr] 634 | write!(w, "HTTP/1.1 {} {}\r\n", self.status, self.reason)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/handshake.rs:638:13 [INFO] [stderr] | [INFO] [stderr] 638 | write!(w, "\r\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/handshake.rs:640:9 [INFO] [stderr] | [INFO] [stderr] 640 | write!(w, "\r\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/stream.rs:201:33 [INFO] [stderr] | [INFO] [stderr] 201 | negotiating: negotiating, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `negotiating` [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/stream.rs:271:33 [INFO] [stderr] | [INFO] [stderr] 271 | negotiating: negotiating, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `negotiating` [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/handshake.rs:380:13 [INFO] [stderr] | [INFO] [stderr] 380 | headers: headers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [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 `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/handshake.rs:393:9 [INFO] [stderr] | [INFO] [stderr] 393 | write!(w, "{} {} HTTP/1.1\r\n", self.method, self.path)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/handshake.rs:397:13 [INFO] [stderr] | [INFO] [stderr] 397 | write!(w, "\r\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/handshake.rs:399:9 [INFO] [stderr] | [INFO] [stderr] 399 | write!(w, "\r\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/handshake.rs:634:9 [INFO] [stderr] | [INFO] [stderr] 634 | write!(w, "HTTP/1.1 {} {}\r\n", self.status, self.reason)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/handshake.rs:638:13 [INFO] [stderr] | [INFO] [stderr] 638 | write!(w, "\r\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/handshake.rs:640:9 [INFO] [stderr] | [INFO] [stderr] 640 | write!(w, "\r\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/stream.rs:201:33 [INFO] [stderr] | [INFO] [stderr] 201 | negotiating: negotiating, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `negotiating` [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/stream.rs:271:33 [INFO] [stderr] | [INFO] [stderr] 271 | negotiating: negotiating, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `negotiating` [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: this if statement can be collapsed [INFO] [stderr] --> src/connection.rs:502:21 [INFO] [stderr] | [INFO] [stderr] 502 | / if self.socket.try_write_buf(res)?.is_some() { [INFO] [stderr] 503 | | if res.position() as usize == res.get_ref().len() { [INFO] [stderr] 504 | | done = true [INFO] [stderr] 505 | | } [INFO] [stderr] 506 | | } [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] 502 | if self.socket.try_write_buf(res)?.is_some() && res.position() as usize == res.get_ref().len() { [INFO] [stderr] 503 | done = true [INFO] [stderr] 504 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/connection.rs:512:21 [INFO] [stderr] | [INFO] [stderr] 512 | / if self.socket.try_write_buf(req)?.is_some() { [INFO] [stderr] 513 | | if req.position() as usize == req.get_ref().len() { [INFO] [stderr] 514 | | trace!( [INFO] [stderr] 515 | | "Finished writing handshake request to {}", [INFO] [stderr] ... | [INFO] [stderr] 523 | | } [INFO] [stderr] 524 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 512 | if self.socket.try_write_buf(req)?.is_some() && req.position() as usize == req.get_ref().len() { [INFO] [stderr] 513 | trace!( [INFO] [stderr] 514 | "Finished writing handshake request to {}", [INFO] [stderr] 515 | self.socket [INFO] [stderr] 516 | .peer_addr() [INFO] [stderr] 517 | .map(|addr| addr.to_string()) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/connection.rs:732:24 [INFO] [stderr] | [INFO] [stderr] 732 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 733 | | if self.is_server() { [INFO] [stderr] 734 | | return Err(Error::new( [INFO] [stderr] 735 | | Kind::Protocol, [INFO] [stderr] ... | [INFO] [stderr] 738 | | } [INFO] [stderr] 739 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 732 | } else if self.is_server() { [INFO] [stderr] 733 | return Err(Error::new( [INFO] [stderr] 734 | Kind::Protocol, [INFO] [stderr] 735 | "Received unmasked frame from a client endpoint.", [INFO] [stderr] 736 | )); [INFO] [stderr] 737 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/connection.rs:945:24 [INFO] [stderr] | [INFO] [stderr] 945 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 946 | | if frame.is_control() { [INFO] [stderr] 947 | | return Err(Error::new( [INFO] [stderr] 948 | | Kind::Protocol, [INFO] [stderr] ... | [INFO] [stderr] 960 | | } [INFO] [stderr] 961 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 945 | } else if frame.is_control() { [INFO] [stderr] 946 | return Err(Error::new( [INFO] [stderr] 947 | Kind::Protocol, [INFO] [stderr] 948 | "Encounted fragmented control frame.", [INFO] [stderr] 949 | )); [INFO] [stderr] 950 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/connection.rs:853:40 [INFO] [stderr] | [INFO] [stderr] 853 | } else { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 854 | | if !self.state.is_closing() { [INFO] [stderr] 855 | | if has_reason { [INFO] [stderr] 856 | | self.send_close(named, "")?; // note this drops any extra close data [INFO] [stderr] ... | [INFO] [stderr] 862 | | } [INFO] [stderr] 863 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 853 | } else if !self.state.is_closing() { [INFO] [stderr] 854 | if has_reason { [INFO] [stderr] 855 | self.send_close(named, "")?; // note this drops any extra close data [INFO] [stderr] 856 | } else { [INFO] [stderr] 857 | self.send_close(CloseCode::Invalid, "")?; [INFO] [stderr] 858 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/connection.rs:502:21 [INFO] [stderr] | [INFO] [stderr] 502 | / if self.socket.try_write_buf(res)?.is_some() { [INFO] [stderr] 503 | | if res.position() as usize == res.get_ref().len() { [INFO] [stderr] 504 | | done = true [INFO] [stderr] 505 | | } [INFO] [stderr] 506 | | } [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] 502 | if self.socket.try_write_buf(res)?.is_some() && res.position() as usize == res.get_ref().len() { [INFO] [stderr] 503 | done = true [INFO] [stderr] 504 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/connection.rs:512:21 [INFO] [stderr] | [INFO] [stderr] 512 | / if self.socket.try_write_buf(req)?.is_some() { [INFO] [stderr] 513 | | if req.position() as usize == req.get_ref().len() { [INFO] [stderr] 514 | | trace!( [INFO] [stderr] 515 | | "Finished writing handshake request to {}", [INFO] [stderr] ... | [INFO] [stderr] 523 | | } [INFO] [stderr] 524 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 512 | if self.socket.try_write_buf(req)?.is_some() && req.position() as usize == req.get_ref().len() { [INFO] [stderr] 513 | trace!( [INFO] [stderr] 514 | "Finished writing handshake request to {}", [INFO] [stderr] 515 | self.socket [INFO] [stderr] 516 | .peer_addr() [INFO] [stderr] 517 | .map(|addr| addr.to_string()) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/connection.rs:732:24 [INFO] [stderr] | [INFO] [stderr] 732 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 733 | | if self.is_server() { [INFO] [stderr] 734 | | return Err(Error::new( [INFO] [stderr] 735 | | Kind::Protocol, [INFO] [stderr] ... | [INFO] [stderr] 738 | | } [INFO] [stderr] 739 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 732 | } else if self.is_server() { [INFO] [stderr] 733 | return Err(Error::new( [INFO] [stderr] 734 | Kind::Protocol, [INFO] [stderr] 735 | "Received unmasked frame from a client endpoint.", [INFO] [stderr] 736 | )); [INFO] [stderr] 737 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/connection.rs:945:24 [INFO] [stderr] | [INFO] [stderr] 945 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 946 | | if frame.is_control() { [INFO] [stderr] 947 | | return Err(Error::new( [INFO] [stderr] 948 | | Kind::Protocol, [INFO] [stderr] ... | [INFO] [stderr] 960 | | } [INFO] [stderr] 961 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 945 | } else if frame.is_control() { [INFO] [stderr] 946 | return Err(Error::new( [INFO] [stderr] 947 | Kind::Protocol, [INFO] [stderr] 948 | "Encounted fragmented control frame.", [INFO] [stderr] 949 | )); [INFO] [stderr] 950 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/connection.rs:853:40 [INFO] [stderr] | [INFO] [stderr] 853 | } else { [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 854 | | if !self.state.is_closing() { [INFO] [stderr] 855 | | if has_reason { [INFO] [stderr] 856 | | self.send_close(named, "")?; // note this drops any extra close data [INFO] [stderr] ... | [INFO] [stderr] 862 | | } [INFO] [stderr] 863 | | } [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 853 | } else if !self.state.is_closing() { [INFO] [stderr] 854 | if has_reason { [INFO] [stderr] 855 | self.send_close(named, "")?; // note this drops any extra close data [INFO] [stderr] 856 | } else { [INFO] [stderr] 857 | self.send_close(CloseCode::Invalid, "")?; [INFO] [stderr] 858 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/io.rs:970:17 [INFO] [stderr] | [INFO] [stderr] 970 | details: _, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `Error { kind: Kind::Internal, .. }` [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/io.rs:979:17 [INFO] [stderr] | [INFO] [stderr] 979 | details: _, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `Error { kind: Kind::Io(_), .. }` [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: the function has a cyclomatic complexity of 29 [INFO] [stderr] --> src/connection.rs:716:5 [INFO] [stderr] | [INFO] [stderr] 716 | / fn read_frames(&mut self) -> Result<()> { [INFO] [stderr] 717 | | while let Some(mut frame) = Frame::parse(&mut self.in_buffer)? { [INFO] [stderr] 718 | | match self.state { [INFO] [stderr] 719 | | // Ignore data received after receiving close frame [INFO] [stderr] ... | [INFO] [stderr] 964 | | Ok(()) [INFO] [stderr] 965 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/frame.rs:12:37 [INFO] [stderr] | [INFO] [stderr] 12 | fn apply_mask(buf: &mut [u8], mask: &[u8; 4]) { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `[u8; 4]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/frame.rs:179:9 [INFO] [stderr] | [INFO] [stderr] 179 | / self.mask [INFO] [stderr] 180 | | .take() [INFO] [stderr] 181 | | .map(|mask| apply_mask(&mut self.payload, &mask)); [INFO] [stderr] | |_____________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 179 | if let Some(mask) = self.mask [INFO] [stderr] 180 | .take() { apply_mask(&mut self.payload, &mask) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/io.rs:600:5 [INFO] [stderr] | [INFO] [stderr] 600 | / fn handle_event(&mut self, poll: &mut Poll, token: Token, events: Ready) { [INFO] [stderr] 601 | | match token { [INFO] [stderr] 602 | | SYSTEM => { [INFO] [stderr] 603 | | debug_assert!(false, "System token used for io event. This is a bug!"); [INFO] [stderr] ... | [INFO] [stderr] 733 | | } [INFO] [stderr] 734 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 50 [INFO] [stderr] --> src/io.rs:736:5 [INFO] [stderr] | [INFO] [stderr] 736 | / fn handle_queue(&mut self, poll: &mut Poll, cmd: Command) { [INFO] [stderr] 737 | | match cmd.token() { [INFO] [stderr] 738 | | SYSTEM => { [INFO] [stderr] 739 | | // Scaffolding for system events such as internal timeouts [INFO] [stderr] ... | [INFO] [stderr] 924 | | } [INFO] [stderr] 925 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol.rs:26:23 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn is_control(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 29 [INFO] [stderr] --> src/connection.rs:716:5 [INFO] [stderr] | [INFO] [stderr] 716 | / fn read_frames(&mut self) -> Result<()> { [INFO] [stderr] 717 | | while let Some(mut frame) = Frame::parse(&mut self.in_buffer)? { [INFO] [stderr] 718 | | match self.state { [INFO] [stderr] 719 | | // Ignore data received after receiving close frame [INFO] [stderr] ... | [INFO] [stderr] 964 | | Ok(()) [INFO] [stderr] 965 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/frame.rs:12:37 [INFO] [stderr] | [INFO] [stderr] 12 | fn apply_mask(buf: &mut [u8], mask: &[u8; 4]) { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `[u8; 4]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/frame.rs:179:9 [INFO] [stderr] | [INFO] [stderr] 179 | / self.mask [INFO] [stderr] 180 | | .take() [INFO] [stderr] 181 | | .map(|mask| apply_mask(&mut self.payload, &mask)); [INFO] [stderr] | |_____________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 179 | if let Some(mask) = self.mask [INFO] [stderr] 180 | .take() { apply_mask(&mut self.payload, &mask) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> examples/ssl-server.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | out: out, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `out` [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/handler.rs:385:20 [INFO] [stderr] | [INFO] [stderr] 385 | Ok(assert_eq!( [INFO] [stderr] | ____________________^ [INFO] [stderr] 386 | | msg, [INFO] [stderr] 387 | | message::Message::Text(String::from("testme")) [INFO] [stderr] 388 | | )) [INFO] [stderr] | |_________________^ [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] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/io.rs:600:5 [INFO] [stderr] | [INFO] [stderr] 600 | / fn handle_event(&mut self, poll: &mut Poll, token: Token, events: Ready) { [INFO] [stderr] 601 | | match token { [INFO] [stderr] 602 | | SYSTEM => { [INFO] [stderr] 603 | | debug_assert!(false, "System token used for io event. This is a bug!"); [INFO] [stderr] ... | [INFO] [stderr] 733 | | } [INFO] [stderr] 734 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 50 [INFO] [stderr] --> src/io.rs:736:5 [INFO] [stderr] | [INFO] [stderr] 736 | / fn handle_queue(&mut self, poll: &mut Poll, cmd: Command) { [INFO] [stderr] 737 | | match cmd.token() { [INFO] [stderr] 738 | | SYSTEM => { [INFO] [stderr] 739 | | // Scaffolding for system events such as internal timeouts [INFO] [stderr] ... | [INFO] [stderr] 924 | | } [INFO] [stderr] 925 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/io.rs:962:17 [INFO] [stderr] | [INFO] [stderr] 962 | assert!(url_to_addrs(&ws_url).unwrap().len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!url_to_addrs(&ws_url).unwrap().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/io.rs:964:17 [INFO] [stderr] | [INFO] [stderr] 964 | assert!(url_to_addrs(&wss_url).unwrap().len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!url_to_addrs(&wss_url).unwrap().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: useless use of `format!` [INFO] [stderr] --> src/message.rs:144:31 [INFO] [stderr] | [INFO] [stderr] 144 | let t = Message::text(format!("test")); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using .to_string(): `"test".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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol.rs:26:23 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn is_control(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 23.59s [INFO] running `"docker" "inspect" "7a6427f374f5b48d18a3a436b7bd1e1283bbd432c7e4c6984988321985410ac6"` [INFO] running `"docker" "rm" "-f" "7a6427f374f5b48d18a3a436b7bd1e1283bbd432c7e4c6984988321985410ac6"` [INFO] [stdout] 7a6427f374f5b48d18a3a436b7bd1e1283bbd432c7e4c6984988321985410ac6