[INFO] fetching crate loro-websocket-server 0.1.0... [INFO] linting loro-websocket-server-0.1.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate loro-websocket-server 0.1.0 into /workspace/builds/worker-7-tc1/source [INFO] started tweaking crates.io crate loro-websocket-server 0.1.0 [INFO] removed 0 missing examples [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate loro-websocket-server 0.1.0 [INFO] tweaked toml for crates.io crate loro-websocket-server 0.1.0 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate loro-websocket-server 0.1.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate loro-websocket-server 0.1.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded clap_derive v4.5.45 [INFO] [stderr] Downloaded clap v4.5.45 [INFO] [stderr] Downloaded loro-websocket-client v0.1.0 [INFO] [stderr] Downloaded clap_builder v4.5.44 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 786b25303a2ee2895886012463bc9b7cfdcd7e2bf09e96a9141eed0ce0cdcf6f [INFO] running `Command { std: "docker" "start" "-a" "786b25303a2ee2895886012463bc9b7cfdcd7e2bf09e96a9141eed0ce0cdcf6f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "786b25303a2ee2895886012463bc9b7cfdcd7e2bf09e96a9141eed0ce0cdcf6f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "786b25303a2ee2895886012463bc9b7cfdcd7e2bf09e96a9141eed0ce0cdcf6f", kill_on_drop: false }` [INFO] [stdout] 786b25303a2ee2895886012463bc9b7cfdcd7e2bf09e96a9141eed0ce0cdcf6f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] be47a93da2806b175505603d141edf1f53e6592aa08b5d6333a7e563d0a4ddd2 [INFO] running `Command { std: "docker" "start" "-a" "be47a93da2806b175505603d141edf1f53e6592aa08b5d6333a7e563d0a4ddd2", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling zerocopy v0.8.26 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Checking itertools v0.11.0 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Compiling heapless v0.7.17 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Compiling serde_json v1.0.143 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking memchr v2.7.5 [INFO] [stderr] Checking append-only-bytes v0.1.12 [INFO] [stderr] Checking unicode-ident v1.0.18 [INFO] [stderr] Checking bitmaps v2.1.0 [INFO] [stderr] Compiling im v15.1.0 [INFO] [stderr] Checking loro-thunderdome v0.6.2 [INFO] [stderr] Checking arref v0.1.0 [INFO] [stderr] Checking leb128 v0.2.5 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking hashbrown v0.15.5 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Checking nonmax v0.5.5 [INFO] [stderr] Checking twox-hash v2.1.1 [INFO] [stderr] Checking heapless v0.8.0 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Checking lz4_flex v0.11.5 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking rand_xoshiro v0.6.0 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking thread_local v1.1.9 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking ensure-cov v0.1.0 [INFO] [stderr] Compiling cc v1.2.33 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking universal-hash v0.5.1 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking socket2 v0.6.0 [INFO] [stderr] Checking itertools v0.12.1 [INFO] [stderr] Checking futures-sink v0.3.31 [INFO] [stderr] Checking md5 v0.7.0 [INFO] [stderr] Checking data-encoding v2.9.0 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking polyval v0.6.2 [INFO] [stderr] Checking anstyle v1.0.11 [INFO] [stderr] Checking anstyle-query v1.1.4 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking anstream v0.6.20 [INFO] [stderr] Checking ctr v0.9.2 [INFO] [stderr] Checking aead v0.5.2 [INFO] [stderr] Checking sized-chunks v0.6.5 [INFO] [stderr] Checking loro-protocol v0.1.0 [INFO] [stderr] Checking clap_lex v0.7.5 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking ghash v0.5.1 [INFO] [stderr] Checking fallible-streaming-iterator v0.1.9 [INFO] [stderr] Checking bitflags v2.9.2 [INFO] [stderr] Checking clap_builder v4.5.44 [INFO] [stderr] Checking fallible-iterator v0.3.0 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking aes-gcm v0.10.3 [INFO] [stderr] Checking num v0.4.3 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Compiling enum-as-inner v0.5.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Compiling libsqlite3-sys v0.28.0 [INFO] [stderr] Checking hashlink v0.9.1 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling thiserror-impl v2.0.15 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling derive_arbitrary v1.4.2 [INFO] [stderr] Compiling enum-as-inner v0.6.1 [INFO] [stderr] Compiling enum_dispatch v0.3.13 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling clap_derive v4.5.45 [INFO] [stderr] Checking tokio v1.47.1 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking arbitrary v1.4.2 [INFO] [stderr] Checking thiserror v2.0.15 [INFO] [stderr] Checking cobs v0.3.0 [INFO] [stderr] Checking tungstenite v0.27.0 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking clap v4.5.45 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling serde_columnar_derive v0.3.6 [INFO] [stderr] Checking tokio-tungstenite v0.27.0 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking loro_fractional_index v1.2.7 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking loro-rle v1.2.7 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking quick_cache v0.6.16 [INFO] [stderr] Checking postcard v1.1.3 [INFO] [stderr] Checking generic-btree v0.10.5 [INFO] [stderr] Checking serde_columnar v0.3.11 [INFO] [stderr] Checking loro-common v1.5.10 [INFO] [stderr] Checking loro-delta v1.5.6 [INFO] [stderr] Checking loro-kv-store v1.5.10 [INFO] [stderr] Checking loro-internal v1.5.10 [INFO] [stderr] Checking rusqlite v0.31.0 [INFO] [stderr] Checking loro v1.5.11 [INFO] [stderr] Checking loro-websocket-client v0.1.0 [INFO] [stderr] Checking loro-websocket-server v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:376:32 [INFO] [stdout] | [INFO] [stdout] 376 | ... if !(h.end > h.start) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `(h.end <= h.start)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `let...else` may be rewritten with the `?` operator [INFO] [stdout] --> src/lib.rs:651:9 [INFO] [stdout] | [INFO] [stdout] 651 | / let Some(data) = self.docs.get(room).and_then(|s| s.doc.export_snapshot()) else { [INFO] [stdout] 652 | | return None; [INFO] [stdout] 653 | | }; [INFO] [stdout] | |__________^ help: replace it with: `let data = self.docs.get(room).and_then(|s| s.doc.export_snapshot())?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/lib.rs:863:9 [INFO] [stdout] | [INFO] [stdout] 863 | / move |req: &tungstenite::handshake::server::Request, [INFO] [stdout] 864 | | resp: tungstenite::handshake::server::Response| { [INFO] [stdout] 865 | | if let Some(check) = &handshake_auth { [INFO] [stdout] ... | [INFO] [stdout] 916 | | Ok(resp) [INFO] [stdout] 917 | | }, [INFO] [stdout] | |_________^ the `Err`-variant is at least 136 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `tokio_tungstenite::tungstenite::http::Response>`, for example by boxing large elements or replacing it with `Box>>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/lib.rs:948:17 [INFO] [stdout] | [INFO] [stdout] 948 | / if txt == "ping" { [INFO] [stdout] 949 | | let _ = tx.send(Message::Text("pong".into())); [INFO] [stdout] 950 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 947 ~ Message::Text(txt) [INFO] [stdout] 948 ~ if txt == "ping" => { [INFO] [stdout] 949 | let _ = tx.send(Message::Text("pong".into())); [INFO] [stdout] 950 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/elo_cross_lang.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | let _guard = SERIAL [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/elo_cross_lang.rs:95:53 [INFO] [stdout] | [INFO] [stdout] 95 | let listener = TcpListener::bind("127.0.0.1:0").await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | .await [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | .await [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] = note: `#[warn(clippy::await_holding_lock)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> tests/elo_cross_lang.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | let _guard = SERIAL [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> tests/elo_cross_lang.rs:152:50 [INFO] [stdout] | [INFO] [stdout] 152 | let probe = TcpListener::bind("127.0.0.1:0").await.unwrap(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | .await [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | match tokio::net::TcpStream::connect(("127.0.0.1", port)).await { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | tokio::time::sleep(Duration::from_millis(50)).await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | .await [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 209 | .await [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | .await [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | let _ = child.kill().await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> tests/elo_fragment_reassembly.rs:149:21 [INFO] [stdout] | [INFO] [stdout] 149 | / if matches!(crdt, CrdtType::Elo) && rid == room_id && bid == batch_id { [INFO] [stdout] 150 | | assert_eq!(fragment_count, 2); [INFO] [stdout] 151 | | assert_eq!(total_size_bytes, container.len() as u64); [INFO] [stdout] 152 | | got_header = true; [INFO] [stdout] 153 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 148 ~ } [INFO] [stdout] 149 ~ if matches!(crdt, CrdtType::Elo) && rid == room_id && bid == batch_id => { [INFO] [stdout] 150 | assert_eq!(fragment_count, 2); [INFO] [stdout] 151 | assert_eq!(total_size_bytes, container.len() as u64); [INFO] [stdout] 152 | got_header = true; [INFO] [stdout] 153 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> tests/elo_fragment_reassembly.rs:162:21 [INFO] [stdout] | [INFO] [stdout] 162 | / if matches!(crdt, CrdtType::Elo) && rid == room_id && bid == batch_id { [INFO] [stdout] 163 | | if index == 0 { [INFO] [stdout] 164 | | got0 = Some(fragment.clone()); [INFO] [stdout] ... | [INFO] [stdout] 169 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 161 ~ } [INFO] [stdout] 162 ~ if matches!(crdt, CrdtType::Elo) && rid == room_id && bid == batch_id => { [INFO] [stdout] 163 | if index == 0 { [INFO] [stdout] ... [INFO] [stdout] 168 | } [INFO] [stdout] 169 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:376:32 [INFO] [stdout] | [INFO] [stdout] 376 | ... if !(h.end > h.start) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `(h.end <= h.start)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `let...else` may be rewritten with the `?` operator [INFO] [stdout] --> src/lib.rs:651:9 [INFO] [stdout] | [INFO] [stdout] 651 | / let Some(data) = self.docs.get(room).and_then(|s| s.doc.export_snapshot()) else { [INFO] [stdout] 652 | | return None; [INFO] [stdout] 653 | | }; [INFO] [stdout] | |__________^ help: replace it with: `let data = self.docs.get(room).and_then(|s| s.doc.export_snapshot())?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/lib.rs:863:9 [INFO] [stdout] | [INFO] [stdout] 863 | / move |req: &tungstenite::handshake::server::Request, [INFO] [stdout] 864 | | resp: tungstenite::handshake::server::Response| { [INFO] [stdout] 865 | | if let Some(check) = &handshake_auth { [INFO] [stdout] ... | [INFO] [stdout] 916 | | Ok(resp) [INFO] [stdout] 917 | | }, [INFO] [stdout] | |_________^ the `Err`-variant is at least 136 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `tokio_tungstenite::tungstenite::http::Response>`, for example by boxing large elements or replacing it with `Box>>` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/lib.rs:948:17 [INFO] [stdout] | [INFO] [stdout] 948 | / if txt == "ping" { [INFO] [stdout] 949 | | let _ = tx.send(Message::Text("pong".into())); [INFO] [stdout] 950 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 947 ~ Message::Text(txt) [INFO] [stdout] 948 ~ if txt == "ping" => { [INFO] [stdout] 949 | let _ = tx.send(Message::Text("pong".into())); [INFO] [stdout] 950 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 44.14s [INFO] running `Command { std: "docker" "inspect" "be47a93da2806b175505603d141edf1f53e6592aa08b5d6333a7e563d0a4ddd2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "be47a93da2806b175505603d141edf1f53e6592aa08b5d6333a7e563d0a4ddd2", kill_on_drop: false }` [INFO] [stdout] be47a93da2806b175505603d141edf1f53e6592aa08b5d6333a7e563d0a4ddd2