[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