[INFO] crate collada 0.8.0 is already in cache [INFO] extracting crate collada 0.8.0 into work/ex/clippy-test-run/sources/stable/reg/collada/0.8.0 [INFO] extracting crate collada 0.8.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/collada/0.8.0 [INFO] validating manifest of collada-0.8.0 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 collada-0.8.0 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 collada-0.8.0 [INFO] finished frobbing collada-0.8.0 [INFO] frobbed toml for collada-0.8.0 written to work/ex/clippy-test-run/sources/stable/reg/collada/0.8.0/Cargo.toml [INFO] started frobbing collada-0.8.0 [INFO] finished frobbing collada-0.8.0 [INFO] frobbed toml for collada-0.8.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/collada/0.8.0/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 collada-0.8.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/collada/0.8.0:/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] ae36a209815459a622a0d8d8d15b5359e6691e7a562b43da768c4c45a8ac72a8 [INFO] running `"docker" "start" "-a" "ae36a209815459a622a0d8d8d15b5359e6691e7a562b43da768c4c45a8ac72a8"` [INFO] [stderr] Checking quaternion v0.3.1 [INFO] [stderr] Checking collada v0.8.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/document.rs:77:52 [INFO] [stderr] | [INFO] [stderr] 77 | Ok(root_element) => Ok(ColladaDocument{root_element: root_element}), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `root_element` [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/document.rs:144:13 [INFO] [stderr] | [INFO] [stderr] 144 | sample_times: sample_times, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sample_times` [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/document.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | sample_poses: sample_poses [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sample_poses` [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/document.rs:159:13 [INFO] [stderr] | [INFO] [stderr] 159 | objects: objects, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `objects` [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/document.rs:170:27 [INFO] [stderr] | [INFO] [stderr] 170 | Some(BindDataSet{ bind_data: bind_data }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `bind_data` [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/document.rs:226:17 [INFO] [stderr] | [INFO] [stderr] 226 | inverse_bind_pose: inverse_bind_pose, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inverse_bind_pose` [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/document.rs:244:13 [INFO] [stderr] | [INFO] [stderr] 244 | joints: joints, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `joints` [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/document.rs:245:13 [INFO] [stderr] | [INFO] [stderr] 245 | bind_poses: bind_poses, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `bind_poses` [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/document.rs:275:13 [INFO] [stderr] | [INFO] [stderr] 275 | joint_names: joint_names, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `joint_names` [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/document.rs:276:13 [INFO] [stderr] | [INFO] [stderr] 276 | inverse_bind_poses: inverse_bind_poses, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inverse_bind_poses` [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/document.rs:277:13 [INFO] [stderr] | [INFO] [stderr] 277 | weights: weights, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `weights` [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/document.rs:278:13 [INFO] [stderr] | [INFO] [stderr] 278 | vertex_weights: vertex_weights [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vertex_weights` [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/document.rs:412:13 [INFO] [stderr] | [INFO] [stderr] 412 | normals: normals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `normals` [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/document.rs:413:13 [INFO] [stderr] | [INFO] [stderr] 413 | joint_weights: joint_weights, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `joint_weights` [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/document.rs:77:52 [INFO] [stderr] | [INFO] [stderr] 77 | Ok(root_element) => Ok(ColladaDocument{root_element: root_element}), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `root_element` [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/document.rs:144:13 [INFO] [stderr] | [INFO] [stderr] 144 | sample_times: sample_times, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sample_times` [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/document.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | sample_poses: sample_poses [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sample_poses` [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/document.rs:159:13 [INFO] [stderr] | [INFO] [stderr] 159 | objects: objects, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `objects` [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/document.rs:170:27 [INFO] [stderr] | [INFO] [stderr] 170 | Some(BindDataSet{ bind_data: bind_data }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `bind_data` [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/document.rs:226:17 [INFO] [stderr] | [INFO] [stderr] 226 | inverse_bind_pose: inverse_bind_pose, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inverse_bind_pose` [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/document.rs:244:13 [INFO] [stderr] | [INFO] [stderr] 244 | joints: joints, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `joints` [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/document.rs:245:13 [INFO] [stderr] | [INFO] [stderr] 245 | bind_poses: bind_poses, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `bind_poses` [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/document.rs:275:13 [INFO] [stderr] | [INFO] [stderr] 275 | joint_names: joint_names, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `joint_names` [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/document.rs:276:13 [INFO] [stderr] | [INFO] [stderr] 276 | inverse_bind_poses: inverse_bind_poses, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `inverse_bind_poses` [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/document.rs:277:13 [INFO] [stderr] | [INFO] [stderr] 277 | weights: weights, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `weights` [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/document.rs:278:13 [INFO] [stderr] | [INFO] [stderr] 278 | vertex_weights: vertex_weights [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vertex_weights` [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/document.rs:412:13 [INFO] [stderr] | [INFO] [stderr] 412 | normals: normals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `normals` [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/document.rs:413:13 [INFO] [stderr] | [INFO] [stderr] 413 | joint_weights: joint_weights, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `joint_weights` [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/document.rs:456:34 [INFO] [stderr] | [INFO] [stderr] 456 | .filter_map(|node| { if let &xml::Xml::ElementNode(ref e) = node { Some(e) } else { None } }) [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] 456 | .filter_map(|node| { if let xml::Xml::ElementNode(ref e) = *node { Some(e) } else { None } }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/utils.rs:7:16 [INFO] [stderr] | [INFO] [stderr] 7 | .split(" ") [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [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/utils.rs:41:1 [INFO] [stderr] | [INFO] [stderr] 41 | / pub fn pre_order_iter<'a>(root: &'a Element) -> PreOrderIterator<'a> { [INFO] [stderr] 42 | | PreOrderIterator { stack: vec![root] } [INFO] [stderr] 43 | | } [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/utils.rs:50:1 [INFO] [stderr] | [INFO] [stderr] 50 | / pub fn pre_order_with_depth_iter<'a>(root: &'a Element) -> PreOrderWithDepthIterator<'a> { [INFO] [stderr] 51 | | PreOrderWithDepthIterator { stack: vec![(root, 0)] } [INFO] [stderr] 52 | | } [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/utils.rs:62:9 [INFO] [stderr] | [INFO] [stderr] 62 | / match current_element { [INFO] [stderr] 63 | | Some(element) => { [INFO] [stderr] 64 | | for child in element.children.iter().rev() { [INFO] [stderr] 65 | | if let ElementNode(ref e) = *child { [INFO] [stderr] ... | [INFO] [stderr] 70 | | None => () [INFO] [stderr] 71 | | } [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] 62 | if let Some(element) = current_element { [INFO] [stderr] 63 | for child in element.children.iter().rev() { [INFO] [stderr] 64 | if let ElementNode(ref e) = *child { [INFO] [stderr] 65 | self.stack.push(e); [INFO] [stderr] 66 | } [INFO] [stderr] 67 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/document.rs:456:34 [INFO] [stderr] | [INFO] [stderr] 456 | .filter_map(|node| { if let &xml::Xml::ElementNode(ref e) = node { Some(e) } else { None } }) [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] 456 | .filter_map(|node| { if let xml::Xml::ElementNode(ref e) = *node { Some(e) } else { None } }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/document.rs:587:9 [INFO] [stderr] | [INFO] [stderr] 587 | let ref object = obj_set.objects[0]; [INFO] [stderr] | ----^^^^^^^^^^---------------------- help: try: `let object = &obj_set.objects[0];` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/document.rs:595:9 [INFO] [stderr] | [INFO] [stderr] 595 | let ref geometry = object.geometry[0]; [INFO] [stderr] | ----^^^^^^^^^^^^---------------------- help: try: `let geometry = &object.geometry[0];` [INFO] [stderr] | [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/document.rs:598:9 [INFO] [stderr] | [INFO] [stderr] 598 | let ref shape = geometry.shapes[1]; [INFO] [stderr] | ----^^^^^^^^^---------------------- help: try: `let shape = &geometry.shapes[1];` [INFO] [stderr] | [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/document.rs:599:5 [INFO] [stderr] | [INFO] [stderr] 599 | / if let &Shape::Triangle((position_index, Some(texture_index), Some(normal_index)), _, _) = shape { [INFO] [stderr] 600 | | assert_eq!(position_index, 7); [INFO] [stderr] 601 | | assert_eq!(texture_index, 3); [INFO] [stderr] 602 | | assert_eq!(normal_index, 1); [INFO] [stderr] 603 | | } else { [INFO] [stderr] 604 | | assert!(false); [INFO] [stderr] 605 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 599 | if let Shape::Triangle((position_index, Some(texture_index), Some(normal_index)), _, _) = *shape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/document.rs:614:9 [INFO] [stderr] | [INFO] [stderr] 614 | let ref object = obj_set.objects[0]; [INFO] [stderr] | ----^^^^^^^^^^---------------------- help: try: `let object = &obj_set.objects[0];` [INFO] [stderr] | [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/document.rs:621:9 [INFO] [stderr] | [INFO] [stderr] 621 | let ref geometry = object.geometry[0]; [INFO] [stderr] | ----^^^^^^^^^^^^---------------------- help: try: `let geometry = &object.geometry[0];` [INFO] [stderr] | [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/document.rs:624:9 [INFO] [stderr] | [INFO] [stderr] 624 | let ref shape = geometry.shapes[1]; [INFO] [stderr] | ----^^^^^^^^^---------------------- help: try: `let shape = &geometry.shapes[1];` [INFO] [stderr] | [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/document.rs:625:5 [INFO] [stderr] | [INFO] [stderr] 625 | / if let &Shape::Triangle((position_index, _, Some(normal_index)), _, _) = shape { [INFO] [stderr] 626 | | assert_eq!(position_index, 7); [INFO] [stderr] 627 | | assert_eq!(normal_index, 1); [INFO] [stderr] 628 | | } else { [INFO] [stderr] 629 | | assert!(false); [INFO] [stderr] 630 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 625 | if let Shape::Triangle((position_index, _, Some(normal_index)), _, _) = *shape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/document.rs:680:9 [INFO] [stderr] | [INFO] [stderr] 680 | let ref animation = animations[1]; [INFO] [stderr] | ----^^^^^^^^^^^^^----------------- help: try: `let animation = &animations[1];` [INFO] [stderr] | [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/document.rs:685:9 [INFO] [stderr] | [INFO] [stderr] 685 | let ref animation = animations[3]; [INFO] [stderr] | ----^^^^^^^^^^^^^----------------- help: try: `let animation = &animations[3];` [INFO] [stderr] | [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: single-character string constant used as pattern [INFO] [stderr] --> src/utils.rs:7:16 [INFO] [stderr] | [INFO] [stderr] 7 | .split(" ") [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [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/utils.rs:41:1 [INFO] [stderr] | [INFO] [stderr] 41 | / pub fn pre_order_iter<'a>(root: &'a Element) -> PreOrderIterator<'a> { [INFO] [stderr] 42 | | PreOrderIterator { stack: vec![root] } [INFO] [stderr] 43 | | } [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/utils.rs:50:1 [INFO] [stderr] | [INFO] [stderr] 50 | / pub fn pre_order_with_depth_iter<'a>(root: &'a Element) -> PreOrderWithDepthIterator<'a> { [INFO] [stderr] 51 | | PreOrderWithDepthIterator { stack: vec![(root, 0)] } [INFO] [stderr] 52 | | } [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/utils.rs:62:9 [INFO] [stderr] | [INFO] [stderr] 62 | / match current_element { [INFO] [stderr] 63 | | Some(element) => { [INFO] [stderr] 64 | | for child in element.children.iter().rev() { [INFO] [stderr] 65 | | if let ElementNode(ref e) = *child { [INFO] [stderr] ... | [INFO] [stderr] 70 | | None => () [INFO] [stderr] 71 | | } [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] 62 | if let Some(element) = current_element { [INFO] [stderr] 63 | for child in element.children.iter().rev() { [INFO] [stderr] 64 | if let ElementNode(ref e) = *child { [INFO] [stderr] 65 | self.stack.push(e); [INFO] [stderr] 66 | } [INFO] [stderr] 67 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.25s [INFO] running `"docker" "inspect" "ae36a209815459a622a0d8d8d15b5359e6691e7a562b43da768c4c45a8ac72a8"` [INFO] running `"docker" "rm" "-f" "ae36a209815459a622a0d8d8d15b5359e6691e7a562b43da768c4c45a8ac72a8"` [INFO] [stdout] ae36a209815459a622a0d8d8d15b5359e6691e7a562b43da768c4c45a8ac72a8