[INFO] crate flo_curves 0.2.1 is already in cache [INFO] extracting crate flo_curves 0.2.1 into work/ex/clippy-test-run/sources/stable/reg/flo_curves/0.2.1 [INFO] extracting crate flo_curves 0.2.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/flo_curves/0.2.1 [INFO] validating manifest of flo_curves-0.2.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 flo_curves-0.2.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 flo_curves-0.2.1 [INFO] finished frobbing flo_curves-0.2.1 [INFO] frobbed toml for flo_curves-0.2.1 written to work/ex/clippy-test-run/sources/stable/reg/flo_curves/0.2.1/Cargo.toml [INFO] started frobbing flo_curves-0.2.1 [INFO] finished frobbing flo_curves-0.2.1 [INFO] frobbed toml for flo_curves-0.2.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/flo_curves/0.2.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 flo_curves-0.2.1 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-3/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/reg/flo_curves/0.2.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 -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] 8618a3b69a9eb4ad00cf7cde9e7bf259d29849f6733f05d2a99746c96046b915 [INFO] running `"docker" "start" "-a" "8618a3b69a9eb4ad00cf7cde9e7bf259d29849f6733f05d2a99746c96046b915"` [INFO] [stderr] Checking roots v0.0.4 [INFO] [stderr] Checking flo_curves v0.2.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/bezier/section.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | curve: curve, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `curve` [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/bezier/section.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | t_m: t_m, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `t_m` [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/bezier/section.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | t_c: t_c, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `t_c` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/bezier/solve.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | let a = w4-w1-c-b; [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: 6th binding whose name is just one char [INFO] [stderr] --> src/bezier/solve.rs:24:20 [INFO] [stderr] | [INFO] [stderr] 24 | Roots::One(r) => r.to_vec(), [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: 6th binding whose name is just one char [INFO] [stderr] --> src/bezier/solve.rs:25:20 [INFO] [stderr] | [INFO] [stderr] 25 | Roots::Two(r) => r.to_vec(), [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: 6th binding whose name is just one char [INFO] [stderr] --> src/bezier/solve.rs:26:22 [INFO] [stderr] | [INFO] [stderr] 26 | Roots::Three(r) => r.to_vec(), [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: 6th binding whose name is just one char [INFO] [stderr] --> src/bezier/solve.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | Roots::Four(r) => r.to_vec() [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: 5th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:44:20 [INFO] [stderr] | [INFO] [stderr] 44 | Roots::One(r) => r.to_vec(), [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: 5th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:45:20 [INFO] [stderr] | [INFO] [stderr] 45 | Roots::Two(r) => r.to_vec(), [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: 5th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:46:22 [INFO] [stderr] | [INFO] [stderr] 46 | Roots::Three(r) => r.to_vec(), [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: 5th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:47:21 [INFO] [stderr] | [INFO] [stderr] 47 | Roots::Four(r) => r.to_vec() [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: 5th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:80:17 [INFO] [stderr] | [INFO] [stderr] 80 | let x = pos.x(); [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: 6th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:81:17 [INFO] [stderr] | [INFO] [stderr] 81 | let y = pos.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: 7th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | let s = if b.abs() > a.abs() { [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/bezier/intersection/fat_line.rs:263:13 [INFO] [stderr] | [INFO] [stderr] 263 | d_min: d_min, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `d_min` [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/bezier/intersection/fat_line.rs:264:13 [INFO] [stderr] | [INFO] [stderr] 264 | d_max: d_max, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `d_max` [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/bezier/intersection/fat_line.rs:317:13 [INFO] [stderr] | [INFO] [stderr] 317 | d_min: d_min, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `d_min` [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/bezier/intersection/fat_line.rs:318:13 [INFO] [stderr] | [INFO] [stderr] 318 | d_max: d_max [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `d_max` [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/bezier/intersection/fat_line.rs:337:17 [INFO] [stderr] | [INFO] [stderr] 337 | d_min: d_min, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `d_min` [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/bezier/intersection/fat_line.rs:338:17 [INFO] [stderr] | [INFO] [stderr] 338 | d_max: d_max, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `d_max` [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/bezier/path/ray.rs:75:138 [INFO] [stderr] | [INFO] [stderr] 75 | .flat_map(move |point_idx| (0..(path.num_edges(point_idx))).into_iter().map(move |edge_idx| GraphEdgeRef { start_idx: point_idx, edge_idx: edge_idx, reverse: false })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:354:13 [INFO] [stderr] | [INFO] [stderr] 354 | points: points, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `points` [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/bezier/path/graph_path.rs:430:21 [INFO] [stderr] | [INFO] [stderr] 430 | edge_idx: edge_idx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:444:92 [INFO] [stderr] | [INFO] [stderr] 444 | .map(move |edge_idx| GraphEdge::new(self, GraphEdgeRef { start_idx: point_num, edge_idx: edge_idx, reverse: false })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:472:76 [INFO] [stderr] | [INFO] [stderr] 472 | Some(GraphEdgeRef { start_idx: connected_from, edge_idx: edge_idx, reverse: true }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:623:69 [INFO] [stderr] | [INFO] [stderr] 623 | let edge_ref = GraphEdgeRef { start_idx: point_idx, edge_idx: edge_idx, reverse: false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:1225:75 [INFO] [stderr] | [INFO] [stderr] 1225 | if self.edge_has_gap(GraphEdgeRef { start_idx: point_idx, edge_idx: edge_idx, reverse: false }) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:1376:13 [INFO] [stderr] | [INFO] [stderr] 1376 | graph: graph, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `graph` [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/bezier/path/graph_path.rs:1377:13 [INFO] [stderr] | [INFO] [stderr] 1377 | edge: edge [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `edge` [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/bezier/path/graph_path.rs:1622:71 [INFO] [stderr] | [INFO] [stderr] 1622 | .map(move |edge_idx| GraphEdgeRef { start_idx: point_idx, edge_idx: edge_idx, reverse: false }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:1633:90 [INFO] [stderr] | [INFO] [stderr] 1633 | .map(move |edge_idx| GraphEdgeRef { start_idx: *connected_point_idx, edge_idx: edge_idx, reverse: true }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:1639:35 [INFO] [stderr] | [INFO] [stderr] 1639 | GraphEdge { graph: *self, edge: edge } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `edge` [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: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | / write!(result, "\n", [INFO] [stderr] 31 | | index, [INFO] [stderr] 32 | | start_point.x(), start_point.y(), [INFO] [stderr] 33 | | end_point.x(), end_point.y(), [INFO] [stderr] 34 | | cp1.x(), cp1.y(), [INFO] [stderr] 35 | | cp2.x(), cp2.y()).unwrap(); [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | / write!(result, "\n", [INFO] [stderr] 50 | | start_point.x(), start_point.y(), [INFO] [stderr] 51 | | cp1.x(), cp1.y(), [INFO] [stderr] 52 | | cp2.x(), cp2.y(), [INFO] [stderr] 53 | | end_point.x(), end_point.y(), [INFO] [stderr] 54 | | kind).unwrap(); [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | write!(result, "\n", end_point.x(), end_point.y()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | write!(result, "{} <- {} - {}\n", end_point.x()+4.0, end_point.y()+8.0, edge.end_point_index(), edge.start_point_index(), index).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | write!(result, "\n", p1.x(), p1.y(), p2.x(), p2.y()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | / write!(result, "\n", [INFO] [stderr] 74 | | p1.x(), p1.y(), [INFO] [stderr] 75 | | p2.x(), p2.y()).unwrap(); [INFO] [stderr] | |___________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | write!(result, "\n", pos.x(), pos.y()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/arc/circle.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | center: center, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `center` [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/arc/circle.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | radius: radius [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `radius` [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/arc/circle.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | start_radians: start_radians, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `start_radians` [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/arc/circle.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | end_radians: end_radians [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `end_radians` [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/bezier/section.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | curve: curve, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `curve` [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/bezier/section.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | t_m: t_m, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `t_m` [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/bezier/section.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | t_c: t_c, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `t_c` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/bezier/solve.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | let a = w4-w1-c-b; [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: 6th binding whose name is just one char [INFO] [stderr] --> src/bezier/solve.rs:24:20 [INFO] [stderr] | [INFO] [stderr] 24 | Roots::One(r) => r.to_vec(), [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: 6th binding whose name is just one char [INFO] [stderr] --> src/bezier/solve.rs:25:20 [INFO] [stderr] | [INFO] [stderr] 25 | Roots::Two(r) => r.to_vec(), [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: 6th binding whose name is just one char [INFO] [stderr] --> src/bezier/solve.rs:26:22 [INFO] [stderr] | [INFO] [stderr] 26 | Roots::Three(r) => r.to_vec(), [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: 6th binding whose name is just one char [INFO] [stderr] --> src/bezier/solve.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | Roots::Four(r) => r.to_vec() [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: 5th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:44:20 [INFO] [stderr] | [INFO] [stderr] 44 | Roots::One(r) => r.to_vec(), [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: 5th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:45:20 [INFO] [stderr] | [INFO] [stderr] 45 | Roots::Two(r) => r.to_vec(), [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: 5th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:46:22 [INFO] [stderr] | [INFO] [stderr] 46 | Roots::Three(r) => r.to_vec(), [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: 5th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:47:21 [INFO] [stderr] | [INFO] [stderr] 47 | Roots::Four(r) => r.to_vec() [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: 5th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:80:17 [INFO] [stderr] | [INFO] [stderr] 80 | let x = pos.x(); [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: 6th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:81:17 [INFO] [stderr] | [INFO] [stderr] 81 | let y = pos.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: 7th binding whose name is just one char [INFO] [stderr] --> src/bezier/intersection/curve_line.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | let s = if b.abs() > a.abs() { [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/bezier/intersection/fat_line.rs:263:13 [INFO] [stderr] | [INFO] [stderr] 263 | d_min: d_min, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `d_min` [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/bezier/intersection/fat_line.rs:264:13 [INFO] [stderr] | [INFO] [stderr] 264 | d_max: d_max, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `d_max` [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/bezier/intersection/fat_line.rs:317:13 [INFO] [stderr] | [INFO] [stderr] 317 | d_min: d_min, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `d_min` [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/bezier/intersection/fat_line.rs:318:13 [INFO] [stderr] | [INFO] [stderr] 318 | d_max: d_max [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `d_max` [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/bezier/intersection/fat_line.rs:337:17 [INFO] [stderr] | [INFO] [stderr] 337 | d_min: d_min, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `d_min` [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/bezier/intersection/fat_line.rs:338:17 [INFO] [stderr] | [INFO] [stderr] 338 | d_max: d_max, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `d_max` [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/bezier/path/ray.rs:75:138 [INFO] [stderr] | [INFO] [stderr] 75 | .flat_map(move |point_idx| (0..(path.num_edges(point_idx))).into_iter().map(move |edge_idx| GraphEdgeRef { start_idx: point_idx, edge_idx: edge_idx, reverse: false })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:354:13 [INFO] [stderr] | [INFO] [stderr] 354 | points: points, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `points` [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/bezier/path/graph_path.rs:430:21 [INFO] [stderr] | [INFO] [stderr] 430 | edge_idx: edge_idx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:444:92 [INFO] [stderr] | [INFO] [stderr] 444 | .map(move |edge_idx| GraphEdge::new(self, GraphEdgeRef { start_idx: point_num, edge_idx: edge_idx, reverse: false })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:472:76 [INFO] [stderr] | [INFO] [stderr] 472 | Some(GraphEdgeRef { start_idx: connected_from, edge_idx: edge_idx, reverse: true }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:623:69 [INFO] [stderr] | [INFO] [stderr] 623 | let edge_ref = GraphEdgeRef { start_idx: point_idx, edge_idx: edge_idx, reverse: false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:1225:75 [INFO] [stderr] | [INFO] [stderr] 1225 | if self.edge_has_gap(GraphEdgeRef { start_idx: point_idx, edge_idx: edge_idx, reverse: false }) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:1376:13 [INFO] [stderr] | [INFO] [stderr] 1376 | graph: graph, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `graph` [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/bezier/path/graph_path.rs:1377:13 [INFO] [stderr] | [INFO] [stderr] 1377 | edge: edge [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `edge` [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/bezier/path/graph_path.rs:1622:71 [INFO] [stderr] | [INFO] [stderr] 1622 | .map(move |edge_idx| GraphEdgeRef { start_idx: point_idx, edge_idx: edge_idx, reverse: false }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:1633:90 [INFO] [stderr] | [INFO] [stderr] 1633 | .map(move |edge_idx| GraphEdgeRef { start_idx: *connected_point_idx, edge_idx: edge_idx, reverse: true }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `edge_idx` [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/bezier/path/graph_path.rs:1639:35 [INFO] [stderr] | [INFO] [stderr] 1639 | GraphEdge { graph: *self, edge: edge } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `edge` [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: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | / write!(result, "\n", [INFO] [stderr] 31 | | index, [INFO] [stderr] 32 | | start_point.x(), start_point.y(), [INFO] [stderr] 33 | | end_point.x(), end_point.y(), [INFO] [stderr] 34 | | cp1.x(), cp1.y(), [INFO] [stderr] 35 | | cp2.x(), cp2.y()).unwrap(); [INFO] [stderr] | |_________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | / write!(result, "\n", [INFO] [stderr] 50 | | start_point.x(), start_point.y(), [INFO] [stderr] 51 | | cp1.x(), cp1.y(), [INFO] [stderr] 52 | | cp2.x(), cp2.y(), [INFO] [stderr] 53 | | end_point.x(), end_point.y(), [INFO] [stderr] 54 | | kind).unwrap(); [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | write!(result, "\n", end_point.x(), end_point.y()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | write!(result, "{} <- {} - {}\n", end_point.x()+4.0, end_point.y()+8.0, edge.end_point_index(), edge.start_point_index(), index).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | write!(result, "\n", p1.x(), p1.y(), p2.x(), p2.y()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | / write!(result, "\n", [INFO] [stderr] 74 | | p1.x(), p1.y(), [INFO] [stderr] 75 | | p2.x(), p2.y()).unwrap(); [INFO] [stderr] | |___________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bezier/path/graph_path_debug.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | write!(result, "\n", pos.x(), pos.y()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/arc/circle.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | center: center, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `center` [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/arc/circle.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | radius: radius [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `radius` [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/arc/circle.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | start_radians: start_radians, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `start_radians` [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/arc/circle.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | end_radians: end_radians [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `end_radians` [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: long literal lacking separators [INFO] [stderr] --> src/consts.rs:8:35 [INFO] [stderr] | [INFO] [stderr] 8 | pub const SMALL_T_DISTANCE: f64 = 0.000001; [INFO] [stderr] | ^^^^^^^^ help: consider: `0.000_001` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/bezier/normal.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | tangent [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/bezier/normal.rs:82:27 [INFO] [stderr] | [INFO] [stderr] 82 | let tangent = de_casteljau3(t, d1, d2, d3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | curve_intersections [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:34:31 [INFO] [stderr] | [INFO] [stderr] 34 | let curve_intersections = ray_intersections.into_iter() [INFO] [stderr] | _______________________________^ [INFO] [stderr] 35 | | .filter_map(|(curved_t, _ray_t, pos)| { [INFO] [stderr] 36 | | let linear_t = solve_curve_for_t(linear_section, &pos); [INFO] [stderr] 37 | | [INFO] [stderr] 38 | | linear_t.map(|linear_t| (linear_t, curved_t)) [INFO] [stderr] 39 | | }) [INFO] [stderr] 40 | | .collect::>(); [INFO] [stderr] | |____________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/bezier/path/mod.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | mod path; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/bezier/path/point.rs:105:16 [INFO] [stderr] | [INFO] [stderr] 105 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 106 | | if edge.start_idx+1 == self.len() { [INFO] [stderr] 107 | | 0 [INFO] [stderr] 108 | | } else { [INFO] [stderr] 109 | | edge.start_idx+1 [INFO] [stderr] 110 | | } [INFO] [stderr] 111 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 105 | } else if edge.start_idx+1 == self.len() { [INFO] [stderr] 106 | 0 [INFO] [stderr] 107 | } else { [INFO] [stderr] 108 | edge.start_idx+1 [INFO] [stderr] 109 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/bezier/path/graph_path.rs:311:13 [INFO] [stderr] | [INFO] [stderr] 311 | / if end_point.is_near_to(&last_point_pos, CLOSE_DISTANCE) { [INFO] [stderr] 312 | | if cp1.is_near_to(&last_point_pos, CLOSE_DISTANCE) && cp2.is_near_to(&cp1, CLOSE_DISTANCE) { [INFO] [stderr] 313 | | continue; [INFO] [stderr] 314 | | } [INFO] [stderr] 315 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 311 | if end_point.is_near_to(&last_point_pos, CLOSE_DISTANCE) && cp1.is_near_to(&last_point_pos, CLOSE_DISTANCE) && cp2.is_near_to(&cp1, CLOSE_DISTANCE) { [INFO] [stderr] 312 | continue; [INFO] [stderr] 313 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/bezier/path/arithmetic/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | mod arithmetic; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/line/mod.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | mod line; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/line/line.rs:44:39 [INFO] [stderr] | [INFO] [stderr] 44 | if line_component.abs() > 0.000001 { [INFO] [stderr] | ^^^^^^^^ help: consider: `0.000_001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/coordinate.rs:103:9 [INFO] [stderr] | [INFO] [stderr] 103 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: module has the same name as its containing module [INFO] [stderr] --> src/geo/mod.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | mod geo; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/consts.rs:8:35 [INFO] [stderr] | [INFO] [stderr] 8 | pub const SMALL_T_DISTANCE: f64 = 0.000001; [INFO] [stderr] | ^^^^^^^^ help: consider: `0.000_001` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/bezier/normal.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | tangent [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/bezier/normal.rs:82:27 [INFO] [stderr] | [INFO] [stderr] 82 | let tangent = de_casteljau3(t, d1, d2, d3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | curve_intersections [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:34:31 [INFO] [stderr] | [INFO] [stderr] 34 | let curve_intersections = ray_intersections.into_iter() [INFO] [stderr] | _______________________________^ [INFO] [stderr] 35 | | .filter_map(|(curved_t, _ray_t, pos)| { [INFO] [stderr] 36 | | let linear_t = solve_curve_for_t(linear_section, &pos); [INFO] [stderr] 37 | | [INFO] [stderr] 38 | | linear_t.map(|linear_t| (linear_t, curved_t)) [INFO] [stderr] 39 | | }) [INFO] [stderr] 40 | | .collect::>(); [INFO] [stderr] | |____________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/bezier/path/mod.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | mod path; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bezier/path/ray.rs:532:81 [INFO] [stderr] | [INFO] [stderr] 532 | let raw_collisions = crossing_and_collinear_collisions(&donut, &(Coord2(7.000584357101389, 8.342524209216537), Coord2(6.941479643691172, 8.441210096108172))).0.into_iter(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `7.000_584_357_101_389` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bezier/path/ray.rs:532:100 [INFO] [stderr] | [INFO] [stderr] 532 | let raw_collisions = crossing_and_collinear_collisions(&donut, &(Coord2(7.000584357101389, 8.342524209216537), Coord2(6.941479643691172, 8.441210096108172))).0.into_iter(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `8.342_524_209_216_537` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bezier/path/ray.rs:532:127 [INFO] [stderr] | [INFO] [stderr] 532 | let raw_collisions = crossing_and_collinear_collisions(&donut, &(Coord2(7.000584357101389, 8.342524209216537), Coord2(6.941479643691172, 8.441210096108172))).0.into_iter(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `6.941_479_643_691_172` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bezier/path/ray.rs:532:146 [INFO] [stderr] | [INFO] [stderr] 532 | let raw_collisions = crossing_and_collinear_collisions(&donut, &(Coord2(7.000584357101389, 8.342524209216537), Coord2(6.941479643691172, 8.441210096108172))).0.into_iter(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `8.441_210_096_108_172` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/bezier/path/point.rs:105:16 [INFO] [stderr] | [INFO] [stderr] 105 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 106 | | if edge.start_idx+1 == self.len() { [INFO] [stderr] 107 | | 0 [INFO] [stderr] 108 | | } else { [INFO] [stderr] 109 | | edge.start_idx+1 [INFO] [stderr] 110 | | } [INFO] [stderr] 111 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 105 | } else if edge.start_idx+1 == self.len() { [INFO] [stderr] 106 | 0 [INFO] [stderr] 107 | } else { [INFO] [stderr] 108 | edge.start_idx+1 [INFO] [stderr] 109 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/bezier/path/graph_path.rs:311:13 [INFO] [stderr] | [INFO] [stderr] 311 | / if end_point.is_near_to(&last_point_pos, CLOSE_DISTANCE) { [INFO] [stderr] 312 | | if cp1.is_near_to(&last_point_pos, CLOSE_DISTANCE) && cp2.is_near_to(&cp1, CLOSE_DISTANCE) { [INFO] [stderr] 313 | | continue; [INFO] [stderr] 314 | | } [INFO] [stderr] 315 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 311 | if end_point.is_near_to(&last_point_pos, CLOSE_DISTANCE) && cp1.is_near_to(&last_point_pos, CLOSE_DISTANCE) && cp2.is_near_to(&cp1, CLOSE_DISTANCE) { [INFO] [stderr] 312 | continue; [INFO] [stderr] 313 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bezier/path/graph_path.rs:1816:35 [INFO] [stderr] | [INFO] [stderr] 1816 | let ray = (Coord2(344.7127586558301, 702.311674360346), Coord2(344.6914625870749, 702.2935114955856)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `344.712_758_655_830_1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bezier/path/graph_path.rs:1816:54 [INFO] [stderr] | [INFO] [stderr] 1816 | let ray = (Coord2(344.7127586558301, 702.311674360346), Coord2(344.6914625870749, 702.2935114955856)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `702.311_674_360_346` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bezier/path/graph_path.rs:1816:80 [INFO] [stderr] | [INFO] [stderr] 1816 | let ray = (Coord2(344.7127586558301, 702.311674360346), Coord2(344.6914625870749, 702.2935114955856)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `344.691_462_587_074_9` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bezier/path/graph_path.rs:1816:99 [INFO] [stderr] | [INFO] [stderr] 1816 | let ray = (Coord2(344.7127586558301, 702.311674360346), Coord2(344.6914625870749, 702.2935114955856)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `702.293_511_495_585_6` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bezier/path/graph_path.rs:1831:35 [INFO] [stderr] | [INFO] [stderr] 1831 | let ray = (Coord2(344.7127586558301, 702.311674360346), Coord2(344.6914625870749, 702.2935114955856)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `344.712_758_655_830_1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bezier/path/graph_path.rs:1831:54 [INFO] [stderr] | [INFO] [stderr] 1831 | let ray = (Coord2(344.7127586558301, 702.311674360346), Coord2(344.6914625870749, 702.2935114955856)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider: `702.311_674_360_346` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bezier/path/graph_path.rs:1831:80 [INFO] [stderr] | [INFO] [stderr] 1831 | let ray = (Coord2(344.7127586558301, 702.311674360346), Coord2(344.6914625870749, 702.2935114955856)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `344.691_462_587_074_9` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bezier/path/graph_path.rs:1831:99 [INFO] [stderr] | [INFO] [stderr] 1831 | let ray = (Coord2(344.7127586558301, 702.311674360346), Coord2(344.6914625870749, 702.2935114955856)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider: `702.293_511_495_585_6` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/bezier/path/arithmetic/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | mod arithmetic; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/line/mod.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | mod line; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/line/line.rs:44:39 [INFO] [stderr] | [INFO] [stderr] 44 | if line_component.abs() > 0.000001 { [INFO] [stderr] | ^^^^^^^^ help: consider: `0.000_001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/coordinate.rs:103:9 [INFO] [stderr] | [INFO] [stderr] 103 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: module has the same name as its containing module [INFO] [stderr] --> src/geo/mod.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | mod geo; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/section.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | / self.cached_control_points.borrow_mut() [INFO] [stderr] 116 | | .get_or_insert_with(move || { [INFO] [stderr] 117 | | // This is the de-casteljau subdivision algorithm (ran twice to cut out a section of the curve) [INFO] [stderr] 118 | | let t_min = self.t_c; [INFO] [stderr] ... | [INFO] [stderr] 154 | | }) [INFO] [stderr] 155 | | .clone() [INFO] [stderr] | |____________________^ [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] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 115 | *self.cached_control_points.borrow_mut() [INFO] [stderr] 116 | .get_or_insert_with(move || { [INFO] [stderr] 117 | // This is the de-casteljau subdivision algorithm (ran twice to cut out a section of the curve) [INFO] [stderr] 118 | let t_min = self.t_c; [INFO] [stderr] 119 | [INFO] [stderr] 120 | // Get the weights from the curve [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/bezier/subdivide.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | ((Point, Point, Point, Point), (Point, Point, Point, Point)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/bezier/fit.rs:108:47 [INFO] [stderr] | [INFO] [stderr] 108 | let lhs = fit_curve_cubic(&points[0..split_pos+1], start_tangent, ¢er_tangent, max_error); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `0..=split_pos` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `p` is only used to index `distances`. [INFO] [stderr] --> src/bezier/fit.rs:146:14 [INFO] [stderr] | [INFO] [stderr] 146 | for p in 0..points.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 146 | for in distances.iter_mut().take(points.len()) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/offset.rs:31:8 [INFO] [stderr] | [INFO] [stderr] 31 | if side_cp1 != side_cp2 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(side_cp1 - side_cp2).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/offset.rs:31:8 [INFO] [stderr] | [INFO] [stderr] 31 | if side_cp1 != side_cp2 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/overlaps.rs:82:47 [INFO] [stderr] | [INFO] [stderr] 82 | let (c2_cp1, c2_cp2) = if c2_t1 != 0.0 || c2_t2 != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider comparing them within some error: `(c2_t2 - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/overlaps.rs:82:47 [INFO] [stderr] | [INFO] [stderr] 82 | let (c2_cp1, c2_cp2) = if c2_t1 != 0.0 || c2_t2 != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:95:43 [INFO] [stderr] | [INFO] [stderr] 95 | ClipResult::Some((t1, t2)) => if t1 == t2 { ClipResult::Some(((t1-0.005).max(0.0), (t2+0.005).min(1.0))) } else { ClipResult::Some((t1, t2)) } [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(t1 - t2).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:95:43 [INFO] [stderr] | [INFO] [stderr] 95 | ClipResult::Some((t1, t2)) => if t1 == t2 { ClipResult::Some(((t1-0.005).max(0.0), (t2+0.005).min(1.0))) } else { ClipResult::Some((t1, t2)) } [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:105:8 [INFO] [stderr] | [INFO] [stderr] 105 | if left.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `left.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:108:15 [INFO] [stderr] | [INFO] [stderr] 108 | } else if right.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `right.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:162:12 [INFO] [stderr] | [INFO] [stderr] 162 | if c1_t1 == c1_t2 || c2_t1 == c2_t2 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(c1_t1 - c1_t2).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:162:12 [INFO] [stderr] | [INFO] [stderr] 162 | if c1_t1 == c1_t2 || c2_t1 == c2_t2 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:162:30 [INFO] [stderr] | [INFO] [stderr] 162 | if c1_t1 == c1_t2 || c2_t1 == c2_t2 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(c2_t1 - c2_t2).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:162:30 [INFO] [stderr] | [INFO] [stderr] 162 | if c1_t1 == c1_t2 || c2_t1 == c2_t2 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/bezier/intersection/fat_line.rs:226:9 [INFO] [stderr] | [INFO] [stderr] 226 | / if self.d_min.abs() < SMALL_DISTANCE && self.d_max.abs() < SMALL_DISTANCE { [INFO] [stderr] 227 | | true [INFO] [stderr] 228 | | } else { [INFO] [stderr] 229 | | false [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ help: you can reduce it to: `self.d_min.abs() < SMALL_DISTANCE && self.d_max.abs() < SMALL_DISTANCE` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/path.rs:103:9 [INFO] [stderr] | [INFO] [stderr] 103 | self.0.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.0` [INFO] [stderr] | [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: identical conversion [INFO] [stderr] --> src/bezier/path/ray.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | / (0..(path.num_points())) [INFO] [stderr] 74 | | .into_iter() [INFO] [stderr] | |____________________^ help: consider removing `.into_iter()`: `(0..(path.num_points()))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/ray.rs:75:36 [INFO] [stderr] | [INFO] [stderr] 75 | .flat_map(move |point_idx| (0..(path.num_edges(point_idx))).into_iter().map(move |edge_idx| GraphEdgeRef { start_idx: point_idx, edge_idx: edge_idx, reverse: false })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..(path.num_edges(point_idx)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/bezier/path/ray.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | / if (start_point.x()*a + start_point.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] 91 | | && (end_point.x()*a + end_point.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] 92 | | && (cp1.x()*a + cp1.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] 93 | | && (cp2.x()*a + cp2.y()*b + c).abs() < SMALL_DISTANCE { [INFO] [stderr] ... | [INFO] [stderr] 96 | | false [INFO] [stderr] 97 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] help: you can reduce it to [INFO] [stderr] | [INFO] [stderr] 90 | (start_point.x()*a + start_point.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] 91 | && (end_point.x()*a + end_point.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] 92 | && (cp1.x()*a + cp1.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] 93 | && (cp2.x()*a + cp2.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/path/ray.rs:182:20 [INFO] [stderr] | [INFO] [stderr] 182 | if incoming_side.signum() != leaving_side.signum() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(incoming_side.signum() - leaving_side.signum()).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/path/ray.rs:182:20 [INFO] [stderr] | [INFO] [stderr] 182 | if incoming_side.signum() != leaving_side.signum() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/bezier/path/ray.rs:199:133 [INFO] [stderr] | [INFO] [stderr] 199 | fn crossing_and_collinear_collisions, L: Line>(path: &Path, ray: &L) -> (Vec<(GraphEdgeRef, f64, f64, P)>, Vec<(GraphEdgeRef, f64, f64, P)>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/ray.rs:220:16 [INFO] [stderr] | [INFO] [stderr] 220 | if section_with_point.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `section_with_point.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/bezier/path/ray.rs:279:17 [INFO] [stderr] | [INFO] [stderr] 279 | / if position.is_near_to(&end_point, SMALL_DISTANCE) && path.edges_for_point(end_point_idx).into_iter().map(|edge| path.get_edge(edge)).any(|next| curve_is_collinear(&next, ray_coeffs)) { [INFO] [stderr] 280 | | false [INFO] [stderr] 281 | | } else { [INFO] [stderr] 282 | | true [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________________^ help: you can reduce it to: `!(position.is_near_to(&end_point, SMALL_DISTANCE) && path.edges_for_point(end_point_idx).into_iter().map(|edge| path.get_edge(edge)).any(|next| curve_is_collinear(&next, ray_coeffs)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/bezier/path/ray.rs:289:17 [INFO] [stderr] | [INFO] [stderr] 289 | / if position.is_near_to(&start_point, SMALL_DISTANCE) && path.reverse_edges_for_point(start_point_idx).into_iter().map(|edge| path.get_edge(edge)).any(|previous| curve_is_collinear(&previous, ray_coeffs)) { [INFO] [stderr] 290 | | // Collisions crossing collinear sections are taken care of during the collinear collision phase [INFO] [stderr] 291 | | false [INFO] [stderr] 292 | | } else { [INFO] [stderr] 293 | | true [INFO] [stderr] 294 | | } [INFO] [stderr] | |_________________^ help: you can reduce it to: `!(position.is_near_to(&start_point, SMALL_DISTANCE) && path.reverse_edges_for_point(start_point_idx).into_iter().map(|edge| path.get_edge(edge)).any(|previous| curve_is_collinear(&previous, ray_coeffs)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/path/ray.rs:405:17 [INFO] [stderr] | [INFO] [stderr] 405 | side_in != side_out [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(side_in - side_out).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/path/ray.rs:405:17 [INFO] [stderr] | [INFO] [stderr] 405 | side_in != side_out [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/ray.rs:425:20 [INFO] [stderr] | [INFO] [stderr] 425 | if visited_start.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `visited_start.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/path_builder.rs:37:27 [INFO] [stderr] | [INFO] [stderr] 37 | let distance = if self.points.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.points.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/graph_path.rs:163:35 [INFO] [stderr] | [INFO] [stderr] 163 | debug_assert!(graph.points[midpoint].forward_edges.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!graph.points[midpoint].forward_edges.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bezier::path::graph_path::GraphPath` [INFO] [stderr] --> src/bezier/path/graph_path.rs:285:5 [INFO] [stderr] | [INFO] [stderr] 285 | / pub fn new() -> GraphPath { [INFO] [stderr] 286 | | GraphPath { [INFO] [stderr] 287 | | points: vec![], [INFO] [stderr] 288 | | next_path_index: 0 [INFO] [stderr] 289 | | } [INFO] [stderr] 290 | | } [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] 269 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:414:9 [INFO] [stderr] | [INFO] [stderr] 414 | / (0..(self.points.len())) [INFO] [stderr] 415 | | .into_iter() [INFO] [stderr] | |________________________^ help: consider removing `.into_iter()`: `(0..(self.points.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:424:9 [INFO] [stderr] | [INFO] [stderr] 424 | / (0..(self.points.len())) [INFO] [stderr] 425 | | .into_iter() [INFO] [stderr] | |________________________^ help: consider removing `.into_iter()`: `(0..(self.points.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:426:40 [INFO] [stderr] | [INFO] [stderr] 426 | .flat_map(move |point_idx| (0..(self.points[point_idx].forward_edges.len())) [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 427 | | .into_iter() [INFO] [stderr] | |____________________________^ help: consider removing `.into_iter()`: `(0..(self.points[point_idx].forward_edges.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:442:9 [INFO] [stderr] | [INFO] [stderr] 442 | / (0..(self.points[point_num].forward_edges.len())) [INFO] [stderr] 443 | | .into_iter() [INFO] [stderr] | |________________________^ help: consider removing `.into_iter()`: `(0..(self.points[point_num].forward_edges.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:452:9 [INFO] [stderr] | [INFO] [stderr] 452 | self.points[point_num].position.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.points[point_num].position` [INFO] [stderr] | [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: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:468:17 [INFO] [stderr] | [INFO] [stderr] 468 | / (0..(self.points[connected_from].forward_edges.len())) [INFO] [stderr] 469 | | .into_iter() [INFO] [stderr] | |________________________________^ help: consider removing `.into_iter()`: `(0..(self.points[connected_from].forward_edges.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:560:76 [INFO] [stderr] | [INFO] [stderr] 560 | self.points[edge_ref.start_idx].forward_edges[edge_ref.edge_idx] = self.points[next_point_idx].forward_edges[next_edge_idx].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.points[next_point_idx].forward_edges[next_edge_idx]` [INFO] [stderr] | [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: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:833:32 [INFO] [stderr] | [INFO] [stderr] 833 | for tgt_idx in collide_to.into_iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `collide_to` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [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/bezier/path/graph_path.rs:985:5 [INFO] [stderr] | [INFO] [stderr] 985 | / pub fn get_edge<'a>(&'a self, edge: GraphEdgeRef) -> GraphEdge<'a, Point, Label> { [INFO] [stderr] 986 | | GraphEdge::new(self, edge) [INFO] [stderr] 987 | | } [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: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:1071:43 [INFO] [stderr] | [INFO] [stderr] 1071 | let previous_edge_idx = (0..(self.points[previous_point_idx].forward_edges.len())) [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 1072 | | .into_iter() [INFO] [stderr] | |________________________________^ help: consider removing `.into_iter()`: `(0..(self.points[previous_point_idx].forward_edges.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/graph_path.rs:1262:20 [INFO] [stderr] | [INFO] [stderr] 1262 | if points_to_check.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `points_to_check.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1342:35 [INFO] [stderr] | [INFO] [stderr] 1342 | let start_point = self.points[point_idx].position.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.points[point_idx].position` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1447:9 [INFO] [stderr] | [INFO] [stderr] 1447 | self.graph.points[self.start_point_index()].position.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.graph.points[self.start_point_index()].position` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1455:9 [INFO] [stderr] | [INFO] [stderr] 1455 | self.graph.points[self.end_point_index()].position.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.graph.points[self.end_point_index()].position` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1466:14 [INFO] [stderr] | [INFO] [stderr] 1466 | (edge.cp2.clone(), edge.cp1.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `edge.cp2` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1466:32 [INFO] [stderr] | [INFO] [stderr] 1466 | (edge.cp2.clone(), edge.cp1.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `edge.cp1` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1468:14 [INFO] [stderr] | [INFO] [stderr] 1468 | (edge.cp1.clone(), edge.cp2.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `edge.cp1` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1468:32 [INFO] [stderr] | [INFO] [stderr] 1468 | (edge.cp1.clone(), edge.cp2.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `edge.cp2` [INFO] [stderr] | [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: length comparison to zero [INFO] [stderr] --> src/bezier/path/graph_path.rs:1521:8 [INFO] [stderr] | [INFO] [stderr] 1521 | if collisions.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `collisions.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/graph_path.rs:1541:8 [INFO] [stderr] | [INFO] [stderr] 1541 | if collisions.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!collisions.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:1621:9 [INFO] [stderr] | [INFO] [stderr] 1621 | (0..num_edges).into_iter() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..num_edges)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:1631:17 [INFO] [stderr] | [INFO] [stderr] 1631 | (0..num_edges).into_iter() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..num_edges)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/is_clockwise.rs:16:27 [INFO] [stderr] | [INFO] [stderr] 16 | let points = vec![first_point.clone()].into_iter().chain(points).chain(vec![first_point].into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `first_point` [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/intersect.rs:22:133 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn path_intersect, P2: BezierPath, POut: BezierPathFactory>(path1: &Vec, path2: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P1]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/intersect.rs:22:150 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn path_intersect, P2: BezierPath, POut: BezierPathFactory>(path1: &Vec, path2: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/arithmetic/intersect.rs:25:8 [INFO] [stderr] | [INFO] [stderr] 25 | if path1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path1.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/arithmetic/intersect.rs:29:15 [INFO] [stderr] | [INFO] [stderr] 29 | } else if path2.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path2.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/intersect.rs:37:80 [INFO] [stderr] | [INFO] [stderr] 37 | merged_path = merged_path.merge(GraphPath::from_merged_paths(path1.into_iter().map(|path| (path, PathLabel(PathSource::Path1, PathDirection::from(path)))))); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/intersect.rs:40:82 [INFO] [stderr] | [INFO] [stderr] 40 | merged_path = merged_path.collide(GraphPath::from_merged_paths(path2.into_iter().map(|path| (path, PathLabel(PathSource::Path2, PathDirection::from(path))))), accuracy); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:37:127 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn path_add, P2: BezierPath, POut: BezierPathFactory>(path1: &Vec, path2: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:37:144 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn path_add, P2: BezierPath, POut: BezierPathFactory>(path1: &Vec, path2: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:40:8 [INFO] [stderr] | [INFO] [stderr] 40 | if path1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path1.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:44:15 [INFO] [stderr] | [INFO] [stderr] 44 | } else if path2.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path2.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:52:80 [INFO] [stderr] | [INFO] [stderr] 52 | merged_path = merged_path.merge(GraphPath::from_merged_paths(path1.into_iter().map(|path| (path, PathLabel(PathSource::Path1, PathDirection::from(path)))))); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:55:82 [INFO] [stderr] | [INFO] [stderr] 55 | merged_path = merged_path.collide(GraphPath::from_merged_paths(path2.into_iter().map(|path| (path, PathLabel(PathSource::Path2, PathDirection::from(path))))), accuracy); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:68:116 [INFO] [stderr] | [INFO] [stderr] 68 | pub fn path_remove_interior_points, POut: BezierPathFactory>(path: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:72:79 [INFO] [stderr] | [INFO] [stderr] 72 | merged_path = merged_path.merge(GraphPath::from_merged_paths(path.into_iter().map(|path| (path, PathLabel(PathSource::Path1, PathDirection::from(path)))))); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/sub.rs:22:127 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn path_sub, P2: BezierPath, POut: BezierPathFactory>(path1: &Vec, path2: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/sub.rs:22:144 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn path_sub, P2: BezierPath, POut: BezierPathFactory>(path1: &Vec, path2: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/arithmetic/sub.rs:25:8 [INFO] [stderr] | [INFO] [stderr] 25 | if path1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path1.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/arithmetic/sub.rs:29:15 [INFO] [stderr] | [INFO] [stderr] 29 | } else if path2.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path2.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/sub.rs:37:80 [INFO] [stderr] | [INFO] [stderr] 37 | merged_path = merged_path.merge(GraphPath::from_merged_paths(path1.into_iter().map(|path| (path, PathLabel(PathSource::Path1, PathDirection::from(path)))))); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/sub.rs:40:82 [INFO] [stderr] | [INFO] [stderr] 40 | merged_path = merged_path.collide(GraphPath::from_merged_paths(path2.into_iter().map(|path| (path, PathLabel(PathSource::Path2, PathDirection::from(path))))), accuracy); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `coefficients` which has no body [INFO] [stderr] --> src/line/line.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | #[inline] [INFO] [stderr] | _____-^^^^^^^^ [INFO] [stderr] 65 | | fn coefficients(&self) -> (f64, f64, f64); [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::inline_fn_without_body)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `distance_to` which has no body [INFO] [stderr] --> src/line/line.rs:70:5 [INFO] [stderr] | [INFO] [stderr] 70 | #[inline] [INFO] [stderr] | _____-^^^^^^^^ [INFO] [stderr] 71 | | fn distance_to(&self, p: &Self::Point) -> f64; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `which_side` which has no body [INFO] [stderr] --> src/line/line.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | #[inline] [INFO] [stderr] | _____-^^^^^^^^ [INFO] [stderr] 77 | | fn which_side(&self, p: &Self::Point) -> i8; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/line/line.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | self.clone() [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/line/intersection.rs:55:32 [INFO] [stderr] | [INFO] [stderr] 55 | for (delta, edge) in delta.into_iter().zip(edge.into_iter()) { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: requested on the command line with `-D clippy::into-iter-on-array` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/line/intersection.rs:55:53 [INFO] [stderr] | [INFO] [stderr] 55 | for (delta, edge) in delta.into_iter().zip(edge.into_iter()) { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/line/intersection.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 56 | if delta == &0.0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(delta - &0.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/line/intersection.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 56 | if delta == &0.0 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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/arc/circle.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / pub fn arc<'a>(&'a self, start_radians: f64, end_radians: f64) -> CircularArc<'a, Coord> { [INFO] [stderr] 52 | | CircularArc { [INFO] [stderr] 53 | | circle: self, [INFO] [stderr] 54 | | start_radians: start_radians, [INFO] [stderr] 55 | | end_radians: end_radians [INFO] [stderr] 56 | | } [INFO] [stderr] 57 | | } [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: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/arc/circle.rs:73:16 [INFO] [stderr] | [INFO] [stderr] 73 | angles.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/geo/bounding_box.rs:23:39 [INFO] [stderr] | [INFO] [stderr] 23 | let (mut min, mut max) = (first_point.clone(), first_point); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `first_point` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: aborting due to 14 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `flo_curves`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/section.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | / self.cached_control_points.borrow_mut() [INFO] [stderr] 116 | | .get_or_insert_with(move || { [INFO] [stderr] 117 | | // This is the de-casteljau subdivision algorithm (ran twice to cut out a section of the curve) [INFO] [stderr] 118 | | let t_min = self.t_c; [INFO] [stderr] ... | [INFO] [stderr] 154 | | }) [INFO] [stderr] 155 | | .clone() [INFO] [stderr] | |____________________^ [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] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 115 | *self.cached_control_points.borrow_mut() [INFO] [stderr] 116 | .get_or_insert_with(move || { [INFO] [stderr] 117 | // This is the de-casteljau subdivision algorithm (ran twice to cut out a section of the curve) [INFO] [stderr] 118 | let t_min = self.t_c; [INFO] [stderr] 119 | [INFO] [stderr] 120 | // Get the weights from the curve [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/bezier/subdivide.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | ((Point, Point, Point, Point), (Point, Point, Point, Point)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/bezier/fit.rs:108:47 [INFO] [stderr] | [INFO] [stderr] 108 | let lhs = fit_curve_cubic(&points[0..split_pos+1], start_tangent, ¢er_tangent, max_error); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `0..=split_pos` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `p` is only used to index `distances`. [INFO] [stderr] --> src/bezier/fit.rs:146:14 [INFO] [stderr] | [INFO] [stderr] 146 | for p in 0..points.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 146 | for in distances.iter_mut().take(points.len()) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/offset.rs:31:8 [INFO] [stderr] | [INFO] [stderr] 31 | if side_cp1 != side_cp2 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(side_cp1 - side_cp2).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/offset.rs:31:8 [INFO] [stderr] | [INFO] [stderr] 31 | if side_cp1 != side_cp2 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/overlaps.rs:82:47 [INFO] [stderr] | [INFO] [stderr] 82 | let (c2_cp1, c2_cp2) = if c2_t1 != 0.0 || c2_t2 != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider comparing them within some error: `(c2_t2 - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/overlaps.rs:82:47 [INFO] [stderr] | [INFO] [stderr] 82 | let (c2_cp1, c2_cp2) = if c2_t1 != 0.0 || c2_t2 != 1.0 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:95:43 [INFO] [stderr] | [INFO] [stderr] 95 | ClipResult::Some((t1, t2)) => if t1 == t2 { ClipResult::Some(((t1-0.005).max(0.0), (t2+0.005).min(1.0))) } else { ClipResult::Some((t1, t2)) } [INFO] [stderr] | ^^^^^^^^ help: consider comparing them within some error: `(t1 - t2).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:95:43 [INFO] [stderr] | [INFO] [stderr] 95 | ClipResult::Some((t1, t2)) => if t1 == t2 { ClipResult::Some(((t1-0.005).max(0.0), (t2+0.005).min(1.0))) } else { ClipResult::Some((t1, t2)) } [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:105:8 [INFO] [stderr] | [INFO] [stderr] 105 | if left.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `left.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:108:15 [INFO] [stderr] | [INFO] [stderr] 108 | } else if right.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `right.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:162:12 [INFO] [stderr] | [INFO] [stderr] 162 | if c1_t1 == c1_t2 || c2_t1 == c2_t2 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(c1_t1 - c1_t2).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:162:12 [INFO] [stderr] | [INFO] [stderr] 162 | if c1_t1 == c1_t2 || c2_t1 == c2_t2 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:162:30 [INFO] [stderr] | [INFO] [stderr] 162 | if c1_t1 == c1_t2 || c2_t1 == c2_t2 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(c2_t1 - c2_t2).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/intersection/curve_curve_clip.rs:162:30 [INFO] [stderr] | [INFO] [stderr] 162 | if c1_t1 == c1_t2 || c2_t1 == c2_t2 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/bezier/intersection/fat_line.rs:226:9 [INFO] [stderr] | [INFO] [stderr] 226 | / if self.d_min.abs() < SMALL_DISTANCE && self.d_max.abs() < SMALL_DISTANCE { [INFO] [stderr] 227 | | true [INFO] [stderr] 228 | | } else { [INFO] [stderr] 229 | | false [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ help: you can reduce it to: `self.d_min.abs() < SMALL_DISTANCE && self.d_max.abs() < SMALL_DISTANCE` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/intersection/fat_line.rs:489:27 [INFO] [stderr] | [INFO] [stderr] 489 | let mut clipped = clip_curve.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `clip_curve` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/intersection/fat_line.rs:591:27 [INFO] [stderr] | [INFO] [stderr] 591 | let mut clipped = clip_curve.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `clip_curve` [INFO] [stderr] | [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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bezier/intersection/fat_line.rs:632:21 [INFO] [stderr] | [INFO] [stderr] 632 | let t = (t as f64) / 10.0; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(t)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bezier/intersection/fat_line.rs:669:21 [INFO] [stderr] | [INFO] [stderr] 669 | let t = (t as f64) / 10.0; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(t)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bezier/intersection/fat_line.rs:705:21 [INFO] [stderr] | [INFO] [stderr] 705 | let t = (t as f64) / 10.0; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(t)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bezier/intersection/fat_line.rs:739:21 [INFO] [stderr] | [INFO] [stderr] 739 | let t = (t as f64) / 10.0; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(t)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/path.rs:103:9 [INFO] [stderr] | [INFO] [stderr] 103 | self.0.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.0` [INFO] [stderr] | [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: identical conversion [INFO] [stderr] --> src/bezier/path/ray.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | / (0..(path.num_points())) [INFO] [stderr] 74 | | .into_iter() [INFO] [stderr] | |____________________^ help: consider removing `.into_iter()`: `(0..(path.num_points()))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/ray.rs:75:36 [INFO] [stderr] | [INFO] [stderr] 75 | .flat_map(move |point_idx| (0..(path.num_edges(point_idx))).into_iter().map(move |edge_idx| GraphEdgeRef { start_idx: point_idx, edge_idx: edge_idx, reverse: false })) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..(path.num_edges(point_idx)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/bezier/path/ray.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | / if (start_point.x()*a + start_point.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] 91 | | && (end_point.x()*a + end_point.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] 92 | | && (cp1.x()*a + cp1.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] 93 | | && (cp2.x()*a + cp2.y()*b + c).abs() < SMALL_DISTANCE { [INFO] [stderr] ... | [INFO] [stderr] 96 | | false [INFO] [stderr] 97 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] help: you can reduce it to [INFO] [stderr] | [INFO] [stderr] 90 | (start_point.x()*a + start_point.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] 91 | && (end_point.x()*a + end_point.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] 92 | && (cp1.x()*a + cp1.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] 93 | && (cp2.x()*a + cp2.y()*b + c).abs() < SMALL_DISTANCE [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/path/ray.rs:182:20 [INFO] [stderr] | [INFO] [stderr] 182 | if incoming_side.signum() != leaving_side.signum() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(incoming_side.signum() - leaving_side.signum()).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/path/ray.rs:182:20 [INFO] [stderr] | [INFO] [stderr] 182 | if incoming_side.signum() != leaving_side.signum() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/bezier/path/ray.rs:199:133 [INFO] [stderr] | [INFO] [stderr] 199 | fn crossing_and_collinear_collisions, L: Line>(path: &Path, ray: &L) -> (Vec<(GraphEdgeRef, f64, f64, P)>, Vec<(GraphEdgeRef, f64, f64, P)>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/ray.rs:220:16 [INFO] [stderr] | [INFO] [stderr] 220 | if section_with_point.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `section_with_point.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/bezier/path/ray.rs:279:17 [INFO] [stderr] | [INFO] [stderr] 279 | / if position.is_near_to(&end_point, SMALL_DISTANCE) && path.edges_for_point(end_point_idx).into_iter().map(|edge| path.get_edge(edge)).any(|next| curve_is_collinear(&next, ray_coeffs)) { [INFO] [stderr] 280 | | false [INFO] [stderr] 281 | | } else { [INFO] [stderr] 282 | | true [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________________^ help: you can reduce it to: `!(position.is_near_to(&end_point, SMALL_DISTANCE) && path.edges_for_point(end_point_idx).into_iter().map(|edge| path.get_edge(edge)).any(|next| curve_is_collinear(&next, ray_coeffs)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/bezier/path/ray.rs:289:17 [INFO] [stderr] | [INFO] [stderr] 289 | / if position.is_near_to(&start_point, SMALL_DISTANCE) && path.reverse_edges_for_point(start_point_idx).into_iter().map(|edge| path.get_edge(edge)).any(|previous| curve_is_collinear(&previous, ray_coeffs)) { [INFO] [stderr] 290 | | // Collisions crossing collinear sections are taken care of during the collinear collision phase [INFO] [stderr] 291 | | false [INFO] [stderr] 292 | | } else { [INFO] [stderr] 293 | | true [INFO] [stderr] 294 | | } [INFO] [stderr] | |_________________^ help: you can reduce it to: `!(position.is_near_to(&start_point, SMALL_DISTANCE) && path.reverse_edges_for_point(start_point_idx).into_iter().map(|edge| path.get_edge(edge)).any(|previous| curve_is_collinear(&previous, ray_coeffs)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/bezier/path/ray.rs:405:17 [INFO] [stderr] | [INFO] [stderr] 405 | side_in != side_out [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(side_in - side_out).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/bezier/path/ray.rs:405:17 [INFO] [stderr] | [INFO] [stderr] 405 | side_in != side_out [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/ray.rs:425:20 [INFO] [stderr] | [INFO] [stderr] 425 | if visited_start.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `visited_start.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/ray.rs:553:17 [INFO] [stderr] | [INFO] [stderr] 553 | assert!(collisions.len() == 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `collisions.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/ray.rs:574:17 [INFO] [stderr] | [INFO] [stderr] 574 | assert!(collisions.len() == 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `collisions.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/path_builder.rs:37:27 [INFO] [stderr] | [INFO] [stderr] 37 | let distance = if self.points.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.points.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/graph_path.rs:163:35 [INFO] [stderr] | [INFO] [stderr] 163 | debug_assert!(graph.points[midpoint].forward_edges.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!graph.points[midpoint].forward_edges.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `bezier::path::graph_path::GraphPath` [INFO] [stderr] --> src/bezier/path/graph_path.rs:285:5 [INFO] [stderr] | [INFO] [stderr] 285 | / pub fn new() -> GraphPath { [INFO] [stderr] 286 | | GraphPath { [INFO] [stderr] 287 | | points: vec![], [INFO] [stderr] 288 | | next_path_index: 0 [INFO] [stderr] 289 | | } [INFO] [stderr] 290 | | } [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] 269 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:414:9 [INFO] [stderr] | [INFO] [stderr] 414 | / (0..(self.points.len())) [INFO] [stderr] 415 | | .into_iter() [INFO] [stderr] | |________________________^ help: consider removing `.into_iter()`: `(0..(self.points.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:424:9 [INFO] [stderr] | [INFO] [stderr] 424 | / (0..(self.points.len())) [INFO] [stderr] 425 | | .into_iter() [INFO] [stderr] | |________________________^ help: consider removing `.into_iter()`: `(0..(self.points.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:426:40 [INFO] [stderr] | [INFO] [stderr] 426 | .flat_map(move |point_idx| (0..(self.points[point_idx].forward_edges.len())) [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 427 | | .into_iter() [INFO] [stderr] | |____________________________^ help: consider removing `.into_iter()`: `(0..(self.points[point_idx].forward_edges.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:442:9 [INFO] [stderr] | [INFO] [stderr] 442 | / (0..(self.points[point_num].forward_edges.len())) [INFO] [stderr] 443 | | .into_iter() [INFO] [stderr] | |________________________^ help: consider removing `.into_iter()`: `(0..(self.points[point_num].forward_edges.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:452:9 [INFO] [stderr] | [INFO] [stderr] 452 | self.points[point_num].position.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.points[point_num].position` [INFO] [stderr] | [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: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:468:17 [INFO] [stderr] | [INFO] [stderr] 468 | / (0..(self.points[connected_from].forward_edges.len())) [INFO] [stderr] 469 | | .into_iter() [INFO] [stderr] | |________________________________^ help: consider removing `.into_iter()`: `(0..(self.points[connected_from].forward_edges.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:560:76 [INFO] [stderr] | [INFO] [stderr] 560 | self.points[edge_ref.start_idx].forward_edges[edge_ref.edge_idx] = self.points[next_point_idx].forward_edges[next_edge_idx].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.points[next_point_idx].forward_edges[next_edge_idx]` [INFO] [stderr] | [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: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:833:32 [INFO] [stderr] | [INFO] [stderr] 833 | for tgt_idx in collide_to.into_iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `collide_to` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [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/bezier/path/graph_path.rs:985:5 [INFO] [stderr] | [INFO] [stderr] 985 | / pub fn get_edge<'a>(&'a self, edge: GraphEdgeRef) -> GraphEdge<'a, Point, Label> { [INFO] [stderr] 986 | | GraphEdge::new(self, edge) [INFO] [stderr] 987 | | } [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: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:1071:43 [INFO] [stderr] | [INFO] [stderr] 1071 | let previous_edge_idx = (0..(self.points[previous_point_idx].forward_edges.len())) [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 1072 | | .into_iter() [INFO] [stderr] | |________________________________^ help: consider removing `.into_iter()`: `(0..(self.points[previous_point_idx].forward_edges.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/graph_path.rs:1262:20 [INFO] [stderr] | [INFO] [stderr] 1262 | if points_to_check.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `points_to_check.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1342:35 [INFO] [stderr] | [INFO] [stderr] 1342 | let start_point = self.points[point_idx].position.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.points[point_idx].position` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1447:9 [INFO] [stderr] | [INFO] [stderr] 1447 | self.graph.points[self.start_point_index()].position.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.graph.points[self.start_point_index()].position` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1455:9 [INFO] [stderr] | [INFO] [stderr] 1455 | self.graph.points[self.end_point_index()].position.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.graph.points[self.end_point_index()].position` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1466:14 [INFO] [stderr] | [INFO] [stderr] 1466 | (edge.cp2.clone(), edge.cp1.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `edge.cp2` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1466:32 [INFO] [stderr] | [INFO] [stderr] 1466 | (edge.cp2.clone(), edge.cp1.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `edge.cp1` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1468:14 [INFO] [stderr] | [INFO] [stderr] 1468 | (edge.cp1.clone(), edge.cp2.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `edge.cp1` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/graph_path.rs:1468:32 [INFO] [stderr] | [INFO] [stderr] 1468 | (edge.cp1.clone(), edge.cp2.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `edge.cp2` [INFO] [stderr] | [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: length comparison to zero [INFO] [stderr] --> src/bezier/path/graph_path.rs:1521:8 [INFO] [stderr] | [INFO] [stderr] 1521 | if collisions.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `collisions.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/graph_path.rs:1541:8 [INFO] [stderr] | [INFO] [stderr] 1541 | if collisions.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!collisions.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:1621:9 [INFO] [stderr] | [INFO] [stderr] 1621 | (0..num_edges).into_iter() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..num_edges)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:1631:17 [INFO] [stderr] | [INFO] [stderr] 1631 | (0..num_edges).into_iter() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..num_edges)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/bezier/path/graph_path.rs:1884:31 [INFO] [stderr] | [INFO] [stderr] 1884 | let edges = (0..4).into_iter() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..4)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bezier/path/is_clockwise.rs:16:27 [INFO] [stderr] | [INFO] [stderr] 16 | let points = vec![first_point.clone()].into_iter().chain(points).chain(vec![first_point].into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `first_point` [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/intersect.rs:22:133 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn path_intersect, P2: BezierPath, POut: BezierPathFactory>(path1: &Vec, path2: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P1]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/intersect.rs:22:150 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn path_intersect, P2: BezierPath, POut: BezierPathFactory>(path1: &Vec, path2: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/arithmetic/intersect.rs:25:8 [INFO] [stderr] | [INFO] [stderr] 25 | if path1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path1.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/arithmetic/intersect.rs:29:15 [INFO] [stderr] | [INFO] [stderr] 29 | } else if path2.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path2.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/intersect.rs:37:80 [INFO] [stderr] | [INFO] [stderr] 37 | merged_path = merged_path.merge(GraphPath::from_merged_paths(path1.into_iter().map(|path| (path, PathLabel(PathSource::Path1, PathDirection::from(path)))))); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/intersect.rs:40:82 [INFO] [stderr] | [INFO] [stderr] 40 | merged_path = merged_path.collide(GraphPath::from_merged_paths(path2.into_iter().map(|path| (path, PathLabel(PathSource::Path2, PathDirection::from(path))))), accuracy); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:37:127 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn path_add, P2: BezierPath, POut: BezierPathFactory>(path1: &Vec, path2: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:37:144 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn path_add, P2: BezierPath, POut: BezierPathFactory>(path1: &Vec, path2: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:40:8 [INFO] [stderr] | [INFO] [stderr] 40 | if path1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path1.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:44:15 [INFO] [stderr] | [INFO] [stderr] 44 | } else if path2.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path2.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:52:80 [INFO] [stderr] | [INFO] [stderr] 52 | merged_path = merged_path.merge(GraphPath::from_merged_paths(path1.into_iter().map(|path| (path, PathLabel(PathSource::Path1, PathDirection::from(path)))))); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:55:82 [INFO] [stderr] | [INFO] [stderr] 55 | merged_path = merged_path.collide(GraphPath::from_merged_paths(path2.into_iter().map(|path| (path, PathLabel(PathSource::Path2, PathDirection::from(path))))), accuracy); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:68:116 [INFO] [stderr] | [INFO] [stderr] 68 | pub fn path_remove_interior_points, POut: BezierPathFactory>(path: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/add.rs:72:79 [INFO] [stderr] | [INFO] [stderr] 72 | merged_path = merged_path.merge(GraphPath::from_merged_paths(path.into_iter().map(|path| (path, PathLabel(PathSource::Path1, PathDirection::from(path)))))); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/sub.rs:22:127 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn path_sub, P2: BezierPath, POut: BezierPathFactory>(path1: &Vec, path2: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/bezier/path/arithmetic/sub.rs:22:144 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn path_sub, P2: BezierPath, POut: BezierPathFactory>(path1: &Vec, path2: &Vec, accuracy: f64) -> Vec [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[P2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/arithmetic/sub.rs:25:8 [INFO] [stderr] | [INFO] [stderr] 25 | if path1.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path1.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bezier/path/arithmetic/sub.rs:29:15 [INFO] [stderr] | [INFO] [stderr] 29 | } else if path2.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path2.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/sub.rs:37:80 [INFO] [stderr] | [INFO] [stderr] 37 | merged_path = merged_path.merge(GraphPath::from_merged_paths(path1.into_iter().map(|path| (path, PathLabel(PathSource::Path1, PathDirection::from(path)))))); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/bezier/path/arithmetic/sub.rs:40:82 [INFO] [stderr] | [INFO] [stderr] 40 | merged_path = merged_path.collide(GraphPath::from_merged_paths(path2.into_iter().map(|path| (path, PathLabel(PathSource::Path2, PathDirection::from(path))))), accuracy); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `coefficients` which has no body [INFO] [stderr] --> src/line/line.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | #[inline] [INFO] [stderr] | _____-^^^^^^^^ [INFO] [stderr] 65 | | fn coefficients(&self) -> (f64, f64, f64); [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::inline_fn_without_body)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `distance_to` which has no body [INFO] [stderr] --> src/line/line.rs:70:5 [INFO] [stderr] | [INFO] [stderr] 70 | #[inline] [INFO] [stderr] | _____-^^^^^^^^ [INFO] [stderr] 71 | | fn distance_to(&self, p: &Self::Point) -> f64; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] error: use of `#[inline]` on trait method `which_side` which has no body [INFO] [stderr] --> src/line/line.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | #[inline] [INFO] [stderr] | _____-^^^^^^^^ [INFO] [stderr] 77 | | fn which_side(&self, p: &Self::Point) -> i8; [INFO] [stderr] | |____- help: remove [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inline_fn_without_body [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/line/line.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | self.clone() [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/line/intersection.rs:55:32 [INFO] [stderr] | [INFO] [stderr] 55 | for (delta, edge) in delta.into_iter().zip(edge.into_iter()) { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: requested on the command line with `-D clippy::into-iter-on-array` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/line/intersection.rs:55:53 [INFO] [stderr] | [INFO] [stderr] 55 | for (delta, edge) in delta.into_iter().zip(edge.into_iter()) { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/line/intersection.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 56 | if delta == &0.0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(delta - &0.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/line/intersection.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 56 | if delta == &0.0 { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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/arc/circle.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / pub fn arc<'a>(&'a self, start_radians: f64, end_radians: f64) -> CircularArc<'a, Coord> { [INFO] [stderr] 52 | | CircularArc { [INFO] [stderr] 53 | | circle: self, [INFO] [stderr] 54 | | start_radians: start_radians, [INFO] [stderr] 55 | | end_radians: end_radians [INFO] [stderr] 56 | | } [INFO] [stderr] 57 | | } [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: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/arc/circle.rs:73:16 [INFO] [stderr] | [INFO] [stderr] 73 | angles.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/arc/circle.rs:169:25 [INFO] [stderr] | [INFO] [stderr] 169 | let t = (t as f64)/10.0; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(t)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/arc/circle.rs:182:25 [INFO] [stderr] | [INFO] [stderr] 182 | let t = (t as f64)/10.0; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(t)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/geo/bounding_box.rs:23:39 [INFO] [stderr] | [INFO] [stderr] 23 | let (mut min, mut max) = (first_point.clone(), first_point); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `first_point` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: aborting due to 14 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `flo_curves`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "8618a3b69a9eb4ad00cf7cde9e7bf259d29849f6733f05d2a99746c96046b915"` [INFO] running `"docker" "rm" "-f" "8618a3b69a9eb4ad00cf7cde9e7bf259d29849f6733f05d2a99746c96046b915"` [INFO] [stdout] 8618a3b69a9eb4ad00cf7cde9e7bf259d29849f6733f05d2a99746c96046b915