[INFO] updating cached repository dominikdosoudil/lan-chat [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/dominikdosoudil/lan-chat [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/dominikdosoudil/lan-chat" "work/ex/clippy-test-run/sources/stable/gh/dominikdosoudil/lan-chat"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/dominikdosoudil/lan-chat'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/dominikdosoudil/lan-chat" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dominikdosoudil/lan-chat"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dominikdosoudil/lan-chat'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 91b437c601799b92c0b948d7a0e841741828b606 [INFO] sha for GitHub repo dominikdosoudil/lan-chat: 91b437c601799b92c0b948d7a0e841741828b606 [INFO] validating manifest of dominikdosoudil/lan-chat 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 dominikdosoudil/lan-chat 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 dominikdosoudil/lan-chat [INFO] finished frobbing dominikdosoudil/lan-chat [INFO] frobbed toml for dominikdosoudil/lan-chat written to work/ex/clippy-test-run/sources/stable/gh/dominikdosoudil/lan-chat/Cargo.toml [INFO] started frobbing dominikdosoudil/lan-chat [INFO] finished frobbing dominikdosoudil/lan-chat [INFO] frobbed toml for dominikdosoudil/lan-chat written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dominikdosoudil/lan-chat/Cargo.toml [INFO] crate dominikdosoudil/lan-chat 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 dominikdosoudil/lan-chat against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/dominikdosoudil/lan-chat:/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] c129a9801fb7ec05273cd013b9b27d14ea99de1b5d13d899078413695c44dfd5 [INFO] running `"docker" "start" "-a" "c129a9801fb7ec05273cd013b9b27d14ea99de1b5d13d899078413695c44dfd5"` [INFO] [stderr] Checking lan-chat v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde_json` [INFO] [stderr] --> src/server/mod.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use serde_json; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `from_str as from_json`, `to_string as json` [INFO] [stderr] --> src/server/types.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | use serde_json::{to_string as json, from_str as from_json}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server/mod.rs:25:14 [INFO] [stderr] | [INFO] [stderr] 25 | Err(e) => return match e.kind() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 26 | | ErrorKind::AddrInUse => Err("Port already in use"), [INFO] [stderr] 27 | | _ => { println!("{:?}", e); Err("Unknown Error") }, [INFO] [stderr] 28 | | }, [INFO] [stderr] | |_________________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 25 | Err(e) => match e.kind() { [INFO] [stderr] 26 | ErrorKind::AddrInUse => Err("Port already in use"), [INFO] [stderr] 27 | _ => { println!("{:?}", e); Err("Unknown Error") }, [INFO] [stderr] 28 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::str; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde_json` [INFO] [stderr] --> src/server/mod.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use serde_json; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `from_str as from_json`, `to_string as json` [INFO] [stderr] --> src/server/types.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | use serde_json::{to_string as json, from_str as from_json}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server/mod.rs:25:14 [INFO] [stderr] | [INFO] [stderr] 25 | Err(e) => return match e.kind() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 26 | | ErrorKind::AddrInUse => Err("Port already in use"), [INFO] [stderr] 27 | | _ => { println!("{:?}", e); Err("Unknown Error") }, [INFO] [stderr] 28 | | }, [INFO] [stderr] | |_________________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 25 | Err(e) => match e.kind() { [INFO] [stderr] 26 | ErrorKind::AddrInUse => Err("Port already in use"), [INFO] [stderr] 27 | _ => { println!("{:?}", e); Err("Unknown Error") }, [INFO] [stderr] 28 | }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tx` [INFO] [stderr] --> src/main.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | Ok((tx, socket)) => { [INFO] [stderr] | ^^ help: consider using `_tx` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/main.rs:55:11 [INFO] [stderr] | [INFO] [stderr] 55 | Ok(data) => {}, //println!("{:?}", data), [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/server/mod.rs:94:10 [INFO] [stderr] | [INFO] [stderr] 94 | Err(e) => {}, //println!("Q empty."), [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `srv_rx` [INFO] [stderr] --> src/server/mod.rs:68:19 [INFO] [stderr] | [INFO] [stderr] 68 | let (client_tx, srv_rx) = mpsc::sync_channel::(200); [INFO] [stderr] | ^^^^^^ help: consider using `_srv_rx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `disc_req` [INFO] [stderr] --> src/server/mod.rs:70:7 [INFO] [stderr] | [INFO] [stderr] 70 | let disc_req = Request::new( [INFO] [stderr] | ^^^^^^^^ help: consider using `_disc_req` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n` [INFO] [stderr] --> src/server/mod.rs:105:8 [INFO] [stderr] | [INFO] [stderr] 105 | Ok((n, senderIp)) if senderIp == self.socket.local_addr().unwrap() => { [INFO] [stderr] | ^ help: consider using `_n` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tx` [INFO] [stderr] --> src/main.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | Ok((tx, socket)) => { [INFO] [stderr] | ^^ help: consider using `_tx` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/main.rs:55:11 [INFO] [stderr] | [INFO] [stderr] 55 | Ok(data) => {}, //println!("{:?}", data), [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/server/mod.rs:94:10 [INFO] [stderr] | [INFO] [stderr] 94 | Err(e) => {}, //println!("Q empty."), [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `srv_rx` [INFO] [stderr] --> src/server/mod.rs:68:19 [INFO] [stderr] | [INFO] [stderr] 68 | let (client_tx, srv_rx) = mpsc::sync_channel::(200); [INFO] [stderr] | ^^^^^^ help: consider using `_srv_rx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `disc_req` [INFO] [stderr] --> src/server/mod.rs:70:7 [INFO] [stderr] | [INFO] [stderr] 70 | let disc_req = Request::new( [INFO] [stderr] | ^^^^^^^^ help: consider using `_disc_req` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n` [INFO] [stderr] --> src/server/mod.rs:105:8 [INFO] [stderr] | [INFO] [stderr] 105 | Ok((n, senderIp)) if senderIp == self.socket.local_addr().unwrap() => { [INFO] [stderr] | ^ help: consider using `_n` instead [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Discovering` [INFO] [stderr] --> src/server/types.rs:9:2 [INFO] [stderr] | [INFO] [stderr] 9 | Discovering, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `WaitingForChannelSelect` [INFO] [stderr] --> src/server/types.rs:10:2 [INFO] [stderr] | [INFO] [stderr] 10 | WaitingForChannelSelect, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Handshaking` [INFO] [stderr] --> src/server/types.rs:11:2 [INFO] [stderr] | [INFO] [stderr] 11 | Handshaking, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Connected` [INFO] [stderr] --> src/server/types.rs:12:2 [INFO] [stderr] | [INFO] [stderr] 12 | Connected, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `of_kind` [INFO] [stderr] --> src/server/types.rs:50:2 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn of_kind(&self, k: RequestKind) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Channel` [INFO] [stderr] --> src/server/types.rs:71:1 [INFO] [stderr] | [INFO] [stderr] 71 | struct Channel { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `AlreadyStarted` [INFO] [stderr] --> src/server/types.rs:80:2 [INFO] [stderr] | [INFO] [stderr] 80 | AlreadyStarted, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `state` [INFO] [stderr] --> src/server/mod.rs:18:2 [INFO] [stderr] | [INFO] [stderr] 18 | state: ServerState, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused comparison that must be used [INFO] [stderr] --> src/server/types.rs:51:3 [INFO] [stderr] | [INFO] [stderr] 51 | k == self.kind; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/server/types.rs:51:3 [INFO] [stderr] | [INFO] [stderr] 51 | k == self.kind; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::no_effect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/server/mod.rs:49:3 [INFO] [stderr] | [INFO] [stderr] 49 | match request.header.kind() { [INFO] [stderr] | _________^ [INFO] [stderr] 50 | | &RequestKind::Message => { [INFO] [stderr] 51 | | msg_tx.try_send(Message::new(String::from("Test Message"), request.header.sender)); [INFO] [stderr] 52 | | }, [INFO] [stderr] ... | [INFO] [stderr] 61 | | [INFO] [stderr] 62 | | } [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] 49 | match *request.header.kind() { [INFO] [stderr] 50 | RequestKind::Message => { [INFO] [stderr] 51 | msg_tx.try_send(Message::new(String::from("Test Message"), request.header.sender)); [INFO] [stderr] 52 | }, [INFO] [stderr] 53 | RequestKind::Discover => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/server/mod.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | msg_tx.try_send(Message::new(String::from("Test Message"), request.header.sender)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/server/mod.rs:79:3 [INFO] [stderr] | [INFO] [stderr] 79 | thread::Builder::new().name("network_communication".to_string()).spawn(move || { [INFO] [stderr] | _________^ [INFO] [stderr] 80 | | loop { [INFO] [stderr] 81 | | thread::sleep(time::Duration::from_millis(500)); [INFO] [stderr] 82 | | match self.try_get_request() { [INFO] [stderr] ... | [INFO] [stderr] 97 | | [INFO] [stderr] 98 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/server/mod.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | match self.try_get_request() { [INFO] [stderr] | _________________^ [INFO] [stderr] 83 | | Some(request) => { [INFO] [stderr] 84 | | println!("{:?}", request); [INFO] [stderr] 85 | | self.handle_request(&srv_tx, &request_sender, request); [INFO] [stderr] 86 | | }, [INFO] [stderr] 87 | | None => {}, //println!("No request"), [INFO] [stderr] 88 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 82 | if let Some(request) = self.try_get_request() { [INFO] [stderr] 83 | println!("{:?}", request); [INFO] [stderr] 84 | self.handle_request(&srv_tx, &request_sender, request); [INFO] [stderr] 85 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Discovering` [INFO] [stderr] --> src/server/types.rs:9:2 [INFO] [stderr] | [INFO] [stderr] 9 | Discovering, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `WaitingForChannelSelect` [INFO] [stderr] --> src/server/types.rs:10:2 [INFO] [stderr] | [INFO] [stderr] 10 | WaitingForChannelSelect, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] [INFO] [stderr] --> src/server/mod.rs:85:7 [INFO] [stderr] | [INFO] [stderr] 85 | self.handle_request(&srv_tx, &request_sender, request); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] warning: variant is never constructed: `Handshaking` [INFO] [stderr] --> src/server/types.rs:11:2 [INFO] [stderr] | [INFO] [stderr] 11 | Handshaking, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Connected` [INFO] [stderr] --> src/server/types.rs:12:2 [INFO] [stderr] | [INFO] [stderr] 12 | Connected, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `of_kind` [INFO] [stderr] --> src/server/types.rs:50:2 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn of_kind(&self, k: RequestKind) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/server/mod.rs:91:7 [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] 91 | self.send_request(request); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] warning: struct is never constructed: `Channel` [INFO] [stderr] --> src/server/types.rs:71:1 [INFO] [stderr] | [INFO] [stderr] 71 | struct Channel { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] warning: variant is never constructed: `AlreadyStarted` [INFO] [stderr] --> src/server/types.rs:80:2 [INFO] [stderr] | [INFO] [stderr] 80 | AlreadyStarted, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: field is never used: `state` [INFO] [stderr] --> src/server/mod.rs:18:2 [INFO] [stderr] | [INFO] [stderr] 18 | state: ServerState, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `senderIp` should have a snake case name such as `sender_ip` [INFO] [stderr] --> src/server/mod.rs:105:11 [INFO] [stderr] | [INFO] [stderr] 105 | Ok((n, senderIp)) if senderIp == self.socket.local_addr().unwrap() => { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `senderIp` should have a snake case name such as `sender_ip` [INFO] [stderr] --> src/server/mod.rs:109:26 [INFO] [stderr] | [INFO] [stderr] 109 | Ok((n, SocketAddr::V4(senderIp))) => { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/server/mod.rs:127:3 [INFO] [stderr] | [INFO] [stderr] 127 | self.socket.send_to(json(&request).unwrap().as_bytes(), "192.168.1.255:12345"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:31:6 [INFO] [stderr] | [INFO] [stderr] 31 | sock.send_to("saying hello".as_bytes(), "192.168.1.255:12345"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:31:19 [INFO] [stderr] | [INFO] [stderr] 31 | sock.send_to("saying hello".as_bytes(), "192.168.1.255:12345"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"saying hello"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: unused comparison that must be used [INFO] [stderr] --> src/server/types.rs:51:3 [INFO] [stderr] | [INFO] [stderr] 51 | k == self.kind; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/server/types.rs:51:3 [INFO] [stderr] | [INFO] [stderr] 51 | k == self.kind; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::no_effect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/server/mod.rs:49:3 [INFO] [stderr] | [INFO] [stderr] 49 | match request.header.kind() { [INFO] [stderr] | _________^ [INFO] [stderr] 50 | | &RequestKind::Message => { [INFO] [stderr] 51 | | msg_tx.try_send(Message::new(String::from("Test Message"), request.header.sender)); [INFO] [stderr] 52 | | }, [INFO] [stderr] ... | [INFO] [stderr] 61 | | [INFO] [stderr] 62 | | } [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] 49 | match *request.header.kind() { [INFO] [stderr] 50 | RequestKind::Message => { [INFO] [stderr] 51 | msg_tx.try_send(Message::new(String::from("Test Message"), request.header.sender)); [INFO] [stderr] 52 | }, [INFO] [stderr] 53 | RequestKind::Discover => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/server/mod.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | msg_tx.try_send(Message::new(String::from("Test Message"), request.header.sender)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/server/mod.rs:79:3 [INFO] [stderr] | [INFO] [stderr] 79 | thread::Builder::new().name("network_communication".to_string()).spawn(move || { [INFO] [stderr] | _________^ [INFO] [stderr] 80 | | loop { [INFO] [stderr] 81 | | thread::sleep(time::Duration::from_millis(500)); [INFO] [stderr] 82 | | match self.try_get_request() { [INFO] [stderr] ... | [INFO] [stderr] 97 | | [INFO] [stderr] 98 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/server/mod.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | match self.try_get_request() { [INFO] [stderr] | _________________^ [INFO] [stderr] 83 | | Some(request) => { [INFO] [stderr] 84 | | println!("{:?}", request); [INFO] [stderr] 85 | | self.handle_request(&srv_tx, &request_sender, request); [INFO] [stderr] 86 | | }, [INFO] [stderr] 87 | | None => {}, //println!("No request"), [INFO] [stderr] 88 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 82 | if let Some(request) = self.try_get_request() { [INFO] [stderr] 83 | println!("{:?}", request); [INFO] [stderr] 84 | self.handle_request(&srv_tx, &request_sender, request); [INFO] [stderr] 85 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/server/mod.rs:85:7 [INFO] [stderr] | [INFO] [stderr] 85 | self.handle_request(&srv_tx, &request_sender, request); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/server/mod.rs:91:7 [INFO] [stderr] | [INFO] [stderr] 91 | self.send_request(request); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: variable `senderIp` should have a snake case name such as `sender_ip` [INFO] [stderr] --> src/server/mod.rs:105:11 [INFO] [stderr] | [INFO] [stderr] 105 | Ok((n, senderIp)) if senderIp == self.socket.local_addr().unwrap() => { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `senderIp` should have a snake case name such as `sender_ip` [INFO] [stderr] --> src/server/mod.rs:109:26 [INFO] [stderr] | [INFO] [stderr] 109 | Ok((n, SocketAddr::V4(senderIp))) => { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/server/mod.rs:127:3 [INFO] [stderr] | [INFO] [stderr] 127 | self.socket.send_to(json(&request).unwrap().as_bytes(), "192.168.1.255:12345"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:31:6 [INFO] [stderr] | [INFO] [stderr] 31 | sock.send_to("saying hello".as_bytes(), "192.168.1.255:12345"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:31:19 [INFO] [stderr] | [INFO] [stderr] 31 | sock.send_to("saying hello".as_bytes(), "192.168.1.255:12345"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"saying hello"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.11s [INFO] running `"docker" "inspect" "c129a9801fb7ec05273cd013b9b27d14ea99de1b5d13d899078413695c44dfd5"` [INFO] running `"docker" "rm" "-f" "c129a9801fb7ec05273cd013b9b27d14ea99de1b5d13d899078413695c44dfd5"` [INFO] [stdout] c129a9801fb7ec05273cd013b9b27d14ea99de1b5d13d899078413695c44dfd5