[INFO] crate whois-rust 1.1.4 is already in cache [INFO] extracting crate whois-rust 1.1.4 into work/ex/clippy-test-run/sources/stable/reg/whois-rust/1.1.4 [INFO] extracting crate whois-rust 1.1.4 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/whois-rust/1.1.4 [INFO] validating manifest of whois-rust-1.1.4 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 whois-rust-1.1.4 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 whois-rust-1.1.4 [INFO] finished frobbing whois-rust-1.1.4 [INFO] frobbed toml for whois-rust-1.1.4 written to work/ex/clippy-test-run/sources/stable/reg/whois-rust/1.1.4/Cargo.toml [INFO] started frobbing whois-rust-1.1.4 [INFO] finished frobbing whois-rust-1.1.4 [INFO] frobbed toml for whois-rust-1.1.4 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/whois-rust/1.1.4/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting whois-rust-1.1.4 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/whois-rust/1.1.4:/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] e2300cf50b747e203461e292be8d30b879ba1f037594be5ae9c559755514a2a3 [INFO] running `"docker" "start" "-a" "e2300cf50b747e203461e292be8d30b879ba1f037594be5ae9c559755514a2a3"` [INFO] [stderr] Compiling libc v0.2.48 [INFO] [stderr] Checking number-as v1.0.2 [INFO] [stderr] Checking memchr v2.1.3 [INFO] [stderr] Checking aho-corasick v0.6.9 [INFO] [stderr] Checking regex v1.1.0 [INFO] [stderr] Checking validators v0.18.8 [INFO] [stderr] Checking whois-rust v1.1.4 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:398:9 [INFO] [stderr] | [INFO] [stderr] 398 | return Ok(query_result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(query_result)` [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/lib.rs:398:9 [INFO] [stderr] | [INFO] [stderr] 398 | return Ok(query_result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(query_result)` [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: redundant closure found [INFO] [stderr] --> src/lib.rs:201:81 [INFO] [stderr] | [INFO] [stderr] 201 | let domain = DomainUnlocalhostableWithoutPort::from_str(domain).map_err(|err| WhoIsError::DomainError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::DomainError` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:210:69 [INFO] [stderr] | [INFO] [stderr] 210 | let ipv4 = IPv4LocalableWithoutPort::from_str(ipv4).map_err(|err| WhoIsError::IPv4Error(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IPv4Error` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:219:69 [INFO] [stderr] | [INFO] [stderr] 219 | let ipv6 = IPv6LocalableWithoutPort::from_str(ipv6).map_err(|err| WhoIsError::IPv6Error(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IPv6Error` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:247:45 [INFO] [stderr] | [INFO] [stderr] 247 | let file = File::open(path).map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:249:77 [INFO] [stderr] | [INFO] [stderr] 249 | let map: Map = serde_json::from_reader(file).map_err(|err| WhoIsError::SerdeJsonError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::SerdeJsonError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:258:76 [INFO] [stderr] | [INFO] [stderr] 258 | let map: Map = serde_json::from_str(string).map_err(|err| WhoIsError::SerdeJsonError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::SerdeJsonError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:300:24 [INFO] [stderr] | [INFO] [stderr] 300 | if let Some(_) = domain.get_port() { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 301 | | domain.get_full_domain().to_string() [INFO] [stderr] 302 | | } else { [INFO] [stderr] 303 | | format!("{}:{}", domain.get_full_domain(), DEFAULT_WHOIS_HOST_PORT) [INFO] [stderr] 304 | | } [INFO] [stderr] | |_________________- help: try this: `if domain.get_port().is_some()` [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: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:307:24 [INFO] [stderr] | [INFO] [stderr] 307 | if let Some(_) = ipv4.get_port() { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 308 | | ipv4.get_full_ipv4().to_string() [INFO] [stderr] 309 | | } else { [INFO] [stderr] 310 | | format!("{}:{}", ipv4.get_full_ipv4(), DEFAULT_WHOIS_HOST_PORT) [INFO] [stderr] 311 | | } [INFO] [stderr] | |_________________- help: try this: `if ipv4.get_port().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/lib.rs:314:24 [INFO] [stderr] | [INFO] [stderr] 314 | if let Some(_) = ipv6.get_port() { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 315 | | ipv6.get_full_ipv6().to_string() [INFO] [stderr] 316 | | } else { [INFO] [stderr] 317 | | format!("[{}]:{}", ipv6.get_full_ipv6(), DEFAULT_WHOIS_HOST_PORT) [INFO] [stderr] 318 | | } [INFO] [stderr] | |_________________- help: try this: `if ipv6.get_port().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 closure found [INFO] [stderr] --> src/lib.rs:323:84 [INFO] [stderr] | [INFO] [stderr] 323 | let mut socket_addrs: Vec = addr.to_socket_addrs().map_err(|err| WhoIsError::IOError(err))?.collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:328:17 [INFO] [stderr] | [INFO] [stderr] 328 | / match TcpStream::connect_timeout(&socket_addr, timeout) { [INFO] [stderr] 329 | | Ok(c) => { [INFO] [stderr] 330 | | client = Some(c); [INFO] [stderr] 331 | | break; [INFO] [stderr] 332 | | } [INFO] [stderr] 333 | | Err(_) => () [INFO] [stderr] 334 | | } [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] 328 | if let Ok(c) = TcpStream::connect_timeout(&socket_addr, timeout) { [INFO] [stderr] 329 | client = Some(c); [INFO] [stderr] 330 | break; [INFO] [stderr] 331 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:341:75 [INFO] [stderr] | [INFO] [stderr] 341 | TcpStream::connect_timeout(&socket_addr, timeout).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:344:60 [INFO] [stderr] | [INFO] [stderr] 344 | client.set_read_timeout(Some(timeout)).map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:345:61 [INFO] [stderr] | [INFO] [stderr] 345 | client.set_write_timeout(Some(timeout)).map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:350:28 [INFO] [stderr] | [INFO] [stderr] 350 | if let Some(_) = domain.get_port() { [INFO] [stderr] | _____________________- ^^^^^^^ [INFO] [stderr] 351 | | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] 352 | | } else { [INFO] [stderr] 353 | | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] 354 | | } [INFO] [stderr] | |_____________________- help: try this: `if domain.get_port().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 closure found [INFO] [stderr] --> src/lib.rs:351:59 [INFO] [stderr] | [INFO] [stderr] 351 | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:353:59 [INFO] [stderr] | [INFO] [stderr] 353 | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:357:28 [INFO] [stderr] | [INFO] [stderr] 357 | if let Some(_) = ipv4.get_port() { [INFO] [stderr] | _____________________- ^^^^^^^ [INFO] [stderr] 358 | | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] 359 | | } else { [INFO] [stderr] 360 | | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] 361 | | } [INFO] [stderr] | |_____________________- help: try this: `if ipv4.get_port().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 closure found [INFO] [stderr] --> src/lib.rs:358:59 [INFO] [stderr] | [INFO] [stderr] 358 | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:360:59 [INFO] [stderr] | [INFO] [stderr] 360 | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:364:28 [INFO] [stderr] | [INFO] [stderr] 364 | if let Some(_) = ipv6.get_port() { [INFO] [stderr] | _____________________- ^^^^^^^ [INFO] [stderr] 365 | | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] 366 | | } else { [INFO] [stderr] 367 | | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] 368 | | } [INFO] [stderr] | |_____________________- help: try this: `if ipv6.get_port().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 closure found [INFO] [stderr] --> src/lib.rs:365:59 [INFO] [stderr] | [INFO] [stderr] 365 | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:367:59 [INFO] [stderr] | [INFO] [stderr] 367 | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:374:79 [INFO] [stderr] | [INFO] [stderr] 374 | client.write_all(query.replace("$addr", text).as_bytes()).map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:376:98 [INFO] [stderr] | [INFO] [stderr] 376 | client.write_all(DEFAULT_WHOIS_HOST_QUERY.replace("$addr", text).as_bytes()).map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:379:32 [INFO] [stderr] | [INFO] [stderr] 379 | client.flush().map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:383:58 [INFO] [stderr] | [INFO] [stderr] 383 | client.read_to_string(&mut query_result).map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:431:36 [INFO] [stderr] | [INFO] [stderr] 431 | if let Some(_) = server { [INFO] [stderr] | _____________________________- ^^^^^^^ [INFO] [stderr] 432 | | break; [INFO] [stderr] 433 | | } [INFO] [stderr] | |_____________________________- help: try this: `if server.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: single-character string constant used as pattern [INFO] [stderr] --> src/lib.rs:439:44 [INFO] [stderr] | [INFO] [stderr] 439 | match tld.find(".") { [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:201:81 [INFO] [stderr] | [INFO] [stderr] 201 | let domain = DomainUnlocalhostableWithoutPort::from_str(domain).map_err(|err| WhoIsError::DomainError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::DomainError` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:210:69 [INFO] [stderr] | [INFO] [stderr] 210 | let ipv4 = IPv4LocalableWithoutPort::from_str(ipv4).map_err(|err| WhoIsError::IPv4Error(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IPv4Error` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:219:69 [INFO] [stderr] | [INFO] [stderr] 219 | let ipv6 = IPv6LocalableWithoutPort::from_str(ipv6).map_err(|err| WhoIsError::IPv6Error(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IPv6Error` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:247:45 [INFO] [stderr] | [INFO] [stderr] 247 | let file = File::open(path).map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:249:77 [INFO] [stderr] | [INFO] [stderr] 249 | let map: Map = serde_json::from_reader(file).map_err(|err| WhoIsError::SerdeJsonError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::SerdeJsonError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:258:76 [INFO] [stderr] | [INFO] [stderr] 258 | let map: Map = serde_json::from_str(string).map_err(|err| WhoIsError::SerdeJsonError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::SerdeJsonError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:300:24 [INFO] [stderr] | [INFO] [stderr] 300 | if let Some(_) = domain.get_port() { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 301 | | domain.get_full_domain().to_string() [INFO] [stderr] 302 | | } else { [INFO] [stderr] 303 | | format!("{}:{}", domain.get_full_domain(), DEFAULT_WHOIS_HOST_PORT) [INFO] [stderr] 304 | | } [INFO] [stderr] | |_________________- help: try this: `if domain.get_port().is_some()` [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: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:307:24 [INFO] [stderr] | [INFO] [stderr] 307 | if let Some(_) = ipv4.get_port() { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 308 | | ipv4.get_full_ipv4().to_string() [INFO] [stderr] 309 | | } else { [INFO] [stderr] 310 | | format!("{}:{}", ipv4.get_full_ipv4(), DEFAULT_WHOIS_HOST_PORT) [INFO] [stderr] 311 | | } [INFO] [stderr] | |_________________- help: try this: `if ipv4.get_port().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/lib.rs:314:24 [INFO] [stderr] | [INFO] [stderr] 314 | if let Some(_) = ipv6.get_port() { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 315 | | ipv6.get_full_ipv6().to_string() [INFO] [stderr] 316 | | } else { [INFO] [stderr] 317 | | format!("[{}]:{}", ipv6.get_full_ipv6(), DEFAULT_WHOIS_HOST_PORT) [INFO] [stderr] 318 | | } [INFO] [stderr] | |_________________- help: try this: `if ipv6.get_port().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 closure found [INFO] [stderr] --> src/lib.rs:323:84 [INFO] [stderr] | [INFO] [stderr] 323 | let mut socket_addrs: Vec = addr.to_socket_addrs().map_err(|err| WhoIsError::IOError(err))?.collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:328:17 [INFO] [stderr] | [INFO] [stderr] 328 | / match TcpStream::connect_timeout(&socket_addr, timeout) { [INFO] [stderr] 329 | | Ok(c) => { [INFO] [stderr] 330 | | client = Some(c); [INFO] [stderr] 331 | | break; [INFO] [stderr] 332 | | } [INFO] [stderr] 333 | | Err(_) => () [INFO] [stderr] 334 | | } [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] 328 | if let Ok(c) = TcpStream::connect_timeout(&socket_addr, timeout) { [INFO] [stderr] 329 | client = Some(c); [INFO] [stderr] 330 | break; [INFO] [stderr] 331 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:341:75 [INFO] [stderr] | [INFO] [stderr] 341 | TcpStream::connect_timeout(&socket_addr, timeout).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:344:60 [INFO] [stderr] | [INFO] [stderr] 344 | client.set_read_timeout(Some(timeout)).map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:345:61 [INFO] [stderr] | [INFO] [stderr] 345 | client.set_write_timeout(Some(timeout)).map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:350:28 [INFO] [stderr] | [INFO] [stderr] 350 | if let Some(_) = domain.get_port() { [INFO] [stderr] | _____________________- ^^^^^^^ [INFO] [stderr] 351 | | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] 352 | | } else { [INFO] [stderr] 353 | | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] 354 | | } [INFO] [stderr] | |_____________________- help: try this: `if domain.get_port().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 closure found [INFO] [stderr] --> src/lib.rs:351:59 [INFO] [stderr] | [INFO] [stderr] 351 | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:353:59 [INFO] [stderr] | [INFO] [stderr] 353 | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:357:28 [INFO] [stderr] | [INFO] [stderr] 357 | if let Some(_) = ipv4.get_port() { [INFO] [stderr] | _____________________- ^^^^^^^ [INFO] [stderr] 358 | | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] 359 | | } else { [INFO] [stderr] 360 | | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] 361 | | } [INFO] [stderr] | |_____________________- help: try this: `if ipv4.get_port().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 closure found [INFO] [stderr] --> src/lib.rs:358:59 [INFO] [stderr] | [INFO] [stderr] 358 | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:360:59 [INFO] [stderr] | [INFO] [stderr] 360 | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:364:28 [INFO] [stderr] | [INFO] [stderr] 364 | if let Some(_) = ipv6.get_port() { [INFO] [stderr] | _____________________- ^^^^^^^ [INFO] [stderr] 365 | | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] 366 | | } else { [INFO] [stderr] 367 | | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] 368 | | } [INFO] [stderr] | |_____________________- help: try this: `if ipv6.get_port().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 closure found [INFO] [stderr] --> src/lib.rs:365:59 [INFO] [stderr] | [INFO] [stderr] 365 | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:367:59 [INFO] [stderr] | [INFO] [stderr] 367 | TcpStream::connect(&addr).map_err(|err| WhoIsError::IOError(err))? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:374:79 [INFO] [stderr] | [INFO] [stderr] 374 | client.write_all(query.replace("$addr", text).as_bytes()).map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:376:98 [INFO] [stderr] | [INFO] [stderr] 376 | client.write_all(DEFAULT_WHOIS_HOST_QUERY.replace("$addr", text).as_bytes()).map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:379:32 [INFO] [stderr] | [INFO] [stderr] 379 | client.flush().map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:383:58 [INFO] [stderr] | [INFO] [stderr] 383 | client.read_to_string(&mut query_result).map_err(|err| WhoIsError::IOError(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `WhoIsError::IOError` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:431:36 [INFO] [stderr] | [INFO] [stderr] 431 | if let Some(_) = server { [INFO] [stderr] | _____________________________- ^^^^^^^ [INFO] [stderr] 432 | | break; [INFO] [stderr] 433 | | } [INFO] [stderr] | |_____________________________- help: try this: `if server.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: single-character string constant used as pattern [INFO] [stderr] --> src/lib.rs:439:44 [INFO] [stderr] | [INFO] [stderr] 439 | match tld.find(".") { [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 16.43s [INFO] running `"docker" "inspect" "e2300cf50b747e203461e292be8d30b879ba1f037594be5ae9c559755514a2a3"` [INFO] running `"docker" "rm" "-f" "e2300cf50b747e203461e292be8d30b879ba1f037594be5ae9c559755514a2a3"` [INFO] [stdout] e2300cf50b747e203461e292be8d30b879ba1f037594be5ae9c559755514a2a3