[INFO] crate graph-neighbor-matching 0.7.1 is already in cache [INFO] extracting crate graph-neighbor-matching 0.7.1 into work/ex/clippy-test-run/sources/stable/reg/graph-neighbor-matching/0.7.1 [INFO] extracting crate graph-neighbor-matching 0.7.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/graph-neighbor-matching/0.7.1 [INFO] validating manifest of graph-neighbor-matching-0.7.1 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 graph-neighbor-matching-0.7.1 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 graph-neighbor-matching-0.7.1 [INFO] finished frobbing graph-neighbor-matching-0.7.1 [INFO] frobbed toml for graph-neighbor-matching-0.7.1 written to work/ex/clippy-test-run/sources/stable/reg/graph-neighbor-matching/0.7.1/Cargo.toml [INFO] started frobbing graph-neighbor-matching-0.7.1 [INFO] finished frobbing graph-neighbor-matching-0.7.1 [INFO] frobbed toml for graph-neighbor-matching-0.7.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/graph-neighbor-matching/0.7.1/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 graph-neighbor-matching-0.7.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/graph-neighbor-matching/0.7.1:/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] ae71028c9d2bbb36ffa1abbefeac6fe63512b9a407770a4b955a65d1b2e14ce6 [INFO] running `"docker" "start" "-a" "ae71028c9d2bbb36ffa1abbefeac6fe63512b9a407770a4b955a65d1b2e14ce6"` [INFO] [stderr] Checking asexp v0.3.1 [INFO] [stderr] Checking munkres v0.4.0 [INFO] [stderr] Checking closed01 v0.4.0 [INFO] [stderr] Checking graph-io-gml v0.2.0 [INFO] [stderr] Checking graph-neighbor-matching v0.7.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/graph.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [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/graph.rs:39:20 [INFO] [stderr] | [INFO] [stderr] 39 | EdgeList { edges: edges } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `edges` [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/graph.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | in_edges: in_edges, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `in_edges` [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/graph.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | out_edges: out_edges, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `out_edges` [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/graph.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | node_value: node_value, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node_value` [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/graph.rs:100:22 [INFO] [stderr] | [INFO] [stderr] 100 | OwnedGraph { nodes: nodes } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nodes` [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:186:13 [INFO] [stderr] | [INFO] [stderr] 186 | graph_a: graph_a, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `graph_a` [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:187:13 [INFO] [stderr] | [INFO] [stderr] 187 | graph_b: graph_b, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `graph_b` [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:188:13 [INFO] [stderr] | [INFO] [stderr] 188 | node_color_matching: node_color_matching, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node_color_matching` [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/graph.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | weight: weight, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `weight` [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/graph.rs:39:20 [INFO] [stderr] | [INFO] [stderr] 39 | EdgeList { edges: edges } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `edges` [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/graph.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | in_edges: in_edges, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `in_edges` [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/graph.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | out_edges: out_edges, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `out_edges` [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/graph.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | node_value: node_value, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node_value` [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/graph.rs:100:22 [INFO] [stderr] | [INFO] [stderr] 100 | OwnedGraph { nodes: nodes } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nodes` [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:186:13 [INFO] [stderr] | [INFO] [stderr] 186 | graph_a: graph_a, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `graph_a` [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:187:13 [INFO] [stderr] | [INFO] [stderr] 187 | graph_b: graph_b, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `graph_b` [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:188:13 [INFO] [stderr] | [INFO] [stderr] 188 | node_color_matching: node_color_matching, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node_color_matching` [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] error[E0554]: #![feature] may not be used on the stable release channel [INFO] [stderr] --> src/lib.rs:1:19 [INFO] [stderr] | [INFO] [stderr] 1 | #![cfg_attr(test, feature(test))] [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0554`. [INFO] [stderr] error: Could not compile `graph-neighbor-matching`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | return pg; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `pg` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:161:9 [INFO] [stderr] | [INFO] [stderr] 161 | return idx; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `idx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:217:17 [INFO] [stderr] | [INFO] [stderr] 217 | return next_id; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `next_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/traits.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | return g; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `g` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:132:5 [INFO] [stderr] | [INFO] [stderr] 132 | return Closed01::new(sum / max_deg as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Closed01::new(sum / max_deg as f32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: item `graph::OwnedGraph` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/graph.rs:98:1 [INFO] [stderr] | [INFO] [stderr] 98 | / impl OwnedGraph { [INFO] [stderr] 99 | | pub fn new(nodes: Vec>) -> OwnedGraph { [INFO] [stderr] 100 | | OwnedGraph { nodes: nodes } [INFO] [stderr] 101 | | } [INFO] [stderr] ... | [INFO] [stderr] 162 | | } [INFO] [stderr] 163 | | } [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/graph.rs:142:21 [INFO] [stderr] | [INFO] [stderr] 142 | edge.weight.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `edge.weight` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [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/graph.rs:183:5 [INFO] [stderr] | [INFO] [stderr] 183 | / fn in_edges_of<'b>(&'b self, node_idx: usize) -> &'b Self::EDGE { [INFO] [stderr] 184 | | &&self.nodes[node_idx].in_edges [INFO] [stderr] 185 | | } [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/graph.rs:188:5 [INFO] [stderr] | [INFO] [stderr] 188 | / fn out_edges_of<'b>(&'b self, node_idx: usize) -> &'b Self::EDGE { [INFO] [stderr] 189 | | &self.nodes[node_idx].out_edges [INFO] [stderr] 190 | | } [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 should consider adding a `Default` implementation for `graph::GraphBuilder` [INFO] [stderr] --> src/graph.rs:200:5 [INFO] [stderr] | [INFO] [stderr] 200 | / pub fn new() -> GraphBuilder { [INFO] [stderr] 201 | | GraphBuilder { [INFO] [stderr] 202 | | node_map: BTreeMap::new(), [INFO] [stderr] 203 | | graph: OwnedGraph::new(Vec::new()), [INFO] [stderr] 204 | | } [INFO] [stderr] 205 | | } [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] 199 | impl Default for graph::GraphBuilder { [INFO] [stderr] 200 | fn default() -> Self { [INFO] [stderr] 201 | Self::new() [INFO] [stderr] 202 | } [INFO] [stderr] 203 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/graph.rs:230:29 [INFO] [stderr] | [INFO] [stderr] 230 | let source_index = *self.node_map.get(&source_node_id).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.node_map[&source_node_id]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/graph.rs:231:29 [INFO] [stderr] | [INFO] [stderr] 231 | let target_index = *self.node_map.get(&target_node_id).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.node_map[&target_node_id]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [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/traits.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | fn in_edges_of<'a>(&'a self, node_idx: usize) -> &'a Self::EDGE; [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/traits.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | fn out_edges_of<'a>(&'a self, node_idx: usize) -> &'a Self::EDGE; [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] error: build failed [INFO] running `"docker" "inspect" "ae71028c9d2bbb36ffa1abbefeac6fe63512b9a407770a4b955a65d1b2e14ce6"` [INFO] running `"docker" "rm" "-f" "ae71028c9d2bbb36ffa1abbefeac6fe63512b9a407770a4b955a65d1b2e14ce6"` [INFO] [stdout] ae71028c9d2bbb36ffa1abbefeac6fe63512b9a407770a4b955a65d1b2e14ce6