[INFO] crate linux_ip 0.1.0 is already in cache [INFO] extracting crate linux_ip 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/linux_ip/0.1.0 [INFO] extracting crate linux_ip 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/linux_ip/0.1.0 [INFO] validating manifest of linux_ip-0.1.0 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 linux_ip-0.1.0 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 linux_ip-0.1.0 [INFO] finished frobbing linux_ip-0.1.0 [INFO] frobbed toml for linux_ip-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/linux_ip/0.1.0/Cargo.toml [INFO] started frobbing linux_ip-0.1.0 [INFO] finished frobbing linux_ip-0.1.0 [INFO] frobbed toml for linux_ip-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/linux_ip/0.1.0/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 linux_ip-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/linux_ip/0.1.0:/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] 62ee0b9d526569a57b7a849f9f84d1b48b3633d811091b468e5ebef16eb672b9 [INFO] running `"docker" "start" "-a" "62ee0b9d526569a57b7a849f9f84d1b48b3633d811091b468e5ebef16eb672b9"` [INFO] [stderr] Checking linux_ip v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/route.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | via: via, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `via` [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/route.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | via: via, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `via` [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: unneeded return statement [INFO] [stderr] --> src/addr.rs:40:7 [INFO] [stderr] | [INFO] [stderr] 40 | return ret [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `ret` [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/addr.rs:57:6 [INFO] [stderr] | [INFO] [stderr] 57 | return self.interfaces.len() - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.interfaces.len() - 1` [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/addr.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/addr.rs:121:3 [INFO] [stderr] | [INFO] [stderr] 121 | return ip_addr [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `ip_addr` [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/addr.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | return parse_from_string(&String::from_utf8_lossy(&out.stdout).into_owned()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `parse_from_string(&String::from_utf8_lossy(&out.stdout).into_owned())` [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/route.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | return options; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `options` [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/route.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/route.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | return self.routes.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.routes.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/route.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | return self.interfaces.get(&name.to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.interfaces.get(&name.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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/route.rs:141:24 [INFO] [stderr] | [INFO] [stderr] 141 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 142 | | if re_via_m.is_match(line) { [INFO] [stderr] 143 | | for cap in re_via_m.captures_iter(line) { [INFO] [stderr] 144 | | ip_route.add_via(cap.at(3).unwrap(), [INFO] [stderr] ... | [INFO] [stderr] 168 | | } [INFO] [stderr] 169 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 141 | } else if re_via_m.is_match(line) { [INFO] [stderr] 142 | for cap in re_via_m.captures_iter(line) { [INFO] [stderr] 143 | ip_route.add_via(cap.at(3).unwrap(), [INFO] [stderr] 144 | cap.at(1).unwrap(), [INFO] [stderr] 145 | Some(cap.at(2).unwrap().to_string()), [INFO] [stderr] 146 | cap.at(4).unwrap()) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/route.rs:149:28 [INFO] [stderr] | [INFO] [stderr] 149 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 150 | | if re_direct_m.is_match(line) { [INFO] [stderr] 151 | | for cap in re_direct_m.captures_iter(line) { [INFO] [stderr] 152 | | ip_route.add_via(cap.at(1).unwrap(), cap.at(2).unwrap(), None, &"") [INFO] [stderr] ... | [INFO] [stderr] 167 | | } [INFO] [stderr] 168 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 149 | } else if re_direct_m.is_match(line) { [INFO] [stderr] 150 | for cap in re_direct_m.captures_iter(line) { [INFO] [stderr] 151 | ip_route.add_via(cap.at(1).unwrap(), cap.at(2).unwrap(), None, &"") [INFO] [stderr] 152 | } [INFO] [stderr] 153 | } else { [INFO] [stderr] 154 | if re_unreachable_m.is_match(line) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/route.rs:154:32 [INFO] [stderr] | [INFO] [stderr] 154 | } else { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 155 | | if re_unreachable_m.is_match(line) { [INFO] [stderr] 156 | | for cap in re_unreachable_m.captures_iter(line) { [INFO] [stderr] 157 | | ip_route.add_dev(cap.at(3).unwrap(), [INFO] [stderr] ... | [INFO] [stderr] 166 | | } [INFO] [stderr] 167 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 154 | } else if re_unreachable_m.is_match(line) { [INFO] [stderr] 155 | for cap in re_unreachable_m.captures_iter(line) { [INFO] [stderr] 156 | ip_route.add_dev(cap.at(3).unwrap(), [INFO] [stderr] 157 | cap.at(2).unwrap(), [INFO] [stderr] 158 | format!("{} {}", [INFO] [stderr] 159 | &cap.at(2).unwrap(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/route.rs:181:5 [INFO] [stderr] | [INFO] [stderr] 181 | / return parse_from_string(format!("{}{}", [INFO] [stderr] 182 | | &String::from_utf8_lossy(&out_4.stdout).into_owned(), [INFO] [stderr] 183 | | &String::from_utf8_lossy(&out_6.stdout).into_owned()) [INFO] [stderr] 184 | | .as_str()); [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] 181 | parse_from_string(format!("{}{}", [INFO] [stderr] 182 | &String::from_utf8_lossy(&out_4.stdout).into_owned(), [INFO] [stderr] 183 | &String::from_utf8_lossy(&out_6.stdout).into_owned()) [INFO] [stderr] 184 | .as_str()) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/addr.rs:40:7 [INFO] [stderr] | [INFO] [stderr] 40 | return ret [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `ret` [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/addr.rs:57:6 [INFO] [stderr] | [INFO] [stderr] 57 | return self.interfaces.len() - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.interfaces.len() - 1` [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/addr.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/addr.rs:121:3 [INFO] [stderr] | [INFO] [stderr] 121 | return ip_addr [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `ip_addr` [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/addr.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | return parse_from_string(&String::from_utf8_lossy(&out.stdout).into_owned()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `parse_from_string(&String::from_utf8_lossy(&out.stdout).into_owned())` [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/route.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | return options; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `options` [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/route.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [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/route.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | return self.routes.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.routes.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/route.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | return self.interfaces.get(&name.to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.interfaces.get(&name.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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/route.rs:141:24 [INFO] [stderr] | [INFO] [stderr] 141 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 142 | | if re_via_m.is_match(line) { [INFO] [stderr] 143 | | for cap in re_via_m.captures_iter(line) { [INFO] [stderr] 144 | | ip_route.add_via(cap.at(3).unwrap(), [INFO] [stderr] ... | [INFO] [stderr] 168 | | } [INFO] [stderr] 169 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 141 | } else if re_via_m.is_match(line) { [INFO] [stderr] 142 | for cap in re_via_m.captures_iter(line) { [INFO] [stderr] 143 | ip_route.add_via(cap.at(3).unwrap(), [INFO] [stderr] 144 | cap.at(1).unwrap(), [INFO] [stderr] 145 | Some(cap.at(2).unwrap().to_string()), [INFO] [stderr] 146 | cap.at(4).unwrap()) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/route.rs:149:28 [INFO] [stderr] | [INFO] [stderr] 149 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 150 | | if re_direct_m.is_match(line) { [INFO] [stderr] 151 | | for cap in re_direct_m.captures_iter(line) { [INFO] [stderr] 152 | | ip_route.add_via(cap.at(1).unwrap(), cap.at(2).unwrap(), None, &"") [INFO] [stderr] ... | [INFO] [stderr] 167 | | } [INFO] [stderr] 168 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 149 | } else if re_direct_m.is_match(line) { [INFO] [stderr] 150 | for cap in re_direct_m.captures_iter(line) { [INFO] [stderr] 151 | ip_route.add_via(cap.at(1).unwrap(), cap.at(2).unwrap(), None, &"") [INFO] [stderr] 152 | } [INFO] [stderr] 153 | } else { [INFO] [stderr] 154 | if re_unreachable_m.is_match(line) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/route.rs:154:32 [INFO] [stderr] | [INFO] [stderr] 154 | } else { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 155 | | if re_unreachable_m.is_match(line) { [INFO] [stderr] 156 | | for cap in re_unreachable_m.captures_iter(line) { [INFO] [stderr] 157 | | ip_route.add_dev(cap.at(3).unwrap(), [INFO] [stderr] ... | [INFO] [stderr] 166 | | } [INFO] [stderr] 167 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 154 | } else if re_unreachable_m.is_match(line) { [INFO] [stderr] 155 | for cap in re_unreachable_m.captures_iter(line) { [INFO] [stderr] 156 | ip_route.add_dev(cap.at(3).unwrap(), [INFO] [stderr] 157 | cap.at(2).unwrap(), [INFO] [stderr] 158 | format!("{} {}", [INFO] [stderr] 159 | &cap.at(2).unwrap(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/route.rs:181:5 [INFO] [stderr] | [INFO] [stderr] 181 | / return parse_from_string(format!("{}{}", [INFO] [stderr] 182 | | &String::from_utf8_lossy(&out_4.stdout).into_owned(), [INFO] [stderr] 183 | | &String::from_utf8_lossy(&out_6.stdout).into_owned()) [INFO] [stderr] 184 | | .as_str()); [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] 181 | parse_from_string(format!("{}{}", [INFO] [stderr] 182 | &String::from_utf8_lossy(&out_4.stdout).into_owned(), [INFO] [stderr] 183 | &String::from_utf8_lossy(&out_6.stdout).into_owned()) [INFO] [stderr] 184 | .as_str()) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/addr.rs:23:44 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn set_mac_address(&mut self, mac: &String) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 23 | pub fn set_mac_address(&mut self, mac: &str) { [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `mac.clone()` to [INFO] [stderr] | [INFO] [stderr] 24 | self.mac_address = Some(mac.to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/addr.rs:50:41 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn add_interface(&mut self, name: &String) -> usize { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/addr.rs:91:33 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn parse_from_string(lines: &String) -> IpAddr { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/route.rs:44:42 [INFO] [stderr] | [INFO] [stderr] 44 | let x = self.via.clone().unwrap_or("".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/route.rs:86:47 [INFO] [stderr] | [INFO] [stderr] 86 | let _vec = self.interfaces.entry(key).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/addr.rs:23:44 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn set_mac_address(&mut self, mac: &String) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 23 | pub fn set_mac_address(&mut self, mac: &str) { [INFO] [stderr] | ^^^^ [INFO] [stderr] help: change `mac.clone()` to [INFO] [stderr] | [INFO] [stderr] 24 | self.mac_address = Some(mac.to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/addr.rs:50:41 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn add_interface(&mut self, name: &String) -> usize { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/addr.rs:91:33 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn parse_from_string(lines: &String) -> IpAddr { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/route.rs:44:42 [INFO] [stderr] | [INFO] [stderr] 44 | let x = self.via.clone().unwrap_or("".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/route.rs:86:47 [INFO] [stderr] | [INFO] [stderr] 86 | let _vec = self.interfaces.entry(key).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> tests/test_linux_ip_addr.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | return s [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `s` [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: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> tests/test_linux_ip_addr.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | assert!(ip_addr.as_commands("add").iter().find(|s| *s == "ip addr add fe80::d227:88ff:fed1:16d/64 dev p1p1.402").is_some()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|s| *s == "ip addr add fe80::d227:88ff:fed1:16d/64 dev p1p1.402").is_some()` with `any(|s| *s == "ip addr add fe80::d227:88ff:fed1:16d/64 dev p1p1.402")` [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: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> tests/test_linux_ip_addr.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | assert!(ip_addr.as_commands("del").iter().find(|s| *s == "ip addr del 10.1.0.11/16 dev br110").is_some()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: replace `find(|s| *s == "ip addr del 10.1.0.11/16 dev br110").is_some()` with `any(|s| *s == "ip addr del 10.1.0.11/16 dev br110")` [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: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> tests/test_linux_ip_addr.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | assert!(ip_addr.as_commands("del").iter().find(|s| *s == "ip addr del 47.11.1.1/26 dev eth0").is_some()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: replace `find(|s| *s == "ip addr del 47.11.1.1/26 dev eth0").is_some()` with `any(|s| *s == "ip addr del 47.11.1.1/26 dev eth0")` [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: unneeded return statement [INFO] [stderr] --> tests/test_linux_ip_route.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 17 | return s; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `s` [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] --> tests/test_linux_ip_route.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | return s; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `s` [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/test_linux_ip_route.rs:35:20 [INFO] [stderr] | [INFO] [stderr] 35 | ip_route.interfaces.get("eth2.1718").unwrap().first().unwrap().dev); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ip_route.interfaces["eth2.1718"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/test_linux_ip_route.rs:37:23 [INFO] [stderr] | [INFO] [stderr] 37 | assert_eq!(8, ip_route.interfaces.get("eth2.1718").unwrap().len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ip_route.interfaces["eth2.1718"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/test_linux_ip_route.rs:44:20 [INFO] [stderr] | [INFO] [stderr] 44 | ip_route.interfaces.get("eth2.1718").unwrap().first().unwrap().dev); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ip_route.interfaces["eth2.1718"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/test_linux_ip_route.rs:46:24 [INFO] [stderr] | [INFO] [stderr] 46 | assert_eq!(22, ip_route.interfaces.get("eth2.1718").unwrap().len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ip_route.interfaces["eth2.1718"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> tests/test_linux_ip_route.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | assert!(ip_route.as_commands("del") [INFO] [stderr] | _________________^ [INFO] [stderr] 54 | | .iter() [INFO] [stderr] 55 | | .find(|s| *s == "ip route del 112.164.91.136/29 dev eth3.207") [INFO] [stderr] 56 | | .is_some()); [INFO] [stderr] | |______________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|s| *s == "ip route del 112.164.91.136/29 dev eth3.207").is_some()` with `any(|s| *s == "ip route del 112.164.91.136/29 dev eth3.207")` [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: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> tests/test_linux_ip_route.rs:58:17 [INFO] [stderr] | [INFO] [stderr] 58 | assert!(ip_route.as_commands("add") [INFO] [stderr] | _________________^ [INFO] [stderr] 59 | | .iter() [INFO] [stderr] 60 | | .find(|s| *s == "ip route add 3c04:3a60:0:fe82::/64 via 3c04:3a60:0:2::21") [INFO] [stderr] 61 | | .is_some()); [INFO] [stderr] | |______________________^ [INFO] [stderr] | [INFO] [stderr] = note: replace `find(|s| *s == "ip route add 3c04:3a60:0:fe82::/64 via 3c04:3a60:0:2::21").is_some()` with `any(|s| *s == "ip route add 3c04:3a60:0:fe82::/64 via 3c04:3a60:0:2::21")` [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: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> tests/test_linux_ip_route.rs:70:17 [INFO] [stderr] | [INFO] [stderr] 70 | assert!(ip_route.as_commands("add") [INFO] [stderr] | _________________^ [INFO] [stderr] 71 | | .iter() [INFO] [stderr] 72 | | .find(|s| *s == "ip route add 0.0.0.0/0 via 47.11.1.1") [INFO] [stderr] 73 | | .is_some()); [INFO] [stderr] | |______________________^ [INFO] [stderr] | [INFO] [stderr] = note: replace `find(|s| *s == "ip route add 0.0.0.0/0 via 47.11.1.1").is_some()` with `any(|s| *s == "ip route add 0.0.0.0/0 via 47.11.1.1")` [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: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> tests/test_linux_ip_route.rs:74:17 [INFO] [stderr] | [INFO] [stderr] 74 | assert!(ip_route.as_commands("del") [INFO] [stderr] | _________________^ [INFO] [stderr] 75 | | .iter() [INFO] [stderr] 76 | | .find(|s| *s == "ip route del 0.0.0.0/0 via 47.11.1.1") [INFO] [stderr] 77 | | .is_some()); [INFO] [stderr] | |______________________^ [INFO] [stderr] | [INFO] [stderr] = note: replace `find(|s| *s == "ip route del 0.0.0.0/0 via 47.11.1.1").is_some()` with `any(|s| *s == "ip route del 0.0.0.0/0 via 47.11.1.1")` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.92s [INFO] running `"docker" "inspect" "62ee0b9d526569a57b7a849f9f84d1b48b3633d811091b468e5ebef16eb672b9"` [INFO] running `"docker" "rm" "-f" "62ee0b9d526569a57b7a849f9f84d1b48b3633d811091b468e5ebef16eb672b9"` [INFO] [stdout] 62ee0b9d526569a57b7a849f9f84d1b48b3633d811091b468e5ebef16eb672b9