[INFO] updating cached repository JimmyCastiel/bifrost [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/JimmyCastiel/bifrost [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/JimmyCastiel/bifrost" "work/ex/clippy-test-run/sources/stable/gh/JimmyCastiel/bifrost"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/JimmyCastiel/bifrost'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/JimmyCastiel/bifrost" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/JimmyCastiel/bifrost"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/JimmyCastiel/bifrost'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 010d282279bbb38766812284babf83f93c124152 [INFO] sha for GitHub repo JimmyCastiel/bifrost: 010d282279bbb38766812284babf83f93c124152 [INFO] validating manifest of JimmyCastiel/bifrost 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 JimmyCastiel/bifrost 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 JimmyCastiel/bifrost [INFO] finished frobbing JimmyCastiel/bifrost [INFO] frobbed toml for JimmyCastiel/bifrost written to work/ex/clippy-test-run/sources/stable/gh/JimmyCastiel/bifrost/Cargo.toml [INFO] started frobbing JimmyCastiel/bifrost [INFO] finished frobbing JimmyCastiel/bifrost [INFO] frobbed toml for JimmyCastiel/bifrost written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/JimmyCastiel/bifrost/Cargo.toml [INFO] crate JimmyCastiel/bifrost 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 JimmyCastiel/bifrost against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/JimmyCastiel/bifrost:/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] 2204f87f0514b7afc30f94e58348fb8659a779a3924459efdc5348665e7fbf88 [INFO] running `"docker" "start" "-a" "2204f87f0514b7afc30f94e58348fb8659a779a3924459efdc5348665e7fbf88"` [INFO] [stderr] Checking bifrost v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | self.is_connected.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.is_connected` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:283:9 [INFO] [stderr] | [INFO] [stderr] 283 | / match self.command_stream { [INFO] [stderr] 284 | | None => { [INFO] [stderr] 285 | | let conn = TcpStream::connect(SocketAddr::new(self.configuration.host,self.configuration.port)); [INFO] [stderr] 286 | | [INFO] [stderr] ... | [INFO] [stderr] 299 | | _ => { } [INFO] [stderr] 300 | | }; [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] 283 | if let None = self.command_stream { [INFO] [stderr] 284 | let conn = TcpStream::connect(SocketAddr::new(self.configuration.host,self.configuration.port)); [INFO] [stderr] 285 | [INFO] [stderr] 286 | match conn { [INFO] [stderr] 287 | Ok(mut c) => { [INFO] [stderr] 288 | let res = self.read_reply(Some(&mut c)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:330:29 [INFO] [stderr] | [INFO] [stderr] 330 | c.shutdown(Shutdown::Both); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:350:21 [INFO] [stderr] | [INFO] [stderr] 350 | c.shutdown(Shutdown::Both); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:363:72 [INFO] [stderr] | [INFO] [stderr] 363 | self.command_stream.is_none() && self.data_stream.is_none() && self.is_connected == false && self.is_authenticated == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.is_connected` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:363:102 [INFO] [stderr] | [INFO] [stderr] 363 | self.command_stream.is_none() && self.data_stream.is_none() && self.is_connected == false && self.is_authenticated == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.is_authenticated` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:422:9 [INFO] [stderr] | [INFO] [stderr] 422 | self.is_authenticated.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.is_authenticated` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:428:17 [INFO] [stderr] | [INFO] [stderr] 428 | self.raw_cmd(Some(&mut c), FtpCommandType::LIST, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:441:17 [INFO] [stderr] | [INFO] [stderr] 441 | self.raw_cmd(Some(&mut c), FtpCommandType::PASV, Some(if pasv { "true".to_owned() } else { "false".to_owned() })); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:456:17 [INFO] [stderr] | [INFO] [stderr] 456 | self.raw_cmd(Some(&mut c), FtpCommandType::PWD, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:469:17 [INFO] [stderr] | [INFO] [stderr] 469 | self.raw_cmd(Some(&mut c), FtpCommandType::SYST, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:485:17 [INFO] [stderr] | [INFO] [stderr] 485 | / match parameters { [INFO] [stderr] 486 | | Some(mut p) => { [INFO] [stderr] 487 | | let re = Regex::new(r"(\r|\r\n|\n)").unwrap(); [INFO] [stderr] 488 | | p = re.replace_all(&p, "").into_owned(); [INFO] [stderr] ... | [INFO] [stderr] 493 | | None => {} [INFO] [stderr] 494 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 485 | if let Some(mut p) = parameters { [INFO] [stderr] 486 | let re = Regex::new(r"(\r|\r\n|\n)").unwrap(); [INFO] [stderr] 487 | p = re.replace_all(&p, "").into_owned(); [INFO] [stderr] 488 | [INFO] [stderr] 489 | full_command.push_str(" "); [INFO] [stderr] 490 | full_command.push_str(&p); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:535:21 [INFO] [stderr] | [INFO] [stderr] 535 | full_message.len() > 0 && re_eol.find(&full_message[(full_message.len() - 2)..]) == None && re_msg.find(&full_message) == None [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!full_message.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:541:17 [INFO] [stderr] | [INFO] [stderr] 541 | / match re_msg.find(&full_message){ [INFO] [stderr] 542 | | Some(m) => { message = m.as_str().to_owned(); }, [INFO] [stderr] 543 | | None => {} [INFO] [stderr] 544 | | }; [INFO] [stderr] | |_________________^ help: try this: `if let Some(m) = re_msg.find(&full_message) { message = m.as_str().to_owned(); }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:546:20 [INFO] [stderr] | [INFO] [stderr] 546 | if full_message.len() != 0 && message.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!full_message.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:546:47 [INFO] [stderr] | [INFO] [stderr] 546 | if full_message.len() != 0 && message.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!message.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | self.is_connected.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.is_connected` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:283:9 [INFO] [stderr] | [INFO] [stderr] 283 | / match self.command_stream { [INFO] [stderr] 284 | | None => { [INFO] [stderr] 285 | | let conn = TcpStream::connect(SocketAddr::new(self.configuration.host,self.configuration.port)); [INFO] [stderr] 286 | | [INFO] [stderr] ... | [INFO] [stderr] 299 | | _ => { } [INFO] [stderr] 300 | | }; [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] 283 | if let None = self.command_stream { [INFO] [stderr] 284 | let conn = TcpStream::connect(SocketAddr::new(self.configuration.host,self.configuration.port)); [INFO] [stderr] 285 | [INFO] [stderr] 286 | match conn { [INFO] [stderr] 287 | Ok(mut c) => { [INFO] [stderr] 288 | let res = self.read_reply(Some(&mut c)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:330:29 [INFO] [stderr] | [INFO] [stderr] 330 | c.shutdown(Shutdown::Both); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:350:21 [INFO] [stderr] | [INFO] [stderr] 350 | c.shutdown(Shutdown::Both); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:363:72 [INFO] [stderr] | [INFO] [stderr] 363 | self.command_stream.is_none() && self.data_stream.is_none() && self.is_connected == false && self.is_authenticated == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.is_connected` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:363:102 [INFO] [stderr] | [INFO] [stderr] 363 | self.command_stream.is_none() && self.data_stream.is_none() && self.is_connected == false && self.is_authenticated == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.is_authenticated` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:422:9 [INFO] [stderr] | [INFO] [stderr] 422 | self.is_authenticated.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.is_authenticated` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:428:17 [INFO] [stderr] | [INFO] [stderr] 428 | self.raw_cmd(Some(&mut c), FtpCommandType::LIST, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:441:17 [INFO] [stderr] | [INFO] [stderr] 441 | self.raw_cmd(Some(&mut c), FtpCommandType::PASV, Some(if pasv { "true".to_owned() } else { "false".to_owned() })); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:456:17 [INFO] [stderr] | [INFO] [stderr] 456 | self.raw_cmd(Some(&mut c), FtpCommandType::PWD, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:469:17 [INFO] [stderr] | [INFO] [stderr] 469 | self.raw_cmd(Some(&mut c), FtpCommandType::SYST, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:485:17 [INFO] [stderr] | [INFO] [stderr] 485 | / match parameters { [INFO] [stderr] 486 | | Some(mut p) => { [INFO] [stderr] 487 | | let re = Regex::new(r"(\r|\r\n|\n)").unwrap(); [INFO] [stderr] 488 | | p = re.replace_all(&p, "").into_owned(); [INFO] [stderr] ... | [INFO] [stderr] 493 | | None => {} [INFO] [stderr] 494 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 485 | if let Some(mut p) = parameters { [INFO] [stderr] 486 | let re = Regex::new(r"(\r|\r\n|\n)").unwrap(); [INFO] [stderr] 487 | p = re.replace_all(&p, "").into_owned(); [INFO] [stderr] 488 | [INFO] [stderr] 489 | full_command.push_str(" "); [INFO] [stderr] 490 | full_command.push_str(&p); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:535:21 [INFO] [stderr] | [INFO] [stderr] 535 | full_message.len() > 0 && re_eol.find(&full_message[(full_message.len() - 2)..]) == None && re_msg.find(&full_message) == None [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!full_message.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:541:17 [INFO] [stderr] | [INFO] [stderr] 541 | / match re_msg.find(&full_message){ [INFO] [stderr] 542 | | Some(m) => { message = m.as_str().to_owned(); }, [INFO] [stderr] 543 | | None => {} [INFO] [stderr] 544 | | }; [INFO] [stderr] | |_________________^ help: try this: `if let Some(m) = re_msg.find(&full_message) { message = m.as_str().to_owned(); }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:546:20 [INFO] [stderr] | [INFO] [stderr] 546 | if full_message.len() != 0 && message.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!full_message.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:546:47 [INFO] [stderr] | [INFO] [stderr] 546 | if full_message.len() != 0 && message.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!message.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: unused imports: `IpAddr`, `Ipv4Addr` [INFO] [stderr] --> src/main.rs:5:16 [INFO] [stderr] | [INFO] [stderr] 5 | use std::net::{IpAddr,Ipv4Addr,ToSocketAddrs}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | self.is_connected.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.is_connected` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:283:9 [INFO] [stderr] | [INFO] [stderr] 283 | / match self.command_stream { [INFO] [stderr] 284 | | None => { [INFO] [stderr] 285 | | let conn = TcpStream::connect(SocketAddr::new(self.configuration.host,self.configuration.port)); [INFO] [stderr] 286 | | [INFO] [stderr] ... | [INFO] [stderr] 299 | | _ => { } [INFO] [stderr] 300 | | }; [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] 283 | if let None = self.command_stream { [INFO] [stderr] 284 | let conn = TcpStream::connect(SocketAddr::new(self.configuration.host,self.configuration.port)); [INFO] [stderr] 285 | [INFO] [stderr] 286 | match conn { [INFO] [stderr] 287 | Ok(mut c) => { [INFO] [stderr] 288 | let res = self.read_reply(Some(&mut c)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:330:29 [INFO] [stderr] | [INFO] [stderr] 330 | c.shutdown(Shutdown::Both); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:350:21 [INFO] [stderr] | [INFO] [stderr] 350 | c.shutdown(Shutdown::Both); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:363:72 [INFO] [stderr] | [INFO] [stderr] 363 | self.command_stream.is_none() && self.data_stream.is_none() && self.is_connected == false && self.is_authenticated == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.is_connected` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:363:102 [INFO] [stderr] | [INFO] [stderr] 363 | self.command_stream.is_none() && self.data_stream.is_none() && self.is_connected == false && self.is_authenticated == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.is_authenticated` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:422:9 [INFO] [stderr] | [INFO] [stderr] 422 | self.is_authenticated.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.is_authenticated` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:428:17 [INFO] [stderr] | [INFO] [stderr] 428 | self.raw_cmd(Some(&mut c), FtpCommandType::LIST, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:441:17 [INFO] [stderr] | [INFO] [stderr] 441 | self.raw_cmd(Some(&mut c), FtpCommandType::PASV, Some(if pasv { "true".to_owned() } else { "false".to_owned() })); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:456:17 [INFO] [stderr] | [INFO] [stderr] 456 | self.raw_cmd(Some(&mut c), FtpCommandType::PWD, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:469:17 [INFO] [stderr] | [INFO] [stderr] 469 | self.raw_cmd(Some(&mut c), FtpCommandType::SYST, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:485:17 [INFO] [stderr] | [INFO] [stderr] 485 | / match parameters { [INFO] [stderr] 486 | | Some(mut p) => { [INFO] [stderr] 487 | | let re = Regex::new(r"(\r|\r\n|\n)").unwrap(); [INFO] [stderr] 488 | | p = re.replace_all(&p, "").into_owned(); [INFO] [stderr] ... | [INFO] [stderr] 493 | | None => {} [INFO] [stderr] 494 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 485 | if let Some(mut p) = parameters { [INFO] [stderr] 486 | let re = Regex::new(r"(\r|\r\n|\n)").unwrap(); [INFO] [stderr] 487 | p = re.replace_all(&p, "").into_owned(); [INFO] [stderr] 488 | [INFO] [stderr] 489 | full_command.push_str(" "); [INFO] [stderr] 490 | full_command.push_str(&p); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:535:21 [INFO] [stderr] | [INFO] [stderr] 535 | full_message.len() > 0 && re_eol.find(&full_message[(full_message.len() - 2)..]) == None && re_msg.find(&full_message) == None [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!full_message.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:541:17 [INFO] [stderr] | [INFO] [stderr] 541 | / match re_msg.find(&full_message){ [INFO] [stderr] 542 | | Some(m) => { message = m.as_str().to_owned(); }, [INFO] [stderr] 543 | | None => {} [INFO] [stderr] 544 | | }; [INFO] [stderr] | |_________________^ help: try this: `if let Some(m) = re_msg.find(&full_message) { message = m.as_str().to_owned(); }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:546:20 [INFO] [stderr] | [INFO] [stderr] 546 | if full_message.len() != 0 && message.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!full_message.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:546:47 [INFO] [stderr] | [INFO] [stderr] 546 | if full_message.len() != 0 && message.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!message.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | / match ("speedtest.tele2.net", 0).to_socket_addrs() { [INFO] [stderr] 9 | | Ok(mut v) => { [INFO] [stderr] 10 | | match v.next() { [INFO] [stderr] 11 | | Some(v) => { [INFO] [stderr] ... | [INFO] [stderr] 37 | | Err(_) => {} [INFO] [stderr] 38 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 8 | if let Ok(mut v) = ("speedtest.tele2.net", 0).to_socket_addrs() { [INFO] [stderr] 9 | match v.next() { [INFO] [stderr] 10 | Some(v) => { [INFO] [stderr] 11 | let mut c: Configuration = Configuration { [INFO] [stderr] 12 | username: "anonymous".to_string(), [INFO] [stderr] 13 | password: "anonymous\n".to_string(), [INFO] [stderr] ... [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/main.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | / match v.next() { [INFO] [stderr] 11 | | Some(v) => { [INFO] [stderr] 12 | | let mut c: Configuration = Configuration { [INFO] [stderr] 13 | | username: "anonymous".to_string(), [INFO] [stderr] ... | [INFO] [stderr] 34 | | None => {} [INFO] [stderr] 35 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 10 | if let Some(v) = v.next() { [INFO] [stderr] 11 | let mut c: Configuration = Configuration { [INFO] [stderr] 12 | username: "anonymous".to_string(), [INFO] [stderr] 13 | password: "anonymous\n".to_string(), [INFO] [stderr] 14 | //host: IpAddr::V4(Ipv4Addr::new(127,0,0,1)), [INFO] [stderr] 15 | host: v.ip(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused imports: `IpAddr`, `Ipv4Addr` [INFO] [stderr] --> src/main.rs:5:16 [INFO] [stderr] | [INFO] [stderr] 5 | use std::net::{IpAddr,Ipv4Addr,ToSocketAddrs}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | self.is_connected.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.is_connected` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:283:9 [INFO] [stderr] | [INFO] [stderr] 283 | / match self.command_stream { [INFO] [stderr] 284 | | None => { [INFO] [stderr] 285 | | let conn = TcpStream::connect(SocketAddr::new(self.configuration.host,self.configuration.port)); [INFO] [stderr] 286 | | [INFO] [stderr] ... | [INFO] [stderr] 299 | | _ => { } [INFO] [stderr] 300 | | }; [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] 283 | if let None = self.command_stream { [INFO] [stderr] 284 | let conn = TcpStream::connect(SocketAddr::new(self.configuration.host,self.configuration.port)); [INFO] [stderr] 285 | [INFO] [stderr] 286 | match conn { [INFO] [stderr] 287 | Ok(mut c) => { [INFO] [stderr] 288 | let res = self.read_reply(Some(&mut c)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:330:29 [INFO] [stderr] | [INFO] [stderr] 330 | c.shutdown(Shutdown::Both); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:350:21 [INFO] [stderr] | [INFO] [stderr] 350 | c.shutdown(Shutdown::Both); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:363:72 [INFO] [stderr] | [INFO] [stderr] 363 | self.command_stream.is_none() && self.data_stream.is_none() && self.is_connected == false && self.is_authenticated == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.is_connected` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:363:102 [INFO] [stderr] | [INFO] [stderr] 363 | self.command_stream.is_none() && self.data_stream.is_none() && self.is_connected == false && self.is_authenticated == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.is_authenticated` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:422:9 [INFO] [stderr] | [INFO] [stderr] 422 | self.is_authenticated.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.is_authenticated` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:428:17 [INFO] [stderr] | [INFO] [stderr] 428 | self.raw_cmd(Some(&mut c), FtpCommandType::LIST, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:441:17 [INFO] [stderr] | [INFO] [stderr] 441 | self.raw_cmd(Some(&mut c), FtpCommandType::PASV, Some(if pasv { "true".to_owned() } else { "false".to_owned() })); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:456:17 [INFO] [stderr] | [INFO] [stderr] 456 | self.raw_cmd(Some(&mut c), FtpCommandType::PWD, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:469:17 [INFO] [stderr] | [INFO] [stderr] 469 | self.raw_cmd(Some(&mut c), FtpCommandType::SYST, None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:485:17 [INFO] [stderr] | [INFO] [stderr] 485 | / match parameters { [INFO] [stderr] 486 | | Some(mut p) => { [INFO] [stderr] 487 | | let re = Regex::new(r"(\r|\r\n|\n)").unwrap(); [INFO] [stderr] 488 | | p = re.replace_all(&p, "").into_owned(); [INFO] [stderr] ... | [INFO] [stderr] 493 | | None => {} [INFO] [stderr] 494 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 485 | if let Some(mut p) = parameters { [INFO] [stderr] 486 | let re = Regex::new(r"(\r|\r\n|\n)").unwrap(); [INFO] [stderr] 487 | p = re.replace_all(&p, "").into_owned(); [INFO] [stderr] 488 | [INFO] [stderr] 489 | full_command.push_str(" "); [INFO] [stderr] 490 | full_command.push_str(&p); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:535:21 [INFO] [stderr] | [INFO] [stderr] 535 | full_message.len() > 0 && re_eol.find(&full_message[(full_message.len() - 2)..]) == None && re_msg.find(&full_message) == None [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!full_message.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:541:17 [INFO] [stderr] | [INFO] [stderr] 541 | / match re_msg.find(&full_message){ [INFO] [stderr] 542 | | Some(m) => { message = m.as_str().to_owned(); }, [INFO] [stderr] 543 | | None => {} [INFO] [stderr] 544 | | }; [INFO] [stderr] | |_________________^ help: try this: `if let Some(m) = re_msg.find(&full_message) { message = m.as_str().to_owned(); }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:546:20 [INFO] [stderr] | [INFO] [stderr] 546 | if full_message.len() != 0 && message.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!full_message.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bifrost/net/std/ftp.rs:546:47 [INFO] [stderr] | [INFO] [stderr] 546 | if full_message.len() != 0 && message.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!message.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | / match ("speedtest.tele2.net", 0).to_socket_addrs() { [INFO] [stderr] 9 | | Ok(mut v) => { [INFO] [stderr] 10 | | match v.next() { [INFO] [stderr] 11 | | Some(v) => { [INFO] [stderr] ... | [INFO] [stderr] 37 | | Err(_) => {} [INFO] [stderr] 38 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 8 | if let Ok(mut v) = ("speedtest.tele2.net", 0).to_socket_addrs() { [INFO] [stderr] 9 | match v.next() { [INFO] [stderr] 10 | Some(v) => { [INFO] [stderr] 11 | let mut c: Configuration = Configuration { [INFO] [stderr] 12 | username: "anonymous".to_string(), [INFO] [stderr] 13 | password: "anonymous\n".to_string(), [INFO] [stderr] ... [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/main.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | / match v.next() { [INFO] [stderr] 11 | | Some(v) => { [INFO] [stderr] 12 | | let mut c: Configuration = Configuration { [INFO] [stderr] 13 | | username: "anonymous".to_string(), [INFO] [stderr] ... | [INFO] [stderr] 34 | | None => {} [INFO] [stderr] 35 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 10 | if let Some(v) = v.next() { [INFO] [stderr] 11 | let mut c: Configuration = Configuration { [INFO] [stderr] 12 | username: "anonymous".to_string(), [INFO] [stderr] 13 | password: "anonymous\n".to_string(), [INFO] [stderr] 14 | //host: IpAddr::V4(Ipv4Addr::new(127,0,0,1)), [INFO] [stderr] 15 | host: v.ip(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.41s [INFO] running `"docker" "inspect" "2204f87f0514b7afc30f94e58348fb8659a779a3924459efdc5348665e7fbf88"` [INFO] running `"docker" "rm" "-f" "2204f87f0514b7afc30f94e58348fb8659a779a3924459efdc5348665e7fbf88"` [INFO] [stdout] 2204f87f0514b7afc30f94e58348fb8659a779a3924459efdc5348665e7fbf88