[INFO] updating cached repository petosegan/rustirc [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/petosegan/rustirc [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/petosegan/rustirc" "work/ex/clippy-test-run/sources/stable/gh/petosegan/rustirc"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/petosegan/rustirc'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/petosegan/rustirc" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/petosegan/rustirc"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/petosegan/rustirc'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] bc918e59d6be9fecc0eb8bfa55ee47ecdee85c1a [INFO] sha for GitHub repo petosegan/rustirc: bc918e59d6be9fecc0eb8bfa55ee47ecdee85c1a [INFO] validating manifest of petosegan/rustirc 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 petosegan/rustirc 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 petosegan/rustirc [INFO] finished frobbing petosegan/rustirc [INFO] frobbed toml for petosegan/rustirc written to work/ex/clippy-test-run/sources/stable/gh/petosegan/rustirc/Cargo.toml [INFO] started frobbing petosegan/rustirc [INFO] finished frobbing petosegan/rustirc [INFO] frobbed toml for petosegan/rustirc written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/petosegan/rustirc/Cargo.toml [INFO] crate petosegan/rustirc 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 petosegan/rustirc against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/petosegan/rustirc:/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] 197682fe32a22659055dce018b8f0edeee3192b92d8173955d0c535c3cbd1d5b [INFO] running `"docker" "start" "-a" "197682fe32a22659055dce018b8f0edeee3192b92d8173955d0c535c3cbd1d5b"` [INFO] [stderr] Checking fern v0.4.2 [INFO] [stderr] Checking rustirc v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | User {user: user, mode: mode, realname: realname} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `user` [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/parser.rs:36:21 [INFO] [stderr] | [INFO] [stderr] 36 | User {user: user, mode: mode, realname: realname} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `mode` [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/parser.rs:36:33 [INFO] [stderr] | [INFO] [stderr] 36 | User {user: user, mode: mode, realname: realname} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `realname` [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:25:4 [INFO] [stderr] | [INFO] [stderr] 25 | portnum: portnum} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `portnum` [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/connection.rs:34:4 [INFO] [stderr] | [INFO] [stderr] 34 | nicknames: nicknames, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `nicknames` [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/connection.rs:35:4 [INFO] [stderr] | [INFO] [stderr] 35 | users: users, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `users` [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/connection.rs:39:4 [INFO] [stderr] | [INFO] [stderr] 39 | rx: rx, [INFO] [stderr] | ^^^^^^ help: replace it with: `rx` [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/connection.rs:40:4 [INFO] [stderr] | [INFO] [stderr] 40 | phonebook: phonebook, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `phonebook` [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/connection.rs:41:4 [INFO] [stderr] | [INFO] [stderr] 41 | num_known_users: num_known_users} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `num_known_users` [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/parser.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | User {user: user, mode: mode, realname: realname} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `user` [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/parser.rs:36:21 [INFO] [stderr] | [INFO] [stderr] 36 | User {user: user, mode: mode, realname: realname} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `mode` [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/parser.rs:36:33 [INFO] [stderr] | [INFO] [stderr] 36 | User {user: user, mode: mode, realname: realname} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `realname` [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:25:4 [INFO] [stderr] | [INFO] [stderr] 25 | portnum: portnum} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `portnum` [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/connection.rs:34:4 [INFO] [stderr] | [INFO] [stderr] 34 | nicknames: nicknames, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `nicknames` [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/connection.rs:35:4 [INFO] [stderr] | [INFO] [stderr] 35 | users: users, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `users` [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/connection.rs:39:4 [INFO] [stderr] | [INFO] [stderr] 39 | rx: rx, [INFO] [stderr] | ^^^^^^ help: replace it with: `rx` [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/connection.rs:40:4 [INFO] [stderr] | [INFO] [stderr] 40 | phonebook: phonebook, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `phonebook` [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/connection.rs:41:4 [INFO] [stderr] | [INFO] [stderr] 41 | num_known_users: num_known_users} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `num_known_users` [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: unneeded return statement [INFO] [stderr] --> src/parser.rs:95:5 [INFO] [stderr] | [INFO] [stderr] 95 | return Err("NICK needs 1 parameter"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("NICK needs 1 parameter")` [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/parser.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | return Ok(Command::Nick(this_nick)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Nick(this_nick))` [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/parser.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | return Err("USER needs 4 parameters"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("USER needs 4 parameters")` [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/parser.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | return Ok(Command::User( [INFO] [stderr] | _________________^ [INFO] [stderr] 106 | | User::new( [INFO] [stderr] 107 | | this_message.params[0].to_string(), [INFO] [stderr] 108 | | this_message.params[1].to_string(), [INFO] [stderr] 109 | | this_message.params[3].to_string()) [INFO] [stderr] 110 | | )); [INFO] [stderr] | |_______________________^ [INFO] [stderr] | [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] 105 | Ok(Command::User( [INFO] [stderr] 106 | User::new( [INFO] [stderr] 107 | this_message.params[0].to_string(), [INFO] [stderr] 108 | this_message.params[1].to_string(), [INFO] [stderr] 109 | this_message.params[3].to_string()) [INFO] [stderr] 110 | )) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:115:5 [INFO] [stderr] | [INFO] [stderr] 115 | return Ok(Command::Quit("Client Quit".to_string())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Quit("Client Quit".to_string()))` [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/parser.rs:117:5 [INFO] [stderr] | [INFO] [stderr] 117 | return Ok(Command::Quit(this_message.params[0].to_string())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Quit(this_message.params[0].to_string()))` [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/parser.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | return Err("Quit needs at most one parameter"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("Quit needs at most one parameter")` [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/parser.rs:124:5 [INFO] [stderr] | [INFO] [stderr] 124 | return Err("PRIVMSG needs 2 parameters"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("PRIVMSG needs 2 parameters")` [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/parser.rs:128:5 [INFO] [stderr] | [INFO] [stderr] 128 | return Ok(Command::Privmsg(this_target, this_text)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Privmsg(this_target, this_text))` [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/parser.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | return Err("NOTICE needs 2 parameters"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("NOTICE needs 2 parameters")` [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/parser.rs:137:5 [INFO] [stderr] | [INFO] [stderr] 137 | return Ok(Command::Notice(this_target, this_text)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Notice(this_target, this_text))` [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/parser.rs:140:15 [INFO] [stderr] | [INFO] [stderr] 140 | "PING" => { return Ok(Command::Ping); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Ping)` [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/parser.rs:141:15 [INFO] [stderr] | [INFO] [stderr] 141 | "PONG" => { return Ok(Command::Pong); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Pong)` [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/parser.rs:142:15 [INFO] [stderr] | [INFO] [stderr] 142 | "MOTD" => { return Ok(Command::Motd); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Motd)` [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/parser.rs:143:17 [INFO] [stderr] | [INFO] [stderr] 143 | "LUSERS" => { return Ok(Command::Lusers); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Lusers)` [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/parser.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | return Err("WHOIS needs a target"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("WHOIS needs a target")` [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/parser.rs:148:5 [INFO] [stderr] | [INFO] [stderr] 148 | return Ok(Command::Whois(this_message.params[0].clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Whois(this_message.params[0].clone()))` [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/parser.rs:151:9 [INFO] [stderr] | [INFO] [stderr] 151 | _ => {return Ok(Command::Unknown(this_message.command));} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Unknown(this_message.command))` [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: this is a decimal constant [INFO] [stderr] --> src/connection.rs:300:21 [INFO] [stderr] | [INFO] [stderr] 300 | self.make_prefix(001), [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_prefixed_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 300 | self.make_prefix(1), [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 300 | self.make_prefix(0o1), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/connection.rs:316:21 [INFO] [stderr] | [INFO] [stderr] 316 | self.make_prefix(002), [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 316 | self.make_prefix(2), [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 316 | self.make_prefix(0o2), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/connection.rs:323:21 [INFO] [stderr] | [INFO] [stderr] 323 | self.make_prefix(003)); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 323 | self.make_prefix(3)); [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 323 | self.make_prefix(0o3)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/connection.rs:329:21 [INFO] [stderr] | [INFO] [stderr] 329 | self.make_prefix(004), [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 329 | self.make_prefix(4), [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 329 | self.make_prefix(0o4), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/connection.rs:431:3 [INFO] [stderr] | [INFO] [stderr] 431 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [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/connection.rs:436:3 [INFO] [stderr] | [INFO] [stderr] 436 | return (*uu)[&self.peer_addr].user.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(*uu)[&self.peer_addr].user.clone()` [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/connection.rs:441:3 [INFO] [stderr] | [INFO] [stderr] 441 | return n_users.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `n_users.clone()` [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/connection.rs:445:3 [INFO] [stderr] | [INFO] [stderr] 445 | return self.get_num_clients() - self.get_num_users(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_num_clients() - self.get_num_users()` [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/connection.rs:450:3 [INFO] [stderr] | [INFO] [stderr] 450 | return (*pb).len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(*pb).len()` [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/parser.rs:95:5 [INFO] [stderr] | [INFO] [stderr] 95 | return Err("NICK needs 1 parameter"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("NICK needs 1 parameter")` [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/parser.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | return Ok(Command::Nick(this_nick)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Nick(this_nick))` [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/parser.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | return Err("USER needs 4 parameters"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("USER needs 4 parameters")` [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/parser.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | return Ok(Command::User( [INFO] [stderr] | _________________^ [INFO] [stderr] 106 | | User::new( [INFO] [stderr] 107 | | this_message.params[0].to_string(), [INFO] [stderr] 108 | | this_message.params[1].to_string(), [INFO] [stderr] 109 | | this_message.params[3].to_string()) [INFO] [stderr] 110 | | )); [INFO] [stderr] | |_______________________^ [INFO] [stderr] | [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] 105 | Ok(Command::User( [INFO] [stderr] 106 | User::new( [INFO] [stderr] 107 | this_message.params[0].to_string(), [INFO] [stderr] 108 | this_message.params[1].to_string(), [INFO] [stderr] 109 | this_message.params[3].to_string()) [INFO] [stderr] 110 | )) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:115:5 [INFO] [stderr] | [INFO] [stderr] 115 | return Ok(Command::Quit("Client Quit".to_string())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Quit("Client Quit".to_string()))` [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/parser.rs:117:5 [INFO] [stderr] | [INFO] [stderr] 117 | return Ok(Command::Quit(this_message.params[0].to_string())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Quit(this_message.params[0].to_string()))` [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/parser.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | return Err("Quit needs at most one parameter"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("Quit needs at most one parameter")` [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/parser.rs:124:5 [INFO] [stderr] | [INFO] [stderr] 124 | return Err("PRIVMSG needs 2 parameters"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("PRIVMSG needs 2 parameters")` [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/parser.rs:128:5 [INFO] [stderr] | [INFO] [stderr] 128 | return Ok(Command::Privmsg(this_target, this_text)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Privmsg(this_target, this_text))` [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/parser.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | return Err("NOTICE needs 2 parameters"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("NOTICE needs 2 parameters")` [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/parser.rs:137:5 [INFO] [stderr] | [INFO] [stderr] 137 | return Ok(Command::Notice(this_target, this_text)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Notice(this_target, this_text))` [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/parser.rs:140:15 [INFO] [stderr] | [INFO] [stderr] 140 | "PING" => { return Ok(Command::Ping); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Ping)` [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/parser.rs:141:15 [INFO] [stderr] | [INFO] [stderr] 141 | "PONG" => { return Ok(Command::Pong); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Pong)` [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/parser.rs:142:15 [INFO] [stderr] | [INFO] [stderr] 142 | "MOTD" => { return Ok(Command::Motd); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Motd)` [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/parser.rs:143:17 [INFO] [stderr] | [INFO] [stderr] 143 | "LUSERS" => { return Ok(Command::Lusers); }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Lusers)` [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/parser.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | return Err("WHOIS needs a target"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("WHOIS needs a target")` [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/parser.rs:148:5 [INFO] [stderr] | [INFO] [stderr] 148 | return Ok(Command::Whois(this_message.params[0].clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Whois(this_message.params[0].clone()))` [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/parser.rs:151:9 [INFO] [stderr] | [INFO] [stderr] 151 | _ => {return Ok(Command::Unknown(this_message.command));} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Command::Unknown(this_message.command))` [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: this is a decimal constant [INFO] [stderr] --> src/connection.rs:300:21 [INFO] [stderr] | [INFO] [stderr] 300 | self.make_prefix(001), [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_prefixed_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 300 | self.make_prefix(1), [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 300 | self.make_prefix(0o1), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/connection.rs:316:21 [INFO] [stderr] | [INFO] [stderr] 316 | self.make_prefix(002), [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 316 | self.make_prefix(2), [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 316 | self.make_prefix(0o2), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/connection.rs:323:21 [INFO] [stderr] | [INFO] [stderr] 323 | self.make_prefix(003)); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 323 | self.make_prefix(3)); [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 323 | self.make_prefix(0o3)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/connection.rs:329:21 [INFO] [stderr] | [INFO] [stderr] 329 | self.make_prefix(004), [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 329 | self.make_prefix(4), [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 329 | self.make_prefix(0o4), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/connection.rs:431:3 [INFO] [stderr] | [INFO] [stderr] 431 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [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/connection.rs:436:3 [INFO] [stderr] | [INFO] [stderr] 436 | return (*uu)[&self.peer_addr].user.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(*uu)[&self.peer_addr].user.clone()` [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/connection.rs:441:3 [INFO] [stderr] | [INFO] [stderr] 441 | return n_users.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `n_users.clone()` [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/connection.rs:445:3 [INFO] [stderr] | [INFO] [stderr] 445 | return self.get_num_clients() - self.get_num_users(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_num_clients() - self.get_num_users()` [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/connection.rs:450:3 [INFO] [stderr] | [INFO] [stderr] 450 | return (*pb).len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(*pb).len()` [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: Consider using an AtomicUsize instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/server.rs:24:30 [INFO] [stderr] | [INFO] [stderr] 24 | num_known_users: Arc::new(Mutex::new(0)), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mutex_atomic)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/connection.rs:52:11 [INFO] [stderr] | [INFO] [stderr] 52 | if let Err(_) = self.stream.read_line(&mut buffer) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 53 | | // error!("Stream Read Error: {}", e); [INFO] [stderr] 54 | | continue; [INFO] [stderr] 55 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 74 | | } [INFO] [stderr] 75 | | } [INFO] [stderr] | |_____________- help: try this: `if self.stream.read_line(&mut buffer).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/connection.rs:122:15 [INFO] [stderr] | [INFO] [stderr] 122 | has_nick = (*nn).values() [INFO] [stderr] | ________________________^ [INFO] [stderr] 123 | | .find(|&val| *val == self.peer_addr) [INFO] [stderr] 124 | | .is_some(); [INFO] [stderr] | |__________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|&val| *val == self.peer_addr).is_some()` with `any(|&val| *val == self.peer_addr)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/connection.rs:154:11 [INFO] [stderr] | [INFO] [stderr] 154 | if let Some(_) = (*nn).remove(&target) { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 155 | | if let Some(_) = (*uu).remove(&target_addr) { [INFO] [stderr] 156 | | let mut n_users = self.num_known_users.lock().unwrap(); [INFO] [stderr] 157 | | (*n_users) -= 1; [INFO] [stderr] ... | [INFO] [stderr] 160 | | (*uu).remove(&target_addr); [INFO] [stderr] 161 | | } [INFO] [stderr] | |_____________- help: try this: `if (*nn).remove(&target).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/connection.rs:155:12 [INFO] [stderr] | [INFO] [stderr] 155 | if let Some(_) = (*uu).remove(&target_addr) { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 156 | | let mut n_users = self.num_known_users.lock().unwrap(); [INFO] [stderr] 157 | | (*n_users) -= 1; [INFO] [stderr] 158 | | } [INFO] [stderr] | |_________________- help: try this: `if (*uu).remove(&target_addr).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/connection.rs:173:11 [INFO] [stderr] | [INFO] [stderr] 173 | if let Some(_) = (*nn).get(&target) { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 174 | | target_exists = true; [INFO] [stderr] 175 | | } [INFO] [stderr] | |_____________- help: try this: `if (*nn).get(&target).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/connection.rs:201:11 [INFO] [stderr] | [INFO] [stderr] 201 | if let Some(_) = (*nn).get(&target) { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 202 | | target_exists = true; [INFO] [stderr] 203 | | } [INFO] [stderr] | |_____________- help: try this: `if (*nn).get(&target).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/connection.rs:229:10 [INFO] [stderr] | [INFO] [stderr] 229 | if let Err(_) = f_result { [INFO] [stderr] | _________- ^^^^^^ [INFO] [stderr] 230 | | self.send_err_nomotd(); [INFO] [stderr] 231 | | } else { [INFO] [stderr] 232 | | self.send_rpl_motd_start(); [INFO] [stderr] ... | [INFO] [stderr] 248 | | self.send_rpl_motd_end(); [INFO] [stderr] 249 | | } [INFO] [stderr] | |_________- help: try this: `if f_result.is_err()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/connection.rs:264:11 [INFO] [stderr] | [INFO] [stderr] 264 | if let Some(_) = (*nn).get(&target) { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 265 | | target_exists = true; [INFO] [stderr] 266 | | } [INFO] [stderr] | |_____________- help: try this: `if (*nn).get(&target).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/connection.rs:274:19 [INFO] [stderr] | [INFO] [stderr] 274 | target_addr = (*nn)[&target].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `(*nn)[&target]` [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/connection.rs:441:10 [INFO] [stderr] | [INFO] [stderr] 441 | return n_users.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `n_users` [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: Consider using an AtomicUsize instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/server.rs:24:30 [INFO] [stderr] | [INFO] [stderr] 24 | num_known_users: Arc::new(Mutex::new(0)), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mutex_atomic)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/connection.rs:52:11 [INFO] [stderr] | [INFO] [stderr] 52 | if let Err(_) = self.stream.read_line(&mut buffer) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 53 | | // error!("Stream Read Error: {}", e); [INFO] [stderr] 54 | | continue; [INFO] [stderr] 55 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 74 | | } [INFO] [stderr] 75 | | } [INFO] [stderr] | |_____________- help: try this: `if self.stream.read_line(&mut buffer).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/connection.rs:122:15 [INFO] [stderr] | [INFO] [stderr] 122 | has_nick = (*nn).values() [INFO] [stderr] | ________________________^ [INFO] [stderr] 123 | | .find(|&val| *val == self.peer_addr) [INFO] [stderr] 124 | | .is_some(); [INFO] [stderr] | |__________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|&val| *val == self.peer_addr).is_some()` with `any(|&val| *val == self.peer_addr)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/connection.rs:154:11 [INFO] [stderr] | [INFO] [stderr] 154 | if let Some(_) = (*nn).remove(&target) { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 155 | | if let Some(_) = (*uu).remove(&target_addr) { [INFO] [stderr] 156 | | let mut n_users = self.num_known_users.lock().unwrap(); [INFO] [stderr] 157 | | (*n_users) -= 1; [INFO] [stderr] ... | [INFO] [stderr] 160 | | (*uu).remove(&target_addr); [INFO] [stderr] 161 | | } [INFO] [stderr] | |_____________- help: try this: `if (*nn).remove(&target).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/connection.rs:155:12 [INFO] [stderr] | [INFO] [stderr] 155 | if let Some(_) = (*uu).remove(&target_addr) { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 156 | | let mut n_users = self.num_known_users.lock().unwrap(); [INFO] [stderr] 157 | | (*n_users) -= 1; [INFO] [stderr] 158 | | } [INFO] [stderr] | |_________________- help: try this: `if (*uu).remove(&target_addr).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/connection.rs:173:11 [INFO] [stderr] | [INFO] [stderr] 173 | if let Some(_) = (*nn).get(&target) { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 174 | | target_exists = true; [INFO] [stderr] 175 | | } [INFO] [stderr] | |_____________- help: try this: `if (*nn).get(&target).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/connection.rs:201:11 [INFO] [stderr] | [INFO] [stderr] 201 | if let Some(_) = (*nn).get(&target) { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 202 | | target_exists = true; [INFO] [stderr] 203 | | } [INFO] [stderr] | |_____________- help: try this: `if (*nn).get(&target).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/connection.rs:229:10 [INFO] [stderr] | [INFO] [stderr] 229 | if let Err(_) = f_result { [INFO] [stderr] | _________- ^^^^^^ [INFO] [stderr] 230 | | self.send_err_nomotd(); [INFO] [stderr] 231 | | } else { [INFO] [stderr] 232 | | self.send_rpl_motd_start(); [INFO] [stderr] ... | [INFO] [stderr] 248 | | self.send_rpl_motd_end(); [INFO] [stderr] 249 | | } [INFO] [stderr] | |_________- help: try this: `if f_result.is_err()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/connection.rs:264:11 [INFO] [stderr] | [INFO] [stderr] 264 | if let Some(_) = (*nn).get(&target) { [INFO] [stderr] | _____________- ^^^^^^^ [INFO] [stderr] 265 | | target_exists = true; [INFO] [stderr] 266 | | } [INFO] [stderr] | |_____________- help: try this: `if (*nn).get(&target).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/connection.rs:274:19 [INFO] [stderr] | [INFO] [stderr] 274 | target_addr = (*nn)[&target].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `(*nn)[&target]` [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/connection.rs:441:10 [INFO] [stderr] | [INFO] [stderr] 441 | return n_users.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `n_users` [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / let mut logging_level = log::LogLevelFilter::Info; [INFO] [stderr] 54 | | if matches.opt_present("v") { [INFO] [stderr] 55 | | logging_level = log::LogLevelFilter::Debug; [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let logging_level = if matches.opt_present("v") { log::LogLevelFilter::Debug } else { log::LogLevelFilter::Info };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:71:6 [INFO] [stderr] | [INFO] [stderr] 71 | Err(_) => {panic!("Invalid port");} [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / let mut logging_level = log::LogLevelFilter::Info; [INFO] [stderr] 54 | | if matches.opt_present("v") { [INFO] [stderr] 55 | | logging_level = log::LogLevelFilter::Debug; [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let logging_level = if matches.opt_present("v") { log::LogLevelFilter::Debug } else { log::LogLevelFilter::Info };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:71:6 [INFO] [stderr] | [INFO] [stderr] 71 | Err(_) => {panic!("Invalid port");} [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 4.26s [INFO] running `"docker" "inspect" "197682fe32a22659055dce018b8f0edeee3192b92d8173955d0c535c3cbd1d5b"` [INFO] running `"docker" "rm" "-f" "197682fe32a22659055dce018b8f0edeee3192b92d8173955d0c535c3cbd1d5b"` [INFO] [stdout] 197682fe32a22659055dce018b8f0edeee3192b92d8173955d0c535c3cbd1d5b