[INFO] updating cached repository kamaboko123/ovs-rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/kamaboko123/ovs-rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/kamaboko123/ovs-rust" "work/ex/clippy-test-run/sources/stable/gh/kamaboko123/ovs-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/kamaboko123/ovs-rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/kamaboko123/ovs-rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kamaboko123/ovs-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kamaboko123/ovs-rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 68c53a190e401ba2ce9345e539a92bb1ab6a43b0 [INFO] sha for GitHub repo kamaboko123/ovs-rust: 68c53a190e401ba2ce9345e539a92bb1ab6a43b0 [INFO] validating manifest of kamaboko123/ovs-rust 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 kamaboko123/ovs-rust 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 kamaboko123/ovs-rust [INFO] finished frobbing kamaboko123/ovs-rust [INFO] frobbed toml for kamaboko123/ovs-rust written to work/ex/clippy-test-run/sources/stable/gh/kamaboko123/ovs-rust/Cargo.toml [INFO] started frobbing kamaboko123/ovs-rust [INFO] finished frobbing kamaboko123/ovs-rust [INFO] frobbed toml for kamaboko123/ovs-rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/kamaboko123/ovs-rust/Cargo.toml [INFO] crate kamaboko123/ovs-rust 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 kamaboko123/ovs-rust against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/kamaboko123/ovs-rust:/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] 7b65c12f6d1c445f0778895f6b3dc0888798117ade48360ddd688ea573dd17c0 [INFO] running `"docker" "start" "-a" "7b65c12f6d1c445f0778895f6b3dc0888798117ade48360ddd688ea573dd17c0"` [INFO] [stderr] Checking ovs-rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/ovs.rs:96:11 [INFO] [stderr] | [INFO] [stderr] 96 | if(self.error_detail == ""){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/ovs.rs:278:15 [INFO] [stderr] | [INFO] [stderr] 278 | if(p.name == port_name){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/ovs.rs:291:15 [INFO] [stderr] | [INFO] [stderr] 291 | if(bridges[i].name == bridge_name){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/ovs.rs:96:11 [INFO] [stderr] | [INFO] [stderr] 96 | if(self.error_detail == ""){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/ovs.rs:278:15 [INFO] [stderr] | [INFO] [stderr] 278 | if(p.name == port_name){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/ovs.rs:291:15 [INFO] [stderr] | [INFO] [stderr] 291 | if(bridges[i].name == bridge_name){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ovs.rs:274:13 [INFO] [stderr] | [INFO] [stderr] 274 | let mut ports = self.get_ports()?; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ovs.rs:275:13 [INFO] [stderr] | [INFO] [stderr] 275 | let mut bridges = self.get_bridges()?; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ovs.rs:274:13 [INFO] [stderr] | [INFO] [stderr] 274 | let mut ports = self.get_ports()?; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ovs.rs:275:13 [INFO] [stderr] | [INFO] [stderr] 275 | let mut bridges = self.get_bridges()?; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/ovs.rs:144:9 [INFO] [stderr] | [INFO] [stderr] 144 | / match self._send(query){ [INFO] [stderr] 145 | | Ok(_) => true, [INFO] [stderr] 146 | | Err(_) => false [INFO] [stderr] 147 | | } [INFO] [stderr] | |_________^ help: try this: `self._send(query).is_ok()` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/ovs.rs:163:56 [INFO] [stderr] | [INFO] [stderr] 163 | let name: &str= p["name"].as_str().ok_or( [INFO] [stderr] | ________________________________________________________^ [INFO] [stderr] 164 | | OvsError::new( [INFO] [stderr] 165 | | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 166 | | "key ['name'] is not found in response data" [INFO] [stderr] 167 | | ) [INFO] [stderr] 168 | | )?; [INFO] [stderr] | |_____________________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 163 | let name: &str= p["name"].as_str().ok_or_else(|| OvsError::new( [INFO] [stderr] 164 | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 165 | "key ['name'] is not found in response data" [INFO] [stderr] 166 | ))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/ovs.rs:170:60 [INFO] [stderr] | [INFO] [stderr] 170 | let uuid: &str= p["_uuid"][1].as_str().ok_or( [INFO] [stderr] | ____________________________________________________________^ [INFO] [stderr] 171 | | OvsError::new( [INFO] [stderr] 172 | | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 173 | | "key [_'uuid'][1] is not found in response data" [INFO] [stderr] 174 | | ) [INFO] [stderr] 175 | | )?; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 170 | let uuid: &str= p["_uuid"][1].as_str().ok_or_else(|| OvsError::new( [INFO] [stderr] 171 | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 172 | "key [_'uuid'][1] is not found in response data" [INFO] [stderr] 173 | ))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ovs.rs:177:24 [INFO] [stderr] | [INFO] [stderr] 177 | if p["trunks"][1].as_array().unwrap().len() > 0{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!p["trunks"][1].as_array().unwrap().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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/ovs.rs:225:57 [INFO] [stderr] | [INFO] [stderr] 225 | let name: &str= br["name"].as_str().ok_or( [INFO] [stderr] | _________________________________________________________^ [INFO] [stderr] 226 | | OvsError::new( [INFO] [stderr] 227 | | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 228 | | "key ['name'] is not found in response data" [INFO] [stderr] 229 | | ) [INFO] [stderr] 230 | | )?; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 225 | let name: &str= br["name"].as_str().ok_or_else(|| OvsError::new( [INFO] [stderr] 226 | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 227 | "key ['name'] is not found in response data" [INFO] [stderr] 228 | ))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/ovs.rs:232:61 [INFO] [stderr] | [INFO] [stderr] 232 | let uuid: &str= br["_uuid"][1].as_str().ok_or( [INFO] [stderr] | _____________________________________________________________^ [INFO] [stderr] 233 | | OvsError::new( [INFO] [stderr] 234 | | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 235 | | "key [_'uuid'][1] is not found in response data" [INFO] [stderr] 236 | | ) [INFO] [stderr] 237 | | )?; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 232 | let uuid: &str= br["_uuid"][1].as_str().ok_or_else(|| OvsError::new( [INFO] [stderr] 233 | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 234 | "key [_'uuid'][1] is not found in response data" [INFO] [stderr] 235 | ))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `bridges`. [INFO] [stderr] --> src/ovs.rs:290:19 [INFO] [stderr] | [INFO] [stderr] 290 | for i in 0..(bridges.len() - 1){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 290 | for in bridges.iter().take((bridges.len() - 1)){ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/ovs.rs:144:9 [INFO] [stderr] | [INFO] [stderr] 144 | / match self._send(query){ [INFO] [stderr] 145 | | Ok(_) => true, [INFO] [stderr] 146 | | Err(_) => false [INFO] [stderr] 147 | | } [INFO] [stderr] | |_________^ help: try this: `self._send(query).is_ok()` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/ovs.rs:163:56 [INFO] [stderr] | [INFO] [stderr] 163 | let name: &str= p["name"].as_str().ok_or( [INFO] [stderr] | ________________________________________________________^ [INFO] [stderr] 164 | | OvsError::new( [INFO] [stderr] 165 | | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 166 | | "key ['name'] is not found in response data" [INFO] [stderr] 167 | | ) [INFO] [stderr] 168 | | )?; [INFO] [stderr] | |_____________________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 163 | let name: &str= p["name"].as_str().ok_or_else(|| OvsError::new( [INFO] [stderr] 164 | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 165 | "key ['name'] is not found in response data" [INFO] [stderr] 166 | ))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/ovs.rs:170:60 [INFO] [stderr] | [INFO] [stderr] 170 | let uuid: &str= p["_uuid"][1].as_str().ok_or( [INFO] [stderr] | ____________________________________________________________^ [INFO] [stderr] 171 | | OvsError::new( [INFO] [stderr] 172 | | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 173 | | "key [_'uuid'][1] is not found in response data" [INFO] [stderr] 174 | | ) [INFO] [stderr] 175 | | )?; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 170 | let uuid: &str= p["_uuid"][1].as_str().ok_or_else(|| OvsError::new( [INFO] [stderr] 171 | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 172 | "key [_'uuid'][1] is not found in response data" [INFO] [stderr] 173 | ))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/ovs.rs:177:24 [INFO] [stderr] | [INFO] [stderr] 177 | if p["trunks"][1].as_array().unwrap().len() > 0{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!p["trunks"][1].as_array().unwrap().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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/ovs.rs:225:57 [INFO] [stderr] | [INFO] [stderr] 225 | let name: &str= br["name"].as_str().ok_or( [INFO] [stderr] | _________________________________________________________^ [INFO] [stderr] 226 | | OvsError::new( [INFO] [stderr] 227 | | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 228 | | "key ['name'] is not found in response data" [INFO] [stderr] 229 | | ) [INFO] [stderr] 230 | | )?; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 225 | let name: &str= br["name"].as_str().ok_or_else(|| OvsError::new( [INFO] [stderr] 226 | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 227 | "key ['name'] is not found in response data" [INFO] [stderr] 228 | ))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/ovs.rs:232:61 [INFO] [stderr] | [INFO] [stderr] 232 | let uuid: &str= br["_uuid"][1].as_str().ok_or( [INFO] [stderr] | _____________________________________________________________^ [INFO] [stderr] 233 | | OvsError::new( [INFO] [stderr] 234 | | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 235 | | "key [_'uuid'][1] is not found in response data" [INFO] [stderr] 236 | | ) [INFO] [stderr] 237 | | )?; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 232 | let uuid: &str= br["_uuid"][1].as_str().ok_or_else(|| OvsError::new( [INFO] [stderr] 233 | OvsErrorType::UnexpectedResponse, [INFO] [stderr] 234 | "key [_'uuid'][1] is not found in response data" [INFO] [stderr] 235 | ))?; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `bridges`. [INFO] [stderr] --> src/ovs.rs:290:19 [INFO] [stderr] | [INFO] [stderr] 290 | for i in 0..(bridges.len() - 1){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 290 | for in bridges.iter().take((bridges.len() - 1)){ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.16s [INFO] running `"docker" "inspect" "7b65c12f6d1c445f0778895f6b3dc0888798117ade48360ddd688ea573dd17c0"` [INFO] running `"docker" "rm" "-f" "7b65c12f6d1c445f0778895f6b3dc0888798117ade48360ddd688ea573dd17c0"` [INFO] [stdout] 7b65c12f6d1c445f0778895f6b3dc0888798117ade48360ddd688ea573dd17c0