[INFO] updating cached repository prataprc/ri [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/prataprc/ri [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/prataprc/ri" "work/ex/clippy-test-run/sources/stable/gh/prataprc/ri"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/prataprc/ri'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/prataprc/ri" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/prataprc/ri"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/prataprc/ri'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] e51b6b5ffcbfa2b0553b28e21421813d4c6aa711 [INFO] sha for GitHub repo prataprc/ri: e51b6b5ffcbfa2b0553b28e21421813d4c6aa711 [INFO] validating manifest of prataprc/ri 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 prataprc/ri 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 prataprc/ri [INFO] finished frobbing prataprc/ri [INFO] frobbed toml for prataprc/ri written to work/ex/clippy-test-run/sources/stable/gh/prataprc/ri/Cargo.toml [INFO] started frobbing prataprc/ri [INFO] finished frobbing prataprc/ri [INFO] frobbed toml for prataprc/ri written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/prataprc/ri/Cargo.toml [INFO] crate prataprc/ri 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 prataprc/ri against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/prataprc/ri:/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] 10aabdc377403f5b092b0c72a7637b039cf3b1376bc318493ec1951484a955c2 [INFO] running `"docker" "start" "-a" "10aabdc377403f5b092b0c72a7637b039cf3b1376bc318493ec1951484a955c2"` [INFO] [stderr] Checking aho-corasick v0.6.5 [INFO] [stderr] Checking regex v1.0.1 [INFO] [stderr] Checking ri v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/bootstrap.rs:195:5 [INFO] [stderr] | [INFO] [stderr] 195 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/bootstrap.rs:204:5 [INFO] [stderr] | [INFO] [stderr] 204 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/bootstrap.rs:213:5 [INFO] [stderr] | [INFO] [stderr] 213 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/bootstrap.rs:195:5 [INFO] [stderr] | [INFO] [stderr] 195 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/bootstrap.rs:204:5 [INFO] [stderr] | [INFO] [stderr] 204 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/bootstrap.rs:213:5 [INFO] [stderr] | [INFO] [stderr] 213 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bootstrap.rs:16:8 [INFO] [stderr] | [INFO] [stderr] 16 | if matches.free.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `matches.free.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: trivial regex [INFO] [stderr] --> src/bootstrap.rs:40:45 [INFO] [stderr] | [INFO] [stderr] 40 | static ref RE_B: Regex = Regex::new(r"Building stage0 std").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/bootstrap.rs:43:28 [INFO] [stderr] | [INFO] [stderr] 43 | while let Some(line) = lines.next() { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `for line in lines { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [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/bootstrap.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | / match RE_C.captures(line) { [INFO] [stderr] 47 | | Some(captures) => { [INFO] [stderr] 48 | | let name = &captures[1]; [INFO] [stderr] 49 | | let local = captures.get(3).map_or(false, |_| true); [INFO] [stderr] ... | [INFO] [stderr] 52 | | None => () [INFO] [stderr] 53 | | }; [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] 46 | if let Some(captures) = RE_C.captures(line) { [INFO] [stderr] 47 | let name = &captures[1]; [INFO] [stderr] 48 | let local = captures.get(3).map_or(false, |_| true); [INFO] [stderr] 49 | add_beta_package(packages, name, local); [INFO] [stderr] 50 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bootstrap.rs:65:8 [INFO] [stderr] | [INFO] [stderr] 65 | if ok == false { [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `!ok` [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: trivial regex [INFO] [stderr] --> src/bootstrap.rs:74:45 [INFO] [stderr] | [INFO] [stderr] 74 | static ref RE_T: Regex = Regex::new(r"Building stage0 test").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/bootstrap.rs:75:45 [INFO] [stderr] | [INFO] [stderr] 75 | static ref RE_R: Regex = Regex::new(r"Building stage0 compiler").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/bootstrap.rs:76:45 [INFO] [stderr] | [INFO] [stderr] 76 | static ref RE_C: Regex = Regex::new(r"Building stage0 codegen").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/bootstrap.rs:77:43 [INFO] [stderr] | [INFO] [stderr] 77 | static ref RE: Regex = Regex::new(r"Building stage1 std").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/bootstrap.rs:95:28 [INFO] [stderr] | [INFO] [stderr] 95 | while let Some(line) = lines.next() { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `for line in lines { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [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/bootstrap.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / match RE_C.captures(line) { [INFO] [stderr] 109 | | Some(captures) => { [INFO] [stderr] 110 | | let name = &captures[1]; [INFO] [stderr] 111 | | let local = captures.get(3).map_or(false, |_| true); [INFO] [stderr] ... | [INFO] [stderr] 114 | | None => () [INFO] [stderr] 115 | | }; [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] 108 | if let Some(captures) = RE_C.captures(line) { [INFO] [stderr] 109 | let name = &captures[1]; [INFO] [stderr] 110 | let local = captures.get(3).map_or(false, |_| true); [INFO] [stderr] 111 | add_stage0_package(packages, name, local, what.clone()); [INFO] [stderr] 112 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bootstrap.rs:126:8 [INFO] [stderr] | [INFO] [stderr] 126 | if ok == false { [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `!ok` [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: trivial regex [INFO] [stderr] --> src/bootstrap.rs:135:45 [INFO] [stderr] | [INFO] [stderr] 135 | static ref RE_T: Regex = Regex::new(r"Building stage1 test").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/bootstrap.rs:136:45 [INFO] [stderr] | [INFO] [stderr] 136 | static ref RE_R: Regex = Regex::new(r"Building stage1 compiler").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/bootstrap.rs:137:45 [INFO] [stderr] | [INFO] [stderr] 137 | static ref RE_C: Regex = Regex::new(r"Building stage1 codegen").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/bootstrap.rs:138:43 [INFO] [stderr] | [INFO] [stderr] 138 | static ref RE: Regex = Regex::new(r"Assembling stage2 compiler").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/bootstrap.rs:156:28 [INFO] [stderr] | [INFO] [stderr] 156 | while let Some(line) = lines.next() { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `for line in lines { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [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/bootstrap.rs:169:5 [INFO] [stderr] | [INFO] [stderr] 169 | / match RE_C.captures(line) { [INFO] [stderr] 170 | | Some(captures) => { [INFO] [stderr] 171 | | let name = &captures[1]; [INFO] [stderr] 172 | | let local = captures.get(3).map_or(false, |_| true); [INFO] [stderr] ... | [INFO] [stderr] 175 | | None => () [INFO] [stderr] 176 | | }; [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] 169 | if let Some(captures) = RE_C.captures(line) { [INFO] [stderr] 170 | let name = &captures[1]; [INFO] [stderr] 171 | let local = captures.get(3).map_or(false, |_| true); [INFO] [stderr] 172 | add_stage1_package(packages, name, local, what.clone()); [INFO] [stderr] 173 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bootstrap.rs:187:8 [INFO] [stderr] | [INFO] [stderr] 187 | if ok == false { [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `!ok` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bootstrap.rs:194:22 [INFO] [stderr] | [INFO] [stderr] 194 | fn list_packages(ps: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Package]` [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] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:21:8 [INFO] [stderr] | [INFO] [stderr] 21 | if matches.free.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `matches.free.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: passing a unit value to a function [INFO] [stderr] --> src/main.rs:26:27 [INFO] [stderr] | [INFO] [stderr] 26 | "bootstrap" => Ok(cmd_bootstrap(matches.free)?), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bootstrap.rs:16:8 [INFO] [stderr] | [INFO] [stderr] 16 | if matches.free.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `matches.free.is_empty()` [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [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] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 26 | "bootstrap" => Ok(()), [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/bootstrap.rs:40:45 [INFO] [stderr] | [INFO] [stderr] 40 | static ref RE_B: Regex = Regex::new(r"Building stage0 std").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/bootstrap.rs:43:28 [INFO] [stderr] | [INFO] [stderr] 43 | while let Some(line) = lines.next() { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `for line in lines { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [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/bootstrap.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | / match RE_C.captures(line) { [INFO] [stderr] 47 | | Some(captures) => { [INFO] [stderr] 48 | | let name = &captures[1]; [INFO] [stderr] 49 | | let local = captures.get(3).map_or(false, |_| true); [INFO] [stderr] ... | [INFO] [stderr] 52 | | None => () [INFO] [stderr] 53 | | }; [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] 46 | if let Some(captures) = RE_C.captures(line) { [INFO] [stderr] 47 | let name = &captures[1]; [INFO] [stderr] 48 | let local = captures.get(3).map_or(false, |_| true); [INFO] [stderr] 49 | add_beta_package(packages, name, local); [INFO] [stderr] 50 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bootstrap.rs:65:8 [INFO] [stderr] | [INFO] [stderr] 65 | if ok == false { [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `!ok` [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: trivial regex [INFO] [stderr] --> src/bootstrap.rs:74:45 [INFO] [stderr] | [INFO] [stderr] 74 | static ref RE_T: Regex = Regex::new(r"Building stage0 test").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/bootstrap.rs:75:45 [INFO] [stderr] | [INFO] [stderr] 75 | static ref RE_R: Regex = Regex::new(r"Building stage0 compiler").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/bootstrap.rs:76:45 [INFO] [stderr] | [INFO] [stderr] 76 | static ref RE_C: Regex = Regex::new(r"Building stage0 codegen").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/bootstrap.rs:77:43 [INFO] [stderr] | [INFO] [stderr] 77 | static ref RE: Regex = Regex::new(r"Building stage1 std").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/bootstrap.rs:95:28 [INFO] [stderr] | [INFO] [stderr] 95 | while let Some(line) = lines.next() { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `for line in lines { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [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/bootstrap.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / match RE_C.captures(line) { [INFO] [stderr] 109 | | Some(captures) => { [INFO] [stderr] 110 | | let name = &captures[1]; [INFO] [stderr] 111 | | let local = captures.get(3).map_or(false, |_| true); [INFO] [stderr] ... | [INFO] [stderr] 114 | | None => () [INFO] [stderr] 115 | | }; [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] 108 | if let Some(captures) = RE_C.captures(line) { [INFO] [stderr] 109 | let name = &captures[1]; [INFO] [stderr] 110 | let local = captures.get(3).map_or(false, |_| true); [INFO] [stderr] 111 | add_stage0_package(packages, name, local, what.clone()); [INFO] [stderr] 112 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bootstrap.rs:126:8 [INFO] [stderr] | [INFO] [stderr] 126 | if ok == false { [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `!ok` [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: trivial regex [INFO] [stderr] --> src/bootstrap.rs:135:45 [INFO] [stderr] | [INFO] [stderr] 135 | static ref RE_T: Regex = Regex::new(r"Building stage1 test").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/bootstrap.rs:136:45 [INFO] [stderr] | [INFO] [stderr] 136 | static ref RE_R: Regex = Regex::new(r"Building stage1 compiler").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/bootstrap.rs:137:45 [INFO] [stderr] | [INFO] [stderr] 137 | static ref RE_C: Regex = Regex::new(r"Building stage1 codegen").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/bootstrap.rs:138:43 [INFO] [stderr] | [INFO] [stderr] 138 | static ref RE: Regex = Regex::new(r"Assembling stage2 compiler").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/bootstrap.rs:156:28 [INFO] [stderr] | [INFO] [stderr] 156 | while let Some(line) = lines.next() { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `for line in lines { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [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/bootstrap.rs:169:5 [INFO] [stderr] | [INFO] [stderr] 169 | / match RE_C.captures(line) { [INFO] [stderr] 170 | | Some(captures) => { [INFO] [stderr] 171 | | let name = &captures[1]; [INFO] [stderr] 172 | | let local = captures.get(3).map_or(false, |_| true); [INFO] [stderr] ... | [INFO] [stderr] 175 | | None => () [INFO] [stderr] 176 | | }; [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] 169 | if let Some(captures) = RE_C.captures(line) { [INFO] [stderr] 170 | let name = &captures[1]; [INFO] [stderr] 171 | let local = captures.get(3).map_or(false, |_| true); [INFO] [stderr] 172 | add_stage1_package(packages, name, local, what.clone()); [INFO] [stderr] 173 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/bootstrap.rs:187:8 [INFO] [stderr] | [INFO] [stderr] 187 | if ok == false { [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `!ok` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bootstrap.rs:194:22 [INFO] [stderr] | [INFO] [stderr] 194 | fn list_packages(ps: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Package]` [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] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:21:8 [INFO] [stderr] | [INFO] [stderr] 21 | if matches.free.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `matches.free.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: passing a unit value to a function [INFO] [stderr] --> src/main.rs:26:27 [INFO] [stderr] | [INFO] [stderr] 26 | "bootstrap" => Ok(cmd_bootstrap(matches.free)?), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 26 | "bootstrap" => Ok(()), [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5.60s [INFO] running `"docker" "inspect" "10aabdc377403f5b092b0c72a7637b039cf3b1376bc318493ec1951484a955c2"` [INFO] running `"docker" "rm" "-f" "10aabdc377403f5b092b0c72a7637b039cf3b1376bc318493ec1951484a955c2"` [INFO] [stdout] 10aabdc377403f5b092b0c72a7637b039cf3b1376bc318493ec1951484a955c2