[INFO] updating cached repository mstange/merge-dags [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/mstange/merge-dags [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/mstange/merge-dags" "work/ex/clippy-test-run/sources/stable/gh/mstange/merge-dags"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/mstange/merge-dags'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/mstange/merge-dags" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mstange/merge-dags"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mstange/merge-dags'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ab5626cdda1412d1833c8a6d5c08a57ee90ab230 [INFO] sha for GitHub repo mstange/merge-dags: ab5626cdda1412d1833c8a6d5c08a57ee90ab230 [INFO] validating manifest of mstange/merge-dags 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 mstange/merge-dags 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 mstange/merge-dags [INFO] finished frobbing mstange/merge-dags [INFO] frobbed toml for mstange/merge-dags written to work/ex/clippy-test-run/sources/stable/gh/mstange/merge-dags/Cargo.toml [INFO] started frobbing mstange/merge-dags [INFO] finished frobbing mstange/merge-dags [INFO] frobbed toml for mstange/merge-dags written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mstange/merge-dags/Cargo.toml [INFO] crate mstange/merge-dags 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 mstange/merge-dags 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-1/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/mstange/merge-dags:/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] 48c1d5a1ce2d061f96a5fda23e452ccd857eb078262971a1024c1d27587ae919 [INFO] running `"docker" "start" "-a" "48c1d5a1ce2d061f96a5fda23e452ccd857eb078262971a1024c1d27587ae919"` [INFO] [stderr] Checking num-complex v0.1.43 [INFO] [stderr] Checking euclid v0.17.2 [INFO] [stderr] Checking num-bigint v0.1.43 [INFO] [stderr] Checking num-rational v0.1.42 [INFO] [stderr] Checking num v0.1.42 [INFO] [stderr] Checking merge-dags v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:443:17 [INFO] [stderr] | [INFO] [stderr] 443 | frame: frame, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `frame` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/lib.rs:533:25 [INFO] [stderr] | [INFO] [stderr] 533 | let h = clamp(s.next()?, 1, height - y); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/lib.rs:565:25 [INFO] [stderr] | [INFO] [stderr] 565 | let h = clamp(s.next()?, 1, height - y); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:443:17 [INFO] [stderr] | [INFO] [stderr] 443 | frame: frame, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `frame` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/lib.rs:533:25 [INFO] [stderr] | [INFO] [stderr] 533 | let h = clamp(s.next()?, 1, height - y); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/lib.rs:565:25 [INFO] [stderr] | [INFO] [stderr] 565 | let h = clamp(s.next()?, 1, height - y); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: item `DirectedAcyclicGraph` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/lib.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | / impl DirectedAcyclicGraph { [INFO] [stderr] 21 | | pub fn new() -> DirectedAcyclicGraph { [INFO] [stderr] 22 | | DirectedAcyclicGraph { [INFO] [stderr] 23 | | nodes_info: Vec::new(), [INFO] [stderr] ... | [INFO] [stderr] 79 | | } [INFO] [stderr] 80 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `DirectedAcyclicGraph` [INFO] [stderr] --> src/lib.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn new() -> DirectedAcyclicGraph { [INFO] [stderr] 22 | | DirectedAcyclicGraph { [INFO] [stderr] 23 | | nodes_info: Vec::new(), [INFO] [stderr] 24 | | direct_predecessor_list: Vec::new(), [INFO] [stderr] 25 | | } [INFO] [stderr] 26 | | } [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] 15 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `RetainedDisplayList` [INFO] [stderr] --> src/lib.rs:114:5 [INFO] [stderr] | [INFO] [stderr] 114 | / pub fn new() -> RetainedDisplayList { [INFO] [stderr] 115 | | RetainedDisplayList { [INFO] [stderr] 116 | | items: Vec::new(), [INFO] [stderr] 117 | | dag: DirectedAcyclicGraph::new(), [INFO] [stderr] 118 | | key_lookup: HashMap::new(), [INFO] [stderr] 119 | | } [INFO] [stderr] 120 | | } [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] 113 | impl Default for RetainedDisplayList { [INFO] [stderr] 114 | fn default() -> Self { [INFO] [stderr] 115 | Self::new() [INFO] [stderr] 116 | } [INFO] [stderr] 117 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/lib.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | / match &self.old_items[direct_predecessor] { [INFO] [stderr] 282 | | &OldItemInfo::Unused(_) => panic!("should only encounter used predecessors"), [INFO] [stderr] 283 | | &OldItemInfo::BeingProcessed => panic!("somebody forgot to clean up"), [INFO] [stderr] 284 | | &OldItemInfo::Discarded(ref discarded_item_direct_predecessors) => { [INFO] [stderr] ... | [INFO] [stderr] 289 | | } [INFO] [stderr] 290 | | } [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: try [INFO] [stderr] | [INFO] [stderr] 281 | match self.old_items[direct_predecessor] { [INFO] [stderr] 282 | OldItemInfo::Unused(_) => panic!("should only encounter used predecessors"), [INFO] [stderr] 283 | OldItemInfo::BeingProcessed => panic!("somebody forgot to clean up"), [INFO] [stderr] 284 | OldItemInfo::Discarded(ref discarded_item_direct_predecessors) => { [INFO] [stderr] 285 | result.extend(discarded_item_direct_predecessors) [INFO] [stderr] 286 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: parameter of type `HashSet` should be generalized over different hashers [INFO] [stderr] --> src/lib.rs:301:21 [INFO] [stderr] | [INFO] [stderr] 301 | changed_frames: HashSet, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 298 | pub fn merge_lists( [INFO] [stderr] 299 | old_list: RetainedDisplayList, [INFO] [stderr] 300 | new_list: Vec, [INFO] [stderr] 301 | changed_frames: HashSet, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:309:42 [INFO] [stderr] | [INFO] [stderr] 309 | old_items: items.into_iter().map(|i| OldItemInfo::Unused(i)).collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `OldItemInfo::Unused` [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: parameter of type `HashSet` should be generalized over different hashers [INFO] [stderr] --> src/lib.rs:330:21 [INFO] [stderr] | [INFO] [stderr] 330 | changed_frames: HashSet, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 327 | pub fn merge_lists_badly( [INFO] [stderr] 328 | old_list: RetainedDisplayList, [INFO] [stderr] 329 | new_list: Vec, [INFO] [stderr] 330 | changed_frames: HashSet, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:338:31 [INFO] [stderr] | [INFO] [stderr] 338 | items.into_iter().map(|i| OldItemInfo::Unused(i)).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `OldItemInfo::Unused` [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: item `TrueDisplayList` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/lib.rs:419:1 [INFO] [stderr] | [INFO] [stderr] 419 | / impl TrueDisplayList { [INFO] [stderr] 420 | | pub fn new() -> TrueDisplayList { [INFO] [stderr] 421 | | TrueDisplayList { [INFO] [stderr] 422 | | counter: 0, [INFO] [stderr] ... | [INFO] [stderr] 489 | | } [INFO] [stderr] 490 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `TrueDisplayList` [INFO] [stderr] --> src/lib.rs:420:5 [INFO] [stderr] | [INFO] [stderr] 420 | / pub fn new() -> TrueDisplayList { [INFO] [stderr] 421 | | TrueDisplayList { [INFO] [stderr] 422 | | counter: 0, [INFO] [stderr] 423 | | list: Vec::new(), [INFO] [stderr] 424 | | changed_frames: HashSet::new(), [INFO] [stderr] 425 | | } [INFO] [stderr] 426 | | } [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] 413 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:517:16 [INFO] [stderr] | [INFO] [stderr] 517 | width: width as u32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(width)` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:518:17 [INFO] [stderr] | [INFO] [stderr] 518 | height: height as u32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(height)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:535:58 [INFO] [stderr] | [INFO] [stderr] 535 | .insert_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(x)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:535:68 [INFO] [stderr] | [INFO] [stderr] 535 | .insert_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(y)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:535:78 [INFO] [stderr] | [INFO] [stderr] 535 | .insert_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(w)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:535:88 [INFO] [stderr] | [INFO] [stderr] 535 | .insert_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(h)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:567:58 [INFO] [stderr] | [INFO] [stderr] 567 | .resize_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(x)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:567:68 [INFO] [stderr] | [INFO] [stderr] 567 | .resize_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(y)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:567:78 [INFO] [stderr] | [INFO] [stderr] 567 | .resize_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(w)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:567:88 [INFO] [stderr] | [INFO] [stderr] 567 | .resize_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(h)` [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: item `DirectedAcyclicGraph` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/lib.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | / impl DirectedAcyclicGraph { [INFO] [stderr] 21 | | pub fn new() -> DirectedAcyclicGraph { [INFO] [stderr] 22 | | DirectedAcyclicGraph { [INFO] [stderr] 23 | | nodes_info: Vec::new(), [INFO] [stderr] ... | [INFO] [stderr] 79 | | } [INFO] [stderr] 80 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `DirectedAcyclicGraph` [INFO] [stderr] --> src/lib.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn new() -> DirectedAcyclicGraph { [INFO] [stderr] 22 | | DirectedAcyclicGraph { [INFO] [stderr] 23 | | nodes_info: Vec::new(), [INFO] [stderr] 24 | | direct_predecessor_list: Vec::new(), [INFO] [stderr] 25 | | } [INFO] [stderr] 26 | | } [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] 15 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `RetainedDisplayList` [INFO] [stderr] --> src/lib.rs:114:5 [INFO] [stderr] | [INFO] [stderr] 114 | / pub fn new() -> RetainedDisplayList { [INFO] [stderr] 115 | | RetainedDisplayList { [INFO] [stderr] 116 | | items: Vec::new(), [INFO] [stderr] 117 | | dag: DirectedAcyclicGraph::new(), [INFO] [stderr] 118 | | key_lookup: HashMap::new(), [INFO] [stderr] 119 | | } [INFO] [stderr] 120 | | } [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] 113 | impl Default for RetainedDisplayList { [INFO] [stderr] 114 | fn default() -> Self { [INFO] [stderr] 115 | Self::new() [INFO] [stderr] 116 | } [INFO] [stderr] 117 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/lib.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | / match &self.old_items[direct_predecessor] { [INFO] [stderr] 282 | | &OldItemInfo::Unused(_) => panic!("should only encounter used predecessors"), [INFO] [stderr] 283 | | &OldItemInfo::BeingProcessed => panic!("somebody forgot to clean up"), [INFO] [stderr] 284 | | &OldItemInfo::Discarded(ref discarded_item_direct_predecessors) => { [INFO] [stderr] ... | [INFO] [stderr] 289 | | } [INFO] [stderr] 290 | | } [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: try [INFO] [stderr] | [INFO] [stderr] 281 | match self.old_items[direct_predecessor] { [INFO] [stderr] 282 | OldItemInfo::Unused(_) => panic!("should only encounter used predecessors"), [INFO] [stderr] 283 | OldItemInfo::BeingProcessed => panic!("somebody forgot to clean up"), [INFO] [stderr] 284 | OldItemInfo::Discarded(ref discarded_item_direct_predecessors) => { [INFO] [stderr] 285 | result.extend(discarded_item_direct_predecessors) [INFO] [stderr] 286 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: parameter of type `HashSet` should be generalized over different hashers [INFO] [stderr] --> src/lib.rs:301:21 [INFO] [stderr] | [INFO] [stderr] 301 | changed_frames: HashSet, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 298 | pub fn merge_lists( [INFO] [stderr] 299 | old_list: RetainedDisplayList, [INFO] [stderr] 300 | new_list: Vec, [INFO] [stderr] 301 | changed_frames: HashSet, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:309:42 [INFO] [stderr] | [INFO] [stderr] 309 | old_items: items.into_iter().map(|i| OldItemInfo::Unused(i)).collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `OldItemInfo::Unused` [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: parameter of type `HashSet` should be generalized over different hashers [INFO] [stderr] --> src/lib.rs:330:21 [INFO] [stderr] | [INFO] [stderr] 330 | changed_frames: HashSet, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 327 | pub fn merge_lists_badly( [INFO] [stderr] 328 | old_list: RetainedDisplayList, [INFO] [stderr] 329 | new_list: Vec, [INFO] [stderr] 330 | changed_frames: HashSet, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:338:31 [INFO] [stderr] | [INFO] [stderr] 338 | items.into_iter().map(|i| OldItemInfo::Unused(i)).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `OldItemInfo::Unused` [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: item `TrueDisplayList` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/lib.rs:419:1 [INFO] [stderr] | [INFO] [stderr] 419 | / impl TrueDisplayList { [INFO] [stderr] 420 | | pub fn new() -> TrueDisplayList { [INFO] [stderr] 421 | | TrueDisplayList { [INFO] [stderr] 422 | | counter: 0, [INFO] [stderr] ... | [INFO] [stderr] 489 | | } [INFO] [stderr] 490 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `TrueDisplayList` [INFO] [stderr] --> src/lib.rs:420:5 [INFO] [stderr] | [INFO] [stderr] 420 | / pub fn new() -> TrueDisplayList { [INFO] [stderr] 421 | | TrueDisplayList { [INFO] [stderr] 422 | | counter: 0, [INFO] [stderr] 423 | | list: Vec::new(), [INFO] [stderr] 424 | | changed_frames: HashSet::new(), [INFO] [stderr] 425 | | } [INFO] [stderr] 426 | | } [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] 413 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:517:16 [INFO] [stderr] | [INFO] [stderr] 517 | width: width as u32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(width)` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:518:17 [INFO] [stderr] | [INFO] [stderr] 518 | height: height as u32, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(height)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:535:58 [INFO] [stderr] | [INFO] [stderr] 535 | .insert_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(x)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:535:68 [INFO] [stderr] | [INFO] [stderr] 535 | .insert_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(y)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:535:78 [INFO] [stderr] | [INFO] [stderr] 535 | .insert_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(w)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:535:88 [INFO] [stderr] | [INFO] [stderr] 535 | .insert_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(h)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:567:58 [INFO] [stderr] | [INFO] [stderr] 567 | .resize_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(x)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:567:68 [INFO] [stderr] | [INFO] [stderr] 567 | .resize_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(y)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:567:78 [INFO] [stderr] | [INFO] [stderr] 567 | .resize_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(w)` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:567:88 [INFO] [stderr] | [INFO] [stderr] 567 | .resize_item(index, euclid::rect(x as u32, y as u32, w as u32, h as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(h)` [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] Finished dev [unoptimized + debuginfo] target(s) in 3.80s [INFO] running `"docker" "inspect" "48c1d5a1ce2d061f96a5fda23e452ccd857eb078262971a1024c1d27587ae919"` [INFO] running `"docker" "rm" "-f" "48c1d5a1ce2d061f96a5fda23e452ccd857eb078262971a1024c1d27587ae919"` [INFO] [stdout] 48c1d5a1ce2d061f96a5fda23e452ccd857eb078262971a1024c1d27587ae919