[INFO] crate range-map 0.1.5 is already in cache [INFO] extracting crate range-map 0.1.5 into work/ex/clippy-test-run/sources/stable/reg/range-map/0.1.5 [INFO] extracting crate range-map 0.1.5 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/range-map/0.1.5 [INFO] validating manifest of range-map-0.1.5 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 range-map-0.1.5 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 range-map-0.1.5 [INFO] finished frobbing range-map-0.1.5 [INFO] frobbed toml for range-map-0.1.5 written to work/ex/clippy-test-run/sources/stable/reg/range-map/0.1.5/Cargo.toml [INFO] started frobbing range-map-0.1.5 [INFO] finished frobbing range-map-0.1.5 [INFO] frobbed toml for range-map-0.1.5 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/range-map/0.1.5/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 range-map-0.1.5 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/range-map/0.1.5:/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] 0c7deedf0e4840cb43d53a795cbf1193a233cb15ac6ada20e1498ef64cafe007 [INFO] running `"docker" "start" "-a" "0c7deedf0e4840cb43d53a795cbf1193a233cb15ac6ada20e1498ef64cafe007"` [INFO] [stderr] Checking range-map v0.1.5 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:49:17 [INFO] [stderr] | [INFO] [stderr] 49 | Range { start: start, end: end } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `start` [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/lib.rs:49:31 [INFO] [stderr] | [INFO] [stderr] 49 | Range { start: start, end: end } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [INFO] [stderr] | [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/lib.rs:49:17 [INFO] [stderr] | [INFO] [stderr] 49 | Range { start: start, end: end } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `start` [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/lib.rs:49:31 [INFO] [stderr] | [INFO] [stderr] 49 | Range { start: start, end: end } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [INFO] [stderr] | [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: you should consider deriving a `Default` implementation for `RangeMap` [INFO] [stderr] --> src/lib.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | / pub fn new() -> RangeMap { [INFO] [stderr] 150 | | RangeMap { [INFO] [stderr] 151 | | elts: Vec::new(), [INFO] [stderr] 152 | | } [INFO] [stderr] 153 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 107 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:215:5 [INFO] [stderr] | [INFO] [stderr] 215 | / pub fn keys_values<'a> (&'a self) -> PairIter<'a, T, V> { [INFO] [stderr] 216 | | PairIter { [INFO] [stderr] 217 | | map: self, [INFO] [stderr] 218 | | next_range_idx: if self.is_empty() { None } else { Some(0) }, [INFO] [stderr] 219 | | next_key: if self.is_empty() { T::min_value() } else { self.elts[0].0.start }, [INFO] [stderr] 220 | | } [INFO] [stderr] 221 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `RangeSet` [INFO] [stderr] --> src/lib.rs:437:5 [INFO] [stderr] | [INFO] [stderr] 437 | / pub fn new() -> RangeSet { [INFO] [stderr] 438 | | RangeSet { map: RangeMap::new() } [INFO] [stderr] 439 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 435 | impl Default for RangeSet { [INFO] [stderr] 436 | fn default() -> Self { [INFO] [stderr] 437 | Self::new() [INFO] [stderr] 438 | } [INFO] [stderr] 439 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:465:5 [INFO] [stderr] | [INFO] [stderr] 465 | / pub fn ranges<'a>(&'a self) -> RangeIter<'a, T> { [INFO] [stderr] 466 | | RangeIter { [INFO] [stderr] 467 | | set: self, [INFO] [stderr] 468 | | next_idx: 0, [INFO] [stderr] 469 | | } [INFO] [stderr] 470 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:473:5 [INFO] [stderr] | [INFO] [stderr] 473 | / pub fn elements<'a>(&'a self) -> EltIter<'a, T> { [INFO] [stderr] 474 | | if self.map.elts.is_empty() { [INFO] [stderr] 475 | | EltIter { set: self, next_range_idx: None, next_elt: T::min_value() } [INFO] [stderr] 476 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 482 | | } [INFO] [stderr] 483 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:528:17 [INFO] [stderr] | [INFO] [stderr] 528 | / if let &mut Some(ref mut r) = cur { [INFO] [stderr] 529 | | *r = r.cover(next); [INFO] [stderr] 530 | | } else { [INFO] [stderr] 531 | | *cur = Some(*next); [INFO] [stderr] 532 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 528 | if let Some(ref mut r) = *cur { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `RangeMultiMap` [INFO] [stderr] --> src/lib.rs:647:5 [INFO] [stderr] | [INFO] [stderr] 647 | / pub fn new() -> RangeMultiMap { [INFO] [stderr] 648 | | RangeMultiMap { elts: Vec::new() } [INFO] [stderr] 649 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 613 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `RangeMap` [INFO] [stderr] --> src/lib.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | / pub fn new() -> RangeMap { [INFO] [stderr] 150 | | RangeMap { [INFO] [stderr] 151 | | elts: Vec::new(), [INFO] [stderr] 152 | | } [INFO] [stderr] 153 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 107 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:215:5 [INFO] [stderr] | [INFO] [stderr] 215 | / pub fn keys_values<'a> (&'a self) -> PairIter<'a, T, V> { [INFO] [stderr] 216 | | PairIter { [INFO] [stderr] 217 | | map: self, [INFO] [stderr] 218 | | next_range_idx: if self.is_empty() { None } else { Some(0) }, [INFO] [stderr] 219 | | next_key: if self.is_empty() { T::min_value() } else { self.elts[0].0.start }, [INFO] [stderr] 220 | | } [INFO] [stderr] 221 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `RangeSet` [INFO] [stderr] --> src/lib.rs:437:5 [INFO] [stderr] | [INFO] [stderr] 437 | / pub fn new() -> RangeSet { [INFO] [stderr] 438 | | RangeSet { map: RangeMap::new() } [INFO] [stderr] 439 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 435 | impl Default for RangeSet { [INFO] [stderr] 436 | fn default() -> Self { [INFO] [stderr] 437 | Self::new() [INFO] [stderr] 438 | } [INFO] [stderr] 439 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:465:5 [INFO] [stderr] | [INFO] [stderr] 465 | / pub fn ranges<'a>(&'a self) -> RangeIter<'a, T> { [INFO] [stderr] 466 | | RangeIter { [INFO] [stderr] 467 | | set: self, [INFO] [stderr] 468 | | next_idx: 0, [INFO] [stderr] 469 | | } [INFO] [stderr] 470 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:473:5 [INFO] [stderr] | [INFO] [stderr] 473 | / pub fn elements<'a>(&'a self) -> EltIter<'a, T> { [INFO] [stderr] 474 | | if self.map.elts.is_empty() { [INFO] [stderr] 475 | | EltIter { set: self, next_range_idx: None, next_elt: T::min_value() } [INFO] [stderr] 476 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 482 | | } [INFO] [stderr] 483 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:528:17 [INFO] [stderr] | [INFO] [stderr] 528 | / if let &mut Some(ref mut r) = cur { [INFO] [stderr] 529 | | *r = r.cover(next); [INFO] [stderr] 530 | | } else { [INFO] [stderr] 531 | | *cur = Some(*next); [INFO] [stderr] 532 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 528 | if let Some(ref mut r) = *cur { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `RangeMultiMap` [INFO] [stderr] --> src/lib.rs:647:5 [INFO] [stderr] | [INFO] [stderr] 647 | / pub fn new() -> RangeMultiMap { [INFO] [stderr] 648 | | RangeMultiMap { elts: Vec::new() } [INFO] [stderr] 649 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 613 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:776:45 [INFO] [stderr] | [INFO] [stderr] 776 | Box::new(self.elts.shrink().map(|v| RangeMultiMap::from_vec(v))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `RangeMultiMap::from_vec` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:789:45 [INFO] [stderr] | [INFO] [stderr] 789 | Box::new(self.elts.shrink().map(|v| RangeMap::from_norm_vec(v))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `RangeMap::from_norm_vec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:799:49 [INFO] [stderr] | [INFO] [stderr] 799 | Box::new(self.map.elts.shrink().map(|v| RangeSet::from_norm_vec(v))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `RangeSet::from_norm_vec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.96s [INFO] running `"docker" "inspect" "0c7deedf0e4840cb43d53a795cbf1193a233cb15ac6ada20e1498ef64cafe007"` [INFO] running `"docker" "rm" "-f" "0c7deedf0e4840cb43d53a795cbf1193a233cb15ac6ada20e1498ef64cafe007"` [INFO] [stdout] 0c7deedf0e4840cb43d53a795cbf1193a233cb15ac6ada20e1498ef64cafe007