[INFO] updating cached repository zyxw59/rssc [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/zyxw59/rssc [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/zyxw59/rssc" "work/ex/clippy-test-run/sources/stable/gh/zyxw59/rssc"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/zyxw59/rssc'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/zyxw59/rssc" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zyxw59/rssc"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zyxw59/rssc'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] bdef8f98447b009a14790a7ee3797662d5744b54 [INFO] sha for GitHub repo zyxw59/rssc: bdef8f98447b009a14790a7ee3797662d5744b54 [INFO] validating manifest of zyxw59/rssc 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 zyxw59/rssc 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 zyxw59/rssc [INFO] finished frobbing zyxw59/rssc [INFO] frobbed toml for zyxw59/rssc written to work/ex/clippy-test-run/sources/stable/gh/zyxw59/rssc/Cargo.toml [INFO] started frobbing zyxw59/rssc [INFO] finished frobbing zyxw59/rssc [INFO] frobbed toml for zyxw59/rssc written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zyxw59/rssc/Cargo.toml [INFO] crate zyxw59/rssc 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 zyxw59/rssc against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/zyxw59/rssc:/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 -Dclippy::into_iter_on_array" "-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] 9e93fc3214697c775eee895bd728e721342c260e49e0468e8e28d8768b14023c [INFO] running `"docker" "start" "-a" "9e93fc3214697c775eee895bd728e721342c260e49e0468e8e28d8768b14023c"` [INFO] [stderr] Checking libc v0.2.32 [INFO] [stderr] Checking void v1.0.2 [INFO] [stderr] Checking lazy_static v0.2.9 [INFO] [stderr] Checking regex-syntax v0.4.1 [INFO] [stderr] Checking nibble_vec v0.0.4 [INFO] [stderr] Checking utf8-ranges v1.0.0 [INFO] [stderr] Checking endian-type v0.1.2 [INFO] [stderr] Checking unicode_categories v0.1.1 [INFO] [stderr] Checking unicode-normalization v0.1.5 [INFO] [stderr] Checking unreachable v1.0.0 [INFO] [stderr] Checking thread_local v0.3.4 [INFO] [stderr] Checking radix_trie v0.1.3 [INFO] [stderr] Checking memchr v1.0.1 [INFO] [stderr] Checking aho-corasick v0.6.3 [INFO] [stderr] Checking regex v0.2.2 [INFO] [stderr] Checking rssc v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/re/program.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | for ref tok_i in input { [INFO] [stderr] | ^^^^^^^^^ ----- help: try: `let tok_i = &input;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [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/re/program.rs:259:13 [INFO] [stderr] | [INFO] [stderr] 259 | / match self[th.pc] { [INFO] [stderr] 260 | | Match => { [INFO] [stderr] 261 | | saves.push(th.saved); [INFO] [stderr] 262 | | } [INFO] [stderr] 263 | | // anything else is a failed match [INFO] [stderr] 264 | | _ => {} [INFO] [stderr] 265 | | } [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] 259 | if let Match = self[th.pc] { [INFO] [stderr] 260 | saves.push(th.saved); [INFO] [stderr] 261 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/token/re.rs:170:22 [INFO] [stderr] | [INFO] [stderr] 170 | pub fn as_option(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [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/token/re.rs:352:13 [INFO] [stderr] | [INFO] [stderr] 352 | / match self[th.pc] { [INFO] [stderr] 353 | | Match => { [INFO] [stderr] 354 | | saves.push(th.saved); [INFO] [stderr] 355 | | } [INFO] [stderr] 356 | | // anything else is a failed match [INFO] [stderr] 357 | | _ => {} [INFO] [stderr] 358 | | } [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] 352 | if let Match = self[th.pc] { [INFO] [stderr] 353 | saves.push(th.saved); [INFO] [stderr] 354 | } [INFO] [stderr] | [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/token/segment.rs:22:32 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn clone_from_vec(vec: &Vec) -> SegmentMap { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Segment]` [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/token/segment.rs:31:12 [INFO] [stderr] | [INFO] [stderr] 31 | if vec.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!vec.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: length comparison to zero [INFO] [stderr] --> src/token/segment.rs:44:12 [INFO] [stderr] | [INFO] [stderr] 44 | if key.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `key.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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/token/segment.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | fn new(vec: &Vec>) -> SegmentMapIter { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[HashMap]` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/token/mod.rs:48:27 [INFO] [stderr] | [INFO] [stderr] 48 | None => Token(c as u16), [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(c)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/token/mod.rs:54:15 [INFO] [stderr] | [INFO] [stderr] 54 | Token(c as u16) [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/token/mod.rs:173:16 [INFO] [stderr] | [INFO] [stderr] 173 | if chars.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `chars.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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/re/program.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | for ref tok_i in input { [INFO] [stderr] | ^^^^^^^^^ ----- help: try: `let tok_i = &input;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [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/re/program.rs:259:13 [INFO] [stderr] | [INFO] [stderr] 259 | / match self[th.pc] { [INFO] [stderr] 260 | | Match => { [INFO] [stderr] 261 | | saves.push(th.saved); [INFO] [stderr] 262 | | } [INFO] [stderr] 263 | | // anything else is a failed match [INFO] [stderr] 264 | | _ => {} [INFO] [stderr] 265 | | } [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] 259 | if let Match = self[th.pc] { [INFO] [stderr] 260 | saves.push(th.saved); [INFO] [stderr] 261 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/token/re.rs:170:22 [INFO] [stderr] | [INFO] [stderr] 170 | pub fn as_option(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [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/token/re.rs:352:13 [INFO] [stderr] | [INFO] [stderr] 352 | / match self[th.pc] { [INFO] [stderr] 353 | | Match => { [INFO] [stderr] 354 | | saves.push(th.saved); [INFO] [stderr] 355 | | } [INFO] [stderr] 356 | | // anything else is a failed match [INFO] [stderr] 357 | | _ => {} [INFO] [stderr] 358 | | } [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] 352 | if let Match = self[th.pc] { [INFO] [stderr] 353 | saves.push(th.saved); [INFO] [stderr] 354 | } [INFO] [stderr] | [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/token/segment.rs:22:32 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn clone_from_vec(vec: &Vec) -> SegmentMap { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[Segment]` [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/token/segment.rs:31:12 [INFO] [stderr] | [INFO] [stderr] 31 | if vec.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!vec.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: length comparison to zero [INFO] [stderr] --> src/token/segment.rs:44:12 [INFO] [stderr] | [INFO] [stderr] 44 | if key.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `key.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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/token/segment.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | fn new(vec: &Vec>) -> SegmentMapIter { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[HashMap]` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/token/mod.rs:48:27 [INFO] [stderr] | [INFO] [stderr] 48 | None => Token(c as u16), [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(c)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/token/mod.rs:54:15 [INFO] [stderr] | [INFO] [stderr] 54 | Token(c as u16) [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/token/mod.rs:173:16 [INFO] [stderr] | [INFO] [stderr] 173 | if chars.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `chars.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] Finished dev [unoptimized + debuginfo] target(s) in 12.33s [INFO] running `"docker" "inspect" "9e93fc3214697c775eee895bd728e721342c260e49e0468e8e28d8768b14023c"` [INFO] running `"docker" "rm" "-f" "9e93fc3214697c775eee895bd728e721342c260e49e0468e8e28d8768b14023c"` [INFO] [stdout] 9e93fc3214697c775eee895bd728e721342c260e49e0468e8e28d8768b14023c