[INFO] crate spade 1.6.0 is already in cache [INFO] extracting crate spade 1.6.0 into work/ex/clippy-test-run/sources/stable/reg/spade/1.6.0 [INFO] extracting crate spade 1.6.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/spade/1.6.0 [INFO] validating manifest of spade-1.6.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of spade-1.6.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing spade-1.6.0 [INFO] finished frobbing spade-1.6.0 [INFO] frobbed toml for spade-1.6.0 written to work/ex/clippy-test-run/sources/stable/reg/spade/1.6.0/Cargo.toml [INFO] started frobbing spade-1.6.0 [INFO] finished frobbing spade-1.6.0 [INFO] frobbed toml for spade-1.6.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/spade/1.6.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting spade-1.6.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/spade/1.6.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] fbe46c55faf40f492961965737daadbd872760db57c736706b7d2bd38a2efa14 [INFO] running `"docker" "start" "-a" "fbe46c55faf40f492961965737daadbd872760db57c736706b7d2bd38a2efa14"` [INFO] [stderr] Checking approx v0.2.1 [INFO] [stderr] Checking nalgebra v0.16.13 [INFO] [stderr] Checking serde v1.0.85 [INFO] [stderr] Checking cgmath v0.16.1 [INFO] [stderr] Checking serde_json v1.0.37 [INFO] [stderr] Checking spade v1.6.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/bigvec.rs:29:19 [INFO] [stderr] | [INFO] [stderr] 29 | BigVec2 { x: x, y: y } [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/bigvec.rs:29:25 [INFO] [stderr] | [INFO] [stderr] 29 | BigVec2 { x: x, y: y } [INFO] [stderr] | ^^^^ help: replace it with: `y` [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: consider choosing a more descriptive name [INFO] [stderr] --> src/exactpred.rs:810:13 [INFO] [stderr] | [INFO] [stderr] 810 | let (j, _0, x0) = two_one_diff(a1, a0, b0); [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::just_underscores_and_digits)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#just_underscores_and_digits [INFO] [stderr] [INFO] [stderr] warning: consider choosing a more descriptive name [INFO] [stderr] --> src/exactpred.rs:988:14 [INFO] [stderr] | [INFO] [stderr] 988 | let (_j, _0, x0) = two_one_sum(a1, a0, b0); [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#just_underscores_and_digits [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/delaunay/dcel.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/delaunay/dcel.rs:159:13 [INFO] [stderr] | [INFO] [stderr] 159 | face: face, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `face` [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/delaunay/dcel.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | face: face, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `face` [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/delaunay/dcel.rs:258:13 [INFO] [stderr] | [INFO] [stderr] 258 | updated_vertex: updated_vertex, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `updated_vertex` [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/delaunay/dcel.rs:259:13 [INFO] [stderr] | [INFO] [stderr] 259 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/delaunay/dcel.rs:547:13 [INFO] [stderr] | [INFO] [stderr] 547 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:555:13 [INFO] [stderr] | [INFO] [stderr] 555 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:615:13 [INFO] [stderr] | [INFO] [stderr] 615 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:616:13 [INFO] [stderr] | [INFO] [stderr] 616 | cur_until: cur_until, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cur_until` [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/delaunay/dcel.rs:623:13 [INFO] [stderr] | [INFO] [stderr] 623 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:674:13 [INFO] [stderr] | [INFO] [stderr] 674 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:704:13 [INFO] [stderr] | [INFO] [stderr] 704 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:732:13 [INFO] [stderr] | [INFO] [stderr] 732 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:797:13 [INFO] [stderr] | [INFO] [stderr] 797 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:798:13 [INFO] [stderr] | [INFO] [stderr] 798 | handle: handle, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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/delaunay/dcel.rs:862:13 [INFO] [stderr] | [INFO] [stderr] 862 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:863:13 [INFO] [stderr] | [INFO] [stderr] 863 | handle: handle, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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/delaunay/dcel.rs:986:13 [INFO] [stderr] | [INFO] [stderr] 986 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:987:13 [INFO] [stderr] | [INFO] [stderr] 987 | handle: handle, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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/delaunay/delaunay2d.rs:1417:17 [INFO] [stderr] | [INFO] [stderr] 1417 | height: height [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [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/delaunay/delaunay_locate.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | point: point, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `point` [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/delaunay/delaunay_locate.rs:107:13 [INFO] [stderr] | [INFO] [stderr] 107 | handle: handle, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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/delaunay/cdt.rs:624:13 [INFO] [stderr] | [INFO] [stderr] 624 | left_hull: left_hull, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `left_hull` [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/delaunay/cdt.rs:625:13 [INFO] [stderr] | [INFO] [stderr] 625 | right_hull: right_hull, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `right_hull` [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/delaunay/line_intersection_iterator.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [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/delaunay/line_intersection_iterator.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | delaunay: delaunay, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `delaunay` [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/delaunay/line_intersection_iterator.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [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/delaunay/line_intersection_iterator.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | delaunay: delaunay, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `delaunay` [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/primitives.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | from: from, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `from` [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/primitives.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | to: to, [INFO] [stderr] | ^^^^^^ help: replace it with: `to` [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/primitives.rs:237:26 [INFO] [stderr] | [INFO] [stderr] 237 | SimpleTriangle { v0: v0, v1: v1, v2: v2 } [INFO] [stderr] | ^^^^^^ help: replace it with: `v0` [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/primitives.rs:237:34 [INFO] [stderr] | [INFO] [stderr] 237 | SimpleTriangle { v0: v0, v1: v1, v2: v2 } [INFO] [stderr] | ^^^^^^ help: replace it with: `v1` [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/primitives.rs:237:42 [INFO] [stderr] | [INFO] [stderr] 237 | SimpleTriangle { v0: v0, v1: v1, v2: v2 } [INFO] [stderr] | ^^^^^^ help: replace it with: `v2` [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/primitives.rs:307:13 [INFO] [stderr] | [INFO] [stderr] 307 | let y = (-len_b * *c.nth(0) + len_c * *b.nth(0)) / d; [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: redundant field names in struct initialization [INFO] [stderr] --> src/primitives.rs:370:13 [INFO] [stderr] | [INFO] [stderr] 370 | 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/primitives.rs:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | 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/rtree.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rtree.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | query_point: query_point, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `query_point` [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/rtree.rs:227:17 [INFO] [stderr] | [INFO] [stderr] 227 | distance: distance [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `distance` [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/rtree.rs:311:13 [INFO] [stderr] | [INFO] [stderr] 311 | options: options, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `options` [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/rtree.rs:312:13 [INFO] [stderr] | [INFO] [stderr] 312 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `depth` [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/rtree.rs:321:13 [INFO] [stderr] | [INFO] [stderr] 321 | children: children, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `children` [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/rtree.rs:322:13 [INFO] [stderr] | [INFO] [stderr] 322 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `depth` [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/rtree.rs:323:13 [INFO] [stderr] | [INFO] [stderr] 323 | options: options [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `options` [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/rtree.rs:604:25 [INFO] [stderr] | [INFO] [stderr] 604 | distance: distance, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `distance` [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/rtree.rs:859:13 [INFO] [stderr] | [INFO] [stderr] 859 | reinsertions: reinsertions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reinsertions` [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/bigvec.rs:29:19 [INFO] [stderr] | [INFO] [stderr] 29 | BigVec2 { x: x, y: y } [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/bigvec.rs:29:25 [INFO] [stderr] | [INFO] [stderr] 29 | BigVec2 { x: x, y: y } [INFO] [stderr] | ^^^^ help: replace it with: `y` [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: consider choosing a more descriptive name [INFO] [stderr] --> src/exactpred.rs:810:13 [INFO] [stderr] | [INFO] [stderr] 810 | let (j, _0, x0) = two_one_diff(a1, a0, b0); [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::just_underscores_and_digits)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#just_underscores_and_digits [INFO] [stderr] [INFO] [stderr] warning: consider choosing a more descriptive name [INFO] [stderr] --> src/exactpred.rs:988:14 [INFO] [stderr] | [INFO] [stderr] 988 | let (_j, _0, x0) = two_one_sum(a1, a0, b0); [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#just_underscores_and_digits [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/delaunay/dcel.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/delaunay/dcel.rs:159:13 [INFO] [stderr] | [INFO] [stderr] 159 | face: face, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `face` [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/delaunay/dcel.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | face: face, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `face` [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/delaunay/dcel.rs:258:13 [INFO] [stderr] | [INFO] [stderr] 258 | updated_vertex: updated_vertex, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `updated_vertex` [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/delaunay/dcel.rs:259:13 [INFO] [stderr] | [INFO] [stderr] 259 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/delaunay/dcel.rs:547:13 [INFO] [stderr] | [INFO] [stderr] 547 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:555:13 [INFO] [stderr] | [INFO] [stderr] 555 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:615:13 [INFO] [stderr] | [INFO] [stderr] 615 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:616:13 [INFO] [stderr] | [INFO] [stderr] 616 | cur_until: cur_until, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cur_until` [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/delaunay/dcel.rs:623:13 [INFO] [stderr] | [INFO] [stderr] 623 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:674:13 [INFO] [stderr] | [INFO] [stderr] 674 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:704:13 [INFO] [stderr] | [INFO] [stderr] 704 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:732:13 [INFO] [stderr] | [INFO] [stderr] 732 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:797:13 [INFO] [stderr] | [INFO] [stderr] 797 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:798:13 [INFO] [stderr] | [INFO] [stderr] 798 | handle: handle, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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/delaunay/dcel.rs:862:13 [INFO] [stderr] | [INFO] [stderr] 862 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:863:13 [INFO] [stderr] | [INFO] [stderr] 863 | handle: handle, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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/delaunay/dcel.rs:986:13 [INFO] [stderr] | [INFO] [stderr] 986 | dcel: dcel, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `dcel` [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/delaunay/dcel.rs:987:13 [INFO] [stderr] | [INFO] [stderr] 987 | handle: handle, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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/delaunay/delaunay2d.rs:1417:17 [INFO] [stderr] | [INFO] [stderr] 1417 | height: height [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [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/delaunay/delaunay_locate.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | point: point, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `point` [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/delaunay/delaunay_locate.rs:107:13 [INFO] [stderr] | [INFO] [stderr] 107 | handle: handle, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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/delaunay/cdt.rs:624:13 [INFO] [stderr] | [INFO] [stderr] 624 | left_hull: left_hull, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `left_hull` [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/delaunay/cdt.rs:625:13 [INFO] [stderr] | [INFO] [stderr] 625 | right_hull: right_hull, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `right_hull` [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/delaunay/line_intersection_iterator.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [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/delaunay/line_intersection_iterator.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | delaunay: delaunay, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `delaunay` [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/delaunay/line_intersection_iterator.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [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/delaunay/line_intersection_iterator.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | delaunay: delaunay, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `delaunay` [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/primitives.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | from: from, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `from` [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/primitives.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | to: to, [INFO] [stderr] | ^^^^^^ help: replace it with: `to` [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/primitives.rs:237:26 [INFO] [stderr] | [INFO] [stderr] 237 | SimpleTriangle { v0: v0, v1: v1, v2: v2 } [INFO] [stderr] | ^^^^^^ help: replace it with: `v0` [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/primitives.rs:237:34 [INFO] [stderr] | [INFO] [stderr] 237 | SimpleTriangle { v0: v0, v1: v1, v2: v2 } [INFO] [stderr] | ^^^^^^ help: replace it with: `v1` [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/primitives.rs:237:42 [INFO] [stderr] | [INFO] [stderr] 237 | SimpleTriangle { v0: v0, v1: v1, v2: v2 } [INFO] [stderr] | ^^^^^^ help: replace it with: `v2` [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/primitives.rs:307:13 [INFO] [stderr] | [INFO] [stderr] 307 | let y = (-len_b * *c.nth(0) + len_c * *b.nth(0)) / d; [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: redundant field names in struct initialization [INFO] [stderr] --> src/primitives.rs:370:13 [INFO] [stderr] | [INFO] [stderr] 370 | 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/primitives.rs:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | 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/rtree.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rtree.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | query_point: query_point, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `query_point` [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/rtree.rs:227:17 [INFO] [stderr] | [INFO] [stderr] 227 | distance: distance [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `distance` [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/rtree.rs:311:13 [INFO] [stderr] | [INFO] [stderr] 311 | options: options, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `options` [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/rtree.rs:312:13 [INFO] [stderr] | [INFO] [stderr] 312 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `depth` [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/rtree.rs:321:13 [INFO] [stderr] | [INFO] [stderr] 321 | children: children, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `children` [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/rtree.rs:322:13 [INFO] [stderr] | [INFO] [stderr] 322 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `depth` [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/rtree.rs:323:13 [INFO] [stderr] | [INFO] [stderr] 323 | options: options [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `options` [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/rtree.rs:604:25 [INFO] [stderr] | [INFO] [stderr] 604 | distance: distance, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `distance` [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/rtree.rs:859:13 [INFO] [stderr] | [INFO] [stderr] 859 | reinsertions: reinsertions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reinsertions` [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/exactpred.rs:25:23 [INFO] [stderr] | [INFO] [stderr] 25 | const SPLITTER: f64 = 134217729f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `134_217_729f64` [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: long literal lacking separators [INFO] [stderr] --> src/exactpred.rs:26:23 [INFO] [stderr] | [INFO] [stderr] 26 | const EPSILON: f64 = 0.00000000000000011102230246251565; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0.000_000_000_000_000_111_022_302_462_515_65` [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/exactpred.rs:165:5 [INFO] [stderr] | [INFO] [stderr] 165 | return incircleadapt(pa, pb, pc, pd, permanent); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `incircleadapt(pa, pb, pc, pd, permanent)` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/delaunay/delaunay2d.rs:993:28 [INFO] [stderr] | [INFO] [stderr] 993 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 994 | | if first_index == second_index || first_index == third_index || [INFO] [stderr] 995 | | second_index == third_index [INFO] [stderr] 996 | | { [INFO] [stderr] ... | [INFO] [stderr] 1029 | | } [INFO] [stderr] 1030 | | } [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] 993 | } else if first_index == second_index || first_index == third_index || [INFO] [stderr] 994 | second_index == third_index [INFO] [stderr] 995 | { [INFO] [stderr] 996 | // Point lies on an edge of the bezier simplex [INFO] [stderr] 997 | let (i2, i1) = if first_index == second_index { [INFO] [stderr] 998 | (first_index, third_index) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/delaunay/cdt.rs:398:9 [INFO] [stderr] | [INFO] [stderr] 398 | handle [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/delaunay/cdt.rs:397:22 [INFO] [stderr] | [INFO] [stderr] 397 | let handle = self.insert_with_hint_option(vertex, None); [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/delaunay/line_intersection_iterator.rs:241:24 [INFO] [stderr] | [INFO] [stderr] 241 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 242 | | if self.line.is_projection_on_edge(&edge.to().position()) { [INFO] [stderr] 243 | | Some(VertexIntersection(edge.to())) [INFO] [stderr] 244 | | } else { [INFO] [stderr] 245 | | None [INFO] [stderr] 246 | | } [INFO] [stderr] 247 | | } [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] 241 | } else if self.line.is_projection_on_edge(&edge.to().position()) { [INFO] [stderr] 242 | Some(VertexIntersection(edge.to())) [INFO] [stderr] 243 | } else { [INFO] [stderr] 244 | None [INFO] [stderr] 245 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/delaunay/delaunay_basic.rs:204:17 [INFO] [stderr] | [INFO] [stderr] 204 | return Result::Err(vertex); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Result::Err(vertex)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/primitives.rs:180:16 [INFO] [stderr] | [INFO] [stderr] 180 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 181 | | if s <= V::Scalar::zero() { [INFO] [stderr] 182 | | p1.clone() [INFO] [stderr] 183 | | } else { [INFO] [stderr] 184 | | p2.clone() [INFO] [stderr] 185 | | } [INFO] [stderr] 186 | | } [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] 180 | } else if s <= V::Scalar::zero() { [INFO] [stderr] 181 | p1.clone() [INFO] [stderr] 182 | } else { [INFO] [stderr] 183 | p2.clone() [INFO] [stderr] 184 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/rtree.rs:511:21 [INFO] [stderr] | [INFO] [stderr] 511 | overlap_increase [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/rtree.rs:510:44 [INFO] [stderr] | [INFO] [stderr] 510 | let overlap_increase = new_overlap - overlap; [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: long literal lacking separators [INFO] [stderr] --> src/exactpred.rs:25:23 [INFO] [stderr] | [INFO] [stderr] 25 | const SPLITTER: f64 = 134217729f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `134_217_729f64` [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: long literal lacking separators [INFO] [stderr] --> src/exactpred.rs:26:23 [INFO] [stderr] | [INFO] [stderr] 26 | const EPSILON: f64 = 0.00000000000000011102230246251565; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0.000_000_000_000_000_111_022_302_462_515_65` [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/exactpred.rs:165:5 [INFO] [stderr] | [INFO] [stderr] 165 | return incircleadapt(pa, pb, pc, pd, permanent); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `incircleadapt(pa, pb, pc, pd, permanent)` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/delaunay/delaunay2d.rs:993:28 [INFO] [stderr] | [INFO] [stderr] 993 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 994 | | if first_index == second_index || first_index == third_index || [INFO] [stderr] 995 | | second_index == third_index [INFO] [stderr] 996 | | { [INFO] [stderr] ... | [INFO] [stderr] 1029 | | } [INFO] [stderr] 1030 | | } [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] 993 | } else if first_index == second_index || first_index == third_index || [INFO] [stderr] 994 | second_index == third_index [INFO] [stderr] 995 | { [INFO] [stderr] 996 | // Point lies on an edge of the bezier simplex [INFO] [stderr] 997 | let (i2, i1) = if first_index == second_index { [INFO] [stderr] 998 | (first_index, third_index) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/delaunay/cdt.rs:398:9 [INFO] [stderr] | [INFO] [stderr] 398 | handle [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/delaunay/cdt.rs:397:22 [INFO] [stderr] | [INFO] [stderr] 397 | let handle = self.insert_with_hint_option(vertex, None); [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/delaunay/line_intersection_iterator.rs:241:24 [INFO] [stderr] | [INFO] [stderr] 241 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 242 | | if self.line.is_projection_on_edge(&edge.to().position()) { [INFO] [stderr] 243 | | Some(VertexIntersection(edge.to())) [INFO] [stderr] 244 | | } else { [INFO] [stderr] 245 | | None [INFO] [stderr] 246 | | } [INFO] [stderr] 247 | | } [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] 241 | } else if self.line.is_projection_on_edge(&edge.to().position()) { [INFO] [stderr] 242 | Some(VertexIntersection(edge.to())) [INFO] [stderr] 243 | } else { [INFO] [stderr] 244 | None [INFO] [stderr] 245 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/delaunay/delaunay_basic.rs:204:17 [INFO] [stderr] | [INFO] [stderr] 204 | return Result::Err(vertex); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Result::Err(vertex)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/primitives.rs:180:16 [INFO] [stderr] | [INFO] [stderr] 180 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 181 | | if s <= V::Scalar::zero() { [INFO] [stderr] 182 | | p1.clone() [INFO] [stderr] 183 | | } else { [INFO] [stderr] 184 | | p2.clone() [INFO] [stderr] 185 | | } [INFO] [stderr] 186 | | } [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] 180 | } else if s <= V::Scalar::zero() { [INFO] [stderr] 181 | p1.clone() [INFO] [stderr] 182 | } else { [INFO] [stderr] 183 | p2.clone() [INFO] [stderr] 184 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/rtree.rs:511:21 [INFO] [stderr] | [INFO] [stderr] 511 | overlap_increase [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/rtree.rs:510:44 [INFO] [stderr] | [INFO] [stderr] 510 | let overlap_increase = new_overlap - overlap; [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: redundant closure found [INFO] [stderr] --> src/point_traits.rs:94:34 [INFO] [stderr] | [INFO] [stderr] 94 | self.component_wise(rhs, |l, r| min_inline(l, r)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `min_inline` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/point_traits.rs:99:34 [INFO] [stderr] | [INFO] [stderr] 99 | self.component_wise(rhs, |l, r| max_inline(l, r)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `max_inline` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/bigvec.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | / fn index<'a>(&'a self, index: usize) -> &'a N { [INFO] [stderr] 83 | | unsafe { [INFO] [stderr] 84 | | &::std::mem::transmute::<_, &[N; 2]>(self)[index] [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | [INFO] [stderr] 87 | | } [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: transmute from a reference to a reference [INFO] [stderr] --> src/bigvec.rs:84:14 [INFO] [stderr] | [INFO] [stderr] 84 | &::std::mem::transmute::<_, &[N; 2]>(self)[index] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(self as *const bigvec::BigVec2 as *const [N; 2])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [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/bigvec.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / fn index_mut<'a>(&'a mut self, index: usize) -> &'a mut N { [INFO] [stderr] 93 | | unsafe { [INFO] [stderr] 94 | | &mut ::std::mem::transmute::<_, &mut [N; 2]>(self)[index] [INFO] [stderr] 95 | | } [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/bigvec.rs:94:18 [INFO] [stderr] | [INFO] [stderr] 94 | &mut ::std::mem::transmute::<_, &mut [N; 2]>(self)[index] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(self as *mut bigvec::BigVec2 as *mut [N; 2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/bigvec.rs:119:24 [INFO] [stderr] | [INFO] [stderr] 119 | pub fn from_i64(i: &i64) -> AdaptiveInt { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bigvec.rs:145:43 [INFO] [stderr] | [INFO] [stderr] 145 | i64::from_str_radix(s, radix).map(|val| AdaptiveInt::LowRes(val)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `AdaptiveInt::LowRes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bigvec.rs:211:9 [INFO] [stderr] | [INFO] [stderr] 211 | / match self { [INFO] [stderr] 212 | | &AdaptiveInt::HighRes(ref v) => v.is_even(), [INFO] [stderr] 213 | | &AdaptiveInt::LowRes(ref v) => v.is_even(), [INFO] [stderr] 214 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 211 | match *self { [INFO] [stderr] 212 | AdaptiveInt::HighRes(ref v) => v.is_even(), [INFO] [stderr] 213 | AdaptiveInt::LowRes(ref v) => v.is_even(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bigvec.rs:358:9 [INFO] [stderr] | [INFO] [stderr] 358 | / match self { [INFO] [stderr] 359 | | &AdaptiveInt::HighRes(ref v) => AdaptiveInt::HighRes(v.abs()), [INFO] [stderr] 360 | | &AdaptiveInt::LowRes(ref v) => AdaptiveInt::LowRes(v.abs()), [INFO] [stderr] 361 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 358 | match *self { [INFO] [stderr] 359 | AdaptiveInt::HighRes(ref v) => AdaptiveInt::HighRes(v.abs()), [INFO] [stderr] 360 | AdaptiveInt::LowRes(ref v) => AdaptiveInt::LowRes(v.abs()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bigvec.rs:374:9 [INFO] [stderr] | [INFO] [stderr] 374 | / match self { [INFO] [stderr] 375 | | &AdaptiveInt::HighRes(ref v) => AdaptiveInt::HighRes(v.signum()), [INFO] [stderr] 376 | | &AdaptiveInt::LowRes(ref v) => AdaptiveInt::LowRes(v.signum()), [INFO] [stderr] 377 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 374 | match *self { [INFO] [stderr] 375 | AdaptiveInt::HighRes(ref v) => AdaptiveInt::HighRes(v.signum()), [INFO] [stderr] 376 | AdaptiveInt::LowRes(ref v) => AdaptiveInt::LowRes(v.signum()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bigvec.rs:381:9 [INFO] [stderr] | [INFO] [stderr] 381 | / match self { [INFO] [stderr] 382 | | &AdaptiveInt::HighRes(ref v) => v.is_positive(), [INFO] [stderr] 383 | | &AdaptiveInt::LowRes(ref v) => v.is_positive(), [INFO] [stderr] 384 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 381 | match *self { [INFO] [stderr] 382 | AdaptiveInt::HighRes(ref v) => v.is_positive(), [INFO] [stderr] 383 | AdaptiveInt::LowRes(ref v) => v.is_positive(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bigvec.rs:388:9 [INFO] [stderr] | [INFO] [stderr] 388 | / match self { [INFO] [stderr] 389 | | &AdaptiveInt::HighRes(ref v) => v.is_negative(), [INFO] [stderr] 390 | | &AdaptiveInt::LowRes(ref v) => v.is_negative(), [INFO] [stderr] 391 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 388 | match *self { [INFO] [stderr] 389 | AdaptiveInt::HighRes(ref v) => v.is_negative(), [INFO] [stderr] 390 | AdaptiveInt::LowRes(ref v) => v.is_negative(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/exactpred.rs:168:1 [INFO] [stderr] | [INFO] [stderr] 168 | / fn incircleadapt(pa: [f64; 2], pb: [f64; 2], pc: [f64; 2], pd: [f64; 2], permanent: f64) -> f64 { [INFO] [stderr] 169 | | [INFO] [stderr] 170 | | let mut temp8 = [0f64; 8]; [INFO] [stderr] 171 | | let mut temp16a = [0f64; 16]; [INFO] [stderr] ... | [INFO] [stderr] 739 | | fin1[finlength - 1] [INFO] [stderr] 740 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/exactpred.rs:274:5 [INFO] [stderr] | [INFO] [stderr] 274 | / let mut aa = [0f64; 4]; [INFO] [stderr] 275 | | if bdxtail != 0.0 || bdytail != 0.0 || cdxtail != 0.0 || cdytail != 0.0 { [INFO] [stderr] 276 | | let (adxadx1, adxadx0) = square(adx); [INFO] [stderr] 277 | | let (adyady1, adyady0) = square(ady); [INFO] [stderr] 278 | | let (aa3, aa2, aa1, aa0) = two_two_sum(adxadx1, adxadx0, adyady1, adyady0); [INFO] [stderr] 279 | | aa = [aa0, aa1, aa2, aa3]; [INFO] [stderr] 280 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let aa = if bdxtail != 0.0 || bdytail != 0.0 || cdxtail != 0.0 || cdytail != 0.0 { ..; [aa0, aa1, aa2, aa3] } else { [0f64; 4] };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/exactpred.rs:282:5 [INFO] [stderr] | [INFO] [stderr] 282 | / let mut bb = [0f64; 4]; [INFO] [stderr] 283 | | if cdxtail != 0.0 || cdytail != 0.0 || adxtail != 0.0 || adytail != 0.0 { [INFO] [stderr] 284 | | let (bdxbdx1, bdxbdx0) = square(bdx); [INFO] [stderr] 285 | | let (bdybdy1, bdybdy0) = square(bdy); [INFO] [stderr] 286 | | let (bb3, bb2, bb1, bb0) = two_two_sum(bdxbdx1, bdxbdx0, bdybdy1, bdybdy0); [INFO] [stderr] 287 | | bb = [bb0, bb1, bb2, bb3]; [INFO] [stderr] 288 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let bb = if cdxtail != 0.0 || cdytail != 0.0 || adxtail != 0.0 || adytail != 0.0 { ..; [bb0, bb1, bb2, bb3] } else { [0f64; 4] };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/exactpred.rs:290:5 [INFO] [stderr] | [INFO] [stderr] 290 | / let mut cc = [0f64; 4]; [INFO] [stderr] 291 | | if adxtail != 0.0 || adytail != 0.0 || bdxtail != 0.0 || bdytail != 0.0 { [INFO] [stderr] 292 | | let (cdxcdx1, cdxcdx0) = square(cdx); [INFO] [stderr] 293 | | let (cdycdy1, cdycdy0) = square(cdy); [INFO] [stderr] 294 | | let (cc3, cc2, cc1, cc0) = two_two_sum(cdxcdx1, cdxcdx0, cdycdy1, cdycdy0); [INFO] [stderr] 295 | | cc = [cc0, cc1, cc2, cc3]; [INFO] [stderr] 296 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let cc = if adxtail != 0.0 || adytail != 0.0 || bdxtail != 0.0 || bdytail != 0.0 { ..; [cc0, cc1, cc2, cc3] } else { [0f64; 4] };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `eindex` is only used to index `e`. [INFO] [stderr] --> src/exactpred.rs:750:19 [INFO] [stderr] | [INFO] [stderr] 750 | for eindex in 1 .. e.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] 750 | for in e.iter().skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/delaunay/dcel.rs:876:13 [INFO] [stderr] | [INFO] [stderr] 876 | let ref edge = self.dcel.edges[self.handle]; [INFO] [stderr] | ----^^^^^^^^-------------------------------- help: try: `let edge = &self.dcel.edges[self.handle];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: the since field must contain a semver-compliant version [INFO] [stderr] --> src/delaunay/delaunay2d.rs:498:18 [INFO] [stderr] | [INFO] [stderr] 498 | #[deprecated(since="1.3", note="Use locate_and_remove instead")] [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::deprecated_semver)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_semver [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/delaunay/delaunay2d.rs:669:17 [INFO] [stderr] | [INFO] [stderr] 669 | polygon_area = polygon_area + tri.double_area(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `polygon_area += tri.double_area()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/delaunay/delaunay2d.rs:674:13 [INFO] [stderr] | [INFO] [stderr] 674 | total_area = total_area + polygon_area; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_area += polygon_area` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/delaunay/delaunay2d.rs:678:13 [INFO] [stderr] | [INFO] [stderr] 678 | *area = *area / total_area; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `*area /= total_area` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/delaunay/cdt.rs:29:27 [INFO] [stderr] | [INFO] [stderr] 29 | fn is_constraint_edge(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/delaunay/cdt.rs:476:24 [INFO] [stderr] | [INFO] [stderr] 476 | cur_from = match ®ion { [INFO] [stderr] | ________________________^ [INFO] [stderr] 477 | | &ConflictRegion::ExistingEdge(ref edge) => self.edge(*edge).to().fix(), [INFO] [stderr] 478 | | &ConflictRegion::Region { ref right_hull, .. } => [INFO] [stderr] 479 | | self.edge(*right_hull.last().unwrap()).to().fix(), [INFO] [stderr] 480 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 476 | cur_from = match region { [INFO] [stderr] 477 | ConflictRegion::ExistingEdge(ref edge) => self.edge(*edge).to().fix(), [INFO] [stderr] 478 | ConflictRegion::Region { ref right_hull, .. } => [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/delaunay/cdt.rs:583:40 [INFO] [stderr] | [INFO] [stderr] 583 | while let Some(intersection) = line_iterator.next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `for intersection in line_iterator { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/delaunay/line_intersection_iterator.rs:32:10 [INFO] [stderr] | [INFO] [stderr] 32 | / match self { [INFO] [stderr] 33 | | &EdgeIntersection(handle) => write!(f, "EdgeIntersection({:?})", handle), [INFO] [stderr] 34 | | &VertexIntersection(handle) => write!(f, "VertexIntersection({:?})", handle), [INFO] [stderr] 35 | | &EdgeOverlap(handle) => write!(f, "EdgeOverlap({:?})", handle), [INFO] [stderr] 36 | | } [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 32 | match *self { [INFO] [stderr] 33 | EdgeIntersection(handle) => write!(f, "EdgeIntersection({:?})", handle), [INFO] [stderr] 34 | VertexIntersection(handle) => write!(f, "VertexIntersection({:?})", handle), [INFO] [stderr] 35 | EdgeOverlap(handle) => write!(f, "EdgeOverlap({:?})", handle), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/delaunay/line_intersection_iterator.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | / match self { [INFO] [stderr] 58 | | &EdgeIntersection(handle) => EdgeIntersection(handle), [INFO] [stderr] 59 | | &VertexIntersection(handle) => VertexIntersection(handle), [INFO] [stderr] 60 | | &EdgeOverlap(handle) => EdgeOverlap(handle), [INFO] [stderr] 61 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 57 | match *self { [INFO] [stderr] 58 | EdgeIntersection(handle) => EdgeIntersection(handle), [INFO] [stderr] 59 | VertexIntersection(handle) => VertexIntersection(handle), [INFO] [stderr] 60 | EdgeOverlap(handle) => EdgeOverlap(handle), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/delaunay/line_intersection_iterator.rs:185:25 [INFO] [stderr] | [INFO] [stderr] 185 | let ref target = self.line.to; [INFO] [stderr] | ----^^^^^^^^^^---------------- help: try: `let target = &self.line.to;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/delaunay/delaunay_basic.rs:517:5 [INFO] [stderr] | [INFO] [stderr] 517 | / fn to_simple_edge<'a>(edge: EdgeHandle<'a, V, Self::EdgeType>) -> SimpleEdge { [INFO] [stderr] 518 | | let from = (edge.from()).position(); [INFO] [stderr] 519 | | let to = (edge.to()).position(); [INFO] [stderr] 520 | | SimpleEdge::new(from, to) [INFO] [stderr] 521 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/delaunay/delaunay_basic.rs:705:41 [INFO] [stderr] | [INFO] [stderr] 705 | fn repair_edge(&mut self, vertices: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[FixedVertexHandle]` [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/delaunay/delaunay_basic.rs:724:48 [INFO] [stderr] | [INFO] [stderr] 724 | fn repair_convex_hull(&mut self, vertices: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[FixedVertexHandle]` [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: the loop variable `i` is only used to index `loop_edges`. [INFO] [stderr] --> src/delaunay/delaunay_basic.rs:797:18 [INFO] [stderr] | [INFO] [stderr] 797 | for i in 2 .. loop_edges.len() - 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 797 | for in loop_edges.iter().take(loop_edges.len() - 1).skip(2) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: you are deriving `Hash` but have implemented `PartialEq` explicitly [INFO] [stderr] --> src/primitives.rs:226:51 [INFO] [stderr] | [INFO] [stderr] 226 | #[derive(Clone, Copy, Debug, Eq, PartialOrd, Ord, Hash)] [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/primitives.rs:257:1 [INFO] [stderr] | [INFO] [stderr] 257 | / impl PartialEq for SimpleTriangle where V: PointN { [INFO] [stderr] 258 | | fn eq(&self, rhs: &SimpleTriangle) -> bool { [INFO] [stderr] 259 | | let vl = self.vertices(); [INFO] [stderr] 260 | | let vr = rhs.vertices(); [INFO] [stderr] ... | [INFO] [stderr] 268 | | } [INFO] [stderr] 269 | | } [INFO] [stderr] | |_^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | / match node { [INFO] [stderr] 139 | | &RTreeNode::Leaf(ref b) => LeafIterator(::std::iter::once(b)), [INFO] [stderr] 140 | | &RTreeNode::DirectoryNode(ref data) => [INFO] [stderr] 141 | | DirectoryNodeIterator(RTreeIterator::new(data)), [INFO] [stderr] 142 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 138 | match *node { [INFO] [stderr] 139 | RTreeNode::Leaf(ref b) => LeafIterator(::std::iter::once(b)), [INFO] [stderr] 140 | RTreeNode::DirectoryNode(ref data) => [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | / match self { [INFO] [stderr] 153 | | &mut LeafIterator(ref mut once) => once.next(), [INFO] [stderr] 154 | | &mut DirectoryNodeIterator(ref mut iter) => iter.next(), [INFO] [stderr] 155 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 152 | match *self { [INFO] [stderr] 153 | LeafIterator(ref mut once) => once.next(), [INFO] [stderr] 154 | DirectoryNodeIterator(ref mut iter) => iter.next(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter_mut() and will not move the slice [INFO] [stderr] --> src/rtree.rs:261:45 [INFO] [stderr] | [INFO] [stderr] 261 | let elements: Vec<_> = elements.into_iter().map(|e| RTreeNode::Leaf(e.clone())).collect(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter_mut` [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: an inclusive range would be more readable [INFO] [stderr] --> src/rtree.rs:403:18 [INFO] [stderr] | [INFO] [stderr] 403 | for k in self.options.min_size .. self.children.len() - self.options.min_size + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `self.options.min_size..=self.children.len() - self.options.min_size` [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: an inclusive range would be more readable [INFO] [stderr] --> src/rtree.rs:450:22 [INFO] [stderr] | [INFO] [stderr] 450 | for k in self.options.min_size .. self.children.len() - self.options.min_size + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `self.options.min_size..=self.children.len() - self.options.min_size` [INFO] [stderr] | [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:534:9 [INFO] [stderr] | [INFO] [stderr] 534 | / if let &mut Some(ref mut bb) = &mut self.bounding_box { [INFO] [stderr] 535 | | for child in &new_children { [INFO] [stderr] 536 | | bb.add_rect(&child.mbr()); [INFO] [stderr] 537 | | } [INFO] [stderr] 538 | | self.children.append(&mut new_children); [INFO] [stderr] 539 | | return; [INFO] [stderr] 540 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 534 | if let Some(ref mut bb) = *(&mut self.bounding_box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:568:13 [INFO] [stderr] | [INFO] [stderr] 568 | / match new_follow { [INFO] [stderr] 569 | | &RTreeNode::DirectoryNode(ref data) => { [INFO] [stderr] 570 | | follow = data; [INFO] [stderr] 571 | | }, [INFO] [stderr] ... | [INFO] [stderr] 574 | | } [INFO] [stderr] 575 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 568 | match *new_follow { [INFO] [stderr] 569 | RTreeNode::DirectoryNode(ref data) => { [INFO] [stderr] 570 | follow = data; [INFO] [stderr] 571 | }, [INFO] [stderr] 572 | RTreeNode::Leaf(ref t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/rtree.rs:653:13 [INFO] [stderr] | [INFO] [stderr] 653 | / match child.nearest_neighbors(point, nearest_distance.clone(), result) { [INFO] [stderr] 654 | | Some(nearest) => { [INFO] [stderr] 655 | | nearest_distance = Some(nearest); [INFO] [stderr] 656 | | }, [INFO] [stderr] 657 | | None => {} [INFO] [stderr] 658 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 653 | if let Some(nearest) = child.nearest_neighbors(point, nearest_distance.clone(), result) { [INFO] [stderr] 654 | nearest_distance = Some(nearest); [INFO] [stderr] 655 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:703:21 [INFO] [stderr] | [INFO] [stderr] 703 | / match child { [INFO] [stderr] 704 | | &RTreeNode::DirectoryNode(ref data) => { [INFO] [stderr] 705 | | todo_list.push(data); [INFO] [stderr] 706 | | }, [INFO] [stderr] ... | [INFO] [stderr] 711 | | }, [INFO] [stderr] 712 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 703 | match *child { [INFO] [stderr] 704 | RTreeNode::DirectoryNode(ref data) => { [INFO] [stderr] 705 | todo_list.push(data); [INFO] [stderr] 706 | }, [INFO] [stderr] 707 | RTreeNode::Leaf(ref obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:727:13 [INFO] [stderr] | [INFO] [stderr] 727 | / match child { [INFO] [stderr] 728 | | &RTreeNode::DirectoryNode(ref data) => [INFO] [stderr] 729 | | data.lookup_in_circle(result, origin, radius2), [INFO] [stderr] 730 | | &RTreeNode::Leaf(ref t) => { [INFO] [stderr] ... | [INFO] [stderr] 734 | | }, [INFO] [stderr] 735 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 727 | match *child { [INFO] [stderr] 728 | RTreeNode::DirectoryNode(ref data) => [INFO] [stderr] 729 | data.lookup_in_circle(result, origin, radius2), [INFO] [stderr] 730 | RTreeNode::Leaf(ref t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:742:13 [INFO] [stderr] | [INFO] [stderr] 742 | / match child { [INFO] [stderr] 743 | | &RTreeNode::DirectoryNode(ref data) => data.lookup_in_rectangle(result, query_rect), [INFO] [stderr] 744 | | &RTreeNode::Leaf(ref t) => { [INFO] [stderr] 745 | | if t.mbr().intersects(query_rect) { [INFO] [stderr] ... | [INFO] [stderr] 748 | | } [INFO] [stderr] 749 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 742 | match *child { [INFO] [stderr] 743 | RTreeNode::DirectoryNode(ref data) => data.lookup_in_rectangle(result, query_rect), [INFO] [stderr] 744 | RTreeNode::Leaf(ref t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:762:21 [INFO] [stderr] | [INFO] [stderr] 762 | / match child { [INFO] [stderr] 763 | | &mut RTreeNode::DirectoryNode(ref mut data) => { [INFO] [stderr] 764 | | todo_list.push(data); [INFO] [stderr] 765 | | }, [INFO] [stderr] ... | [INFO] [stderr] 770 | | }, [INFO] [stderr] 771 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 762 | match *child { [INFO] [stderr] 763 | RTreeNode::DirectoryNode(ref mut data) => { [INFO] [stderr] 764 | todo_list.push(data); [INFO] [stderr] 765 | }, [INFO] [stderr] 766 | RTreeNode::Leaf(ref mut obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:790:17 [INFO] [stderr] | [INFO] [stderr] 790 | / match child { [INFO] [stderr] 791 | | &mut RTreeNode::DirectoryNode(ref mut data) => { [INFO] [stderr] 792 | | if data.remove(to_remove) { [INFO] [stderr] 793 | | result = true; [INFO] [stderr] ... | [INFO] [stderr] 807 | | } [INFO] [stderr] 808 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 790 | match *child { [INFO] [stderr] 791 | RTreeNode::DirectoryNode(ref mut data) => { [INFO] [stderr] 792 | if data.remove(to_remove) { [INFO] [stderr] 793 | result = true; [INFO] [stderr] 794 | if data.children.is_empty() { [INFO] [stderr] 795 | // Mark this child for removal as it has become empty [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:825:17 [INFO] [stderr] | [INFO] [stderr] 825 | / match child { [INFO] [stderr] 826 | | &RTreeNode::DirectoryNode(ref data) => { [INFO] [stderr] 827 | | if data.contains(obj) { [INFO] [stderr] 828 | | return true; [INFO] [stderr] ... | [INFO] [stderr] 835 | | } [INFO] [stderr] 836 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 825 | match *child { [INFO] [stderr] 826 | RTreeNode::DirectoryNode(ref data) => { [INFO] [stderr] 827 | if data.contains(obj) { [INFO] [stderr] 828 | return true; [INFO] [stderr] 829 | } [INFO] [stderr] 830 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:876:9 [INFO] [stderr] | [INFO] [stderr] 876 | / match self { [INFO] [stderr] 877 | | &RTreeNode::DirectoryNode(ref data) => data.depth, [INFO] [stderr] 878 | | _ => 0 [INFO] [stderr] 879 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 876 | match *self { [INFO] [stderr] 877 | RTreeNode::DirectoryNode(ref data) => data.depth, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:883:9 [INFO] [stderr] | [INFO] [stderr] 883 | / match self { [INFO] [stderr] 884 | | &RTreeNode::DirectoryNode(ref data) => data.bounding_box.clone().unwrap(), [INFO] [stderr] 885 | | &RTreeNode::Leaf(ref t) => t.mbr(), [INFO] [stderr] 886 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 883 | match *self { [INFO] [stderr] 884 | RTreeNode::DirectoryNode(ref data) => data.bounding_box.clone().unwrap(), [INFO] [stderr] 885 | RTreeNode::Leaf(ref t) => t.mbr(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:892:9 [INFO] [stderr] | [INFO] [stderr] 892 | / match self { [INFO] [stderr] 893 | | &RTreeNode::DirectoryNode(ref data) => data.nearest_neighbors(point, nearest_distance, result), [INFO] [stderr] 894 | | &RTreeNode::Leaf(ref t) => { [INFO] [stderr] 895 | | let distance = t.distance2(point); [INFO] [stderr] ... | [INFO] [stderr] 915 | | } [INFO] [stderr] 916 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 892 | match *self { [INFO] [stderr] 893 | RTreeNode::DirectoryNode(ref data) => data.nearest_neighbors(point, nearest_distance, result), [INFO] [stderr] 894 | RTreeNode::Leaf(ref t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/rtree.rs:1122:53 [INFO] [stderr] | [INFO] [stderr] 1122 | self.root.lookup_in_circle(&mut result, circle_origin.into(), radius2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `circle_origin` [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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/rtree.rs:1188:9 [INFO] [stderr] | [INFO] [stderr] 1188 | / loop { [INFO] [stderr] 1189 | | if let Some(next) = insertion_stack.pop() { [INFO] [stderr] 1190 | | match self.root.insert(next, &mut state) { [INFO] [stderr] 1191 | | InsertionResult::Split(node) => { [INFO] [stderr] ... | [INFO] [stderr] 1208 | | } [INFO] [stderr] 1209 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(next) = insertion_stack.pop() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `spade`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/testutils.rs:18:42 [INFO] [stderr] | [INFO] [stderr] 18 | let mut rng = XorShiftRng::from_seed(seed.clone()); [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*seed` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/testutils.rs:19:29 [INFO] [stderr] | [INFO] [stderr] 19 | let range = Range::new(-range.clone(), range.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `range` [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/testutils.rs:19:44 [INFO] [stderr] | [INFO] [stderr] 19 | let range = Range::new(-range.clone(), range.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `range` [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: redundant closure found [INFO] [stderr] --> src/point_traits.rs:94:34 [INFO] [stderr] | [INFO] [stderr] 94 | self.component_wise(rhs, |l, r| min_inline(l, r)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `min_inline` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/point_traits.rs:99:34 [INFO] [stderr] | [INFO] [stderr] 99 | self.component_wise(rhs, |l, r| max_inline(l, r)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `max_inline` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/boundingrect.rs:241:9 [INFO] [stderr] | [INFO] [stderr] 241 | assert_eq!(rect.distance2(&[0.0, 0.5]), 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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/boundingrect.rs:241:9 [INFO] [stderr] | [INFO] [stderr] 241 | assert_eq!(rect.distance2(&[0.0, 0.5]), 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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/boundingrect.rs:242:9 [INFO] [stderr] | [INFO] [stderr] 242 | assert_eq!(rect.distance2(&[0.0, -1.0]), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/boundingrect.rs:242:9 [INFO] [stderr] | [INFO] [stderr] 242 | assert_eq!(rect.distance2(&[0.0, -1.0]), 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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/boundingrect.rs:243:9 [INFO] [stderr] | [INFO] [stderr] 243 | assert_eq!(rect.distance2(&[0.2, 0.7]), 0.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/boundingrect.rs:243:9 [INFO] [stderr] | [INFO] [stderr] 243 | assert_eq!(rect.distance2(&[0.2, 0.7]), 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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/boundingrect.rs:244:9 [INFO] [stderr] | [INFO] [stderr] 244 | assert_eq!(rect.distance2(&[2.0, 2.0]), 2.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/boundingrect.rs:244:9 [INFO] [stderr] | [INFO] [stderr] 244 | assert_eq!(rect.distance2(&[2.0, 2.0]), 2.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/boundingrect.rs:245:9 [INFO] [stderr] | [INFO] [stderr] 245 | assert_eq!(rect.distance2(&[2.0, 0.5]), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/boundingrect.rs:245:9 [INFO] [stderr] | [INFO] [stderr] 245 | assert_eq!(rect.distance2(&[2.0, 0.5]), 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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [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/bigvec.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | / fn index<'a>(&'a self, index: usize) -> &'a N { [INFO] [stderr] 83 | | unsafe { [INFO] [stderr] 84 | | &::std::mem::transmute::<_, &[N; 2]>(self)[index] [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | [INFO] [stderr] 87 | | } [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: transmute from a reference to a reference [INFO] [stderr] --> src/bigvec.rs:84:14 [INFO] [stderr] | [INFO] [stderr] 84 | &::std::mem::transmute::<_, &[N; 2]>(self)[index] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(self as *const bigvec::BigVec2 as *const [N; 2])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [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/bigvec.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / fn index_mut<'a>(&'a mut self, index: usize) -> &'a mut N { [INFO] [stderr] 93 | | unsafe { [INFO] [stderr] 94 | | &mut ::std::mem::transmute::<_, &mut [N; 2]>(self)[index] [INFO] [stderr] 95 | | } [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/bigvec.rs:94:18 [INFO] [stderr] | [INFO] [stderr] 94 | &mut ::std::mem::transmute::<_, &mut [N; 2]>(self)[index] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(self as *mut bigvec::BigVec2 as *mut [N; 2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/bigvec.rs:119:24 [INFO] [stderr] | [INFO] [stderr] 119 | pub fn from_i64(i: &i64) -> AdaptiveInt { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bigvec.rs:145:43 [INFO] [stderr] | [INFO] [stderr] 145 | i64::from_str_radix(s, radix).map(|val| AdaptiveInt::LowRes(val)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `AdaptiveInt::LowRes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bigvec.rs:211:9 [INFO] [stderr] | [INFO] [stderr] 211 | / match self { [INFO] [stderr] 212 | | &AdaptiveInt::HighRes(ref v) => v.is_even(), [INFO] [stderr] 213 | | &AdaptiveInt::LowRes(ref v) => v.is_even(), [INFO] [stderr] 214 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 211 | match *self { [INFO] [stderr] 212 | AdaptiveInt::HighRes(ref v) => v.is_even(), [INFO] [stderr] 213 | AdaptiveInt::LowRes(ref v) => v.is_even(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bigvec.rs:358:9 [INFO] [stderr] | [INFO] [stderr] 358 | / match self { [INFO] [stderr] 359 | | &AdaptiveInt::HighRes(ref v) => AdaptiveInt::HighRes(v.abs()), [INFO] [stderr] 360 | | &AdaptiveInt::LowRes(ref v) => AdaptiveInt::LowRes(v.abs()), [INFO] [stderr] 361 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 358 | match *self { [INFO] [stderr] 359 | AdaptiveInt::HighRes(ref v) => AdaptiveInt::HighRes(v.abs()), [INFO] [stderr] 360 | AdaptiveInt::LowRes(ref v) => AdaptiveInt::LowRes(v.abs()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bigvec.rs:374:9 [INFO] [stderr] | [INFO] [stderr] 374 | / match self { [INFO] [stderr] 375 | | &AdaptiveInt::HighRes(ref v) => AdaptiveInt::HighRes(v.signum()), [INFO] [stderr] 376 | | &AdaptiveInt::LowRes(ref v) => AdaptiveInt::LowRes(v.signum()), [INFO] [stderr] 377 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 374 | match *self { [INFO] [stderr] 375 | AdaptiveInt::HighRes(ref v) => AdaptiveInt::HighRes(v.signum()), [INFO] [stderr] 376 | AdaptiveInt::LowRes(ref v) => AdaptiveInt::LowRes(v.signum()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bigvec.rs:381:9 [INFO] [stderr] | [INFO] [stderr] 381 | / match self { [INFO] [stderr] 382 | | &AdaptiveInt::HighRes(ref v) => v.is_positive(), [INFO] [stderr] 383 | | &AdaptiveInt::LowRes(ref v) => v.is_positive(), [INFO] [stderr] 384 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 381 | match *self { [INFO] [stderr] 382 | AdaptiveInt::HighRes(ref v) => v.is_positive(), [INFO] [stderr] 383 | AdaptiveInt::LowRes(ref v) => v.is_positive(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bigvec.rs:388:9 [INFO] [stderr] | [INFO] [stderr] 388 | / match self { [INFO] [stderr] 389 | | &AdaptiveInt::HighRes(ref v) => v.is_negative(), [INFO] [stderr] 390 | | &AdaptiveInt::LowRes(ref v) => v.is_negative(), [INFO] [stderr] 391 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 388 | match *self { [INFO] [stderr] 389 | AdaptiveInt::HighRes(ref v) => v.is_negative(), [INFO] [stderr] 390 | AdaptiveInt::LowRes(ref v) => v.is_negative(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/exactpred.rs:168:1 [INFO] [stderr] | [INFO] [stderr] 168 | / fn incircleadapt(pa: [f64; 2], pb: [f64; 2], pc: [f64; 2], pd: [f64; 2], permanent: f64) -> f64 { [INFO] [stderr] 169 | | [INFO] [stderr] 170 | | let mut temp8 = [0f64; 8]; [INFO] [stderr] 171 | | let mut temp16a = [0f64; 16]; [INFO] [stderr] ... | [INFO] [stderr] 739 | | fin1[finlength - 1] [INFO] [stderr] 740 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/exactpred.rs:274:5 [INFO] [stderr] | [INFO] [stderr] 274 | / let mut aa = [0f64; 4]; [INFO] [stderr] 275 | | if bdxtail != 0.0 || bdytail != 0.0 || cdxtail != 0.0 || cdytail != 0.0 { [INFO] [stderr] 276 | | let (adxadx1, adxadx0) = square(adx); [INFO] [stderr] 277 | | let (adyady1, adyady0) = square(ady); [INFO] [stderr] 278 | | let (aa3, aa2, aa1, aa0) = two_two_sum(adxadx1, adxadx0, adyady1, adyady0); [INFO] [stderr] 279 | | aa = [aa0, aa1, aa2, aa3]; [INFO] [stderr] 280 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let aa = if bdxtail != 0.0 || bdytail != 0.0 || cdxtail != 0.0 || cdytail != 0.0 { ..; [aa0, aa1, aa2, aa3] } else { [0f64; 4] };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/exactpred.rs:282:5 [INFO] [stderr] | [INFO] [stderr] 282 | / let mut bb = [0f64; 4]; [INFO] [stderr] 283 | | if cdxtail != 0.0 || cdytail != 0.0 || adxtail != 0.0 || adytail != 0.0 { [INFO] [stderr] 284 | | let (bdxbdx1, bdxbdx0) = square(bdx); [INFO] [stderr] 285 | | let (bdybdy1, bdybdy0) = square(bdy); [INFO] [stderr] 286 | | let (bb3, bb2, bb1, bb0) = two_two_sum(bdxbdx1, bdxbdx0, bdybdy1, bdybdy0); [INFO] [stderr] 287 | | bb = [bb0, bb1, bb2, bb3]; [INFO] [stderr] 288 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let bb = if cdxtail != 0.0 || cdytail != 0.0 || adxtail != 0.0 || adytail != 0.0 { ..; [bb0, bb1, bb2, bb3] } else { [0f64; 4] };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/exactpred.rs:290:5 [INFO] [stderr] | [INFO] [stderr] 290 | / let mut cc = [0f64; 4]; [INFO] [stderr] 291 | | if adxtail != 0.0 || adytail != 0.0 || bdxtail != 0.0 || bdytail != 0.0 { [INFO] [stderr] 292 | | let (cdxcdx1, cdxcdx0) = square(cdx); [INFO] [stderr] 293 | | let (cdycdy1, cdycdy0) = square(cdy); [INFO] [stderr] 294 | | let (cc3, cc2, cc1, cc0) = two_two_sum(cdxcdx1, cdxcdx0, cdycdy1, cdycdy0); [INFO] [stderr] 295 | | cc = [cc0, cc1, cc2, cc3]; [INFO] [stderr] 296 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let cc = if adxtail != 0.0 || adytail != 0.0 || bdxtail != 0.0 || bdytail != 0.0 { ..; [cc0, cc1, cc2, cc3] } else { [0f64; 4] };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `eindex` is only used to index `e`. [INFO] [stderr] --> src/exactpred.rs:750:19 [INFO] [stderr] | [INFO] [stderr] 750 | for eindex in 1 .. e.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] 750 | for in e.iter().skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/exactpred.rs:1009:21 [INFO] [stderr] | [INFO] [stderr] 1009 | assert!(det == sign || det.signum() == sign.signum()); [INFO] [stderr] | ^^^^^^^^^^^ help: consider comparing them within some error: `(det - sign).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/exactpred.rs:1009:21 [INFO] [stderr] | [INFO] [stderr] 1009 | assert!(det == sign || det.signum() == sign.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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/exactpred.rs:1009:36 [INFO] [stderr] | [INFO] [stderr] 1009 | assert!(det == sign || det.signum() == sign.signum()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(det.signum() - sign.signum()).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/exactpred.rs:1009:36 [INFO] [stderr] | [INFO] [stderr] 1009 | assert!(det == sign || det.signum() == sign.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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/delaunay/dcel.rs:876:13 [INFO] [stderr] | [INFO] [stderr] 876 | let ref edge = self.dcel.edges[self.handle]; [INFO] [stderr] | ----^^^^^^^^-------------------------------- help: try: `let edge = &self.dcel.edges[self.handle];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `vs`. [INFO] [stderr] --> src/delaunay/dcel.rs:1268:18 [INFO] [stderr] | [INFO] [stderr] 1268 | for i in 1 .. 5 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [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] 1268 | for in vs.iter().take(5).skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `vs`. [INFO] [stderr] --> src/delaunay/dcel.rs:1296:18 [INFO] [stderr] | [INFO] [stderr] 1296 | for i in 2 .. 5 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [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] 1296 | for in vs.iter().take(5).skip(2) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: the since field must contain a semver-compliant version [INFO] [stderr] --> src/delaunay/delaunay2d.rs:498:18 [INFO] [stderr] | [INFO] [stderr] 498 | #[deprecated(since="1.3", note="Use locate_and_remove instead")] [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::deprecated_semver)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_semver [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/delaunay/delaunay2d.rs:669:17 [INFO] [stderr] | [INFO] [stderr] 669 | polygon_area = polygon_area + tri.double_area(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `polygon_area += tri.double_area()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/delaunay/delaunay2d.rs:674:13 [INFO] [stderr] | [INFO] [stderr] 674 | total_area = total_area + polygon_area; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_area += polygon_area` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/delaunay/delaunay2d.rs:678:13 [INFO] [stderr] | [INFO] [stderr] 678 | *area = *area / total_area; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `*area /= total_area` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/delaunay/delaunay2d.rs:1229:46 [INFO] [stderr] | [INFO] [stderr] 1229 | let mut rng = XorShiftRng::from_seed(b"insert_outside_c".clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*b"insert_outside_c"` [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/delaunay/delaunay2d.rs:1306:34 [INFO] [stderr] | [INFO] [stderr] 1306 | d.insert(Point2::new(i as f64, 0.)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(i)` [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/delaunay/delaunay2d.rs:1317:34 [INFO] [stderr] | [INFO] [stderr] 1317 | d.insert(Point2::new(i as f64, 0.)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(i)` [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/delaunay/delaunay2d.rs:1323:34 [INFO] [stderr] | [INFO] [stderr] 1323 | d.insert(Point2::new(i as f64, 0.5 * (i as f64))); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(i)` [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/delaunay/delaunay2d.rs:1323:50 [INFO] [stderr] | [INFO] [stderr] 1323 | d.insert(Point2::new(i as f64, 0.5 * (i as f64))); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(i)` [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/delaunay/delaunay2d.rs:1337:38 [INFO] [stderr] | [INFO] [stderr] 1337 | d.insert(Point2::new(x as f64, y as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/delaunay/delaunay2d.rs:1337:48 [INFO] [stderr] | [INFO] [stderr] 1337 | d.insert(Point2::new(x as f64, y as f64)); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/delaunay/delaunay2d.rs:1543:54 [INFO] [stderr] | [INFO] [stderr] 1543 | let mut rng = ::rand::XorShiftRng::from_seed(b" next_seed/%&&2+".clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*b" next_seed/%&&2+"` [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/delaunay/delaunay2d.rs:1578:46 [INFO] [stderr] | [INFO] [stderr] 1578 | let mut rng = XorShiftRng::from_seed(b"?i like fried&)%".clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*b"?i like fried&)%"` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/delaunay/cdt.rs:29:27 [INFO] [stderr] | [INFO] [stderr] 29 | fn is_constraint_edge(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/delaunay/cdt.rs:476:24 [INFO] [stderr] | [INFO] [stderr] 476 | cur_from = match ®ion { [INFO] [stderr] | ________________________^ [INFO] [stderr] 477 | | &ConflictRegion::ExistingEdge(ref edge) => self.edge(*edge).to().fix(), [INFO] [stderr] 478 | | &ConflictRegion::Region { ref right_hull, .. } => [INFO] [stderr] 479 | | self.edge(*right_hull.last().unwrap()).to().fix(), [INFO] [stderr] 480 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 476 | cur_from = match region { [INFO] [stderr] 477 | ConflictRegion::ExistingEdge(ref edge) => self.edge(*edge).to().fix(), [INFO] [stderr] 478 | ConflictRegion::Region { ref right_hull, .. } => [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/delaunay/cdt.rs:583:40 [INFO] [stderr] | [INFO] [stderr] 583 | while let Some(intersection) = line_iterator.next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `for intersection in line_iterator { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/delaunay/cdt.rs:931:46 [INFO] [stderr] | [INFO] [stderr] 931 | let mut rng = XorShiftRng::from_seed(seed.clone()); [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*seed` [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/delaunay/cdt.rs:960:46 [INFO] [stderr] | [INFO] [stderr] 960 | let mut rng = XorShiftRng::from_seed(seed.clone()); [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*seed` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/delaunay/line_intersection_iterator.rs:32:10 [INFO] [stderr] | [INFO] [stderr] 32 | / match self { [INFO] [stderr] 33 | | &EdgeIntersection(handle) => write!(f, "EdgeIntersection({:?})", handle), [INFO] [stderr] 34 | | &VertexIntersection(handle) => write!(f, "VertexIntersection({:?})", handle), [INFO] [stderr] 35 | | &EdgeOverlap(handle) => write!(f, "EdgeOverlap({:?})", handle), [INFO] [stderr] 36 | | } [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 32 | match *self { [INFO] [stderr] 33 | EdgeIntersection(handle) => write!(f, "EdgeIntersection({:?})", handle), [INFO] [stderr] 34 | VertexIntersection(handle) => write!(f, "VertexIntersection({:?})", handle), [INFO] [stderr] 35 | EdgeOverlap(handle) => write!(f, "EdgeOverlap({:?})", handle), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/delaunay/line_intersection_iterator.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | / match self { [INFO] [stderr] 58 | | &EdgeIntersection(handle) => EdgeIntersection(handle), [INFO] [stderr] 59 | | &VertexIntersection(handle) => VertexIntersection(handle), [INFO] [stderr] 60 | | &EdgeOverlap(handle) => EdgeOverlap(handle), [INFO] [stderr] 61 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 57 | match *self { [INFO] [stderr] 58 | EdgeIntersection(handle) => EdgeIntersection(handle), [INFO] [stderr] 59 | VertexIntersection(handle) => VertexIntersection(handle), [INFO] [stderr] 60 | EdgeOverlap(handle) => EdgeOverlap(handle), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/delaunay/line_intersection_iterator.rs:185:25 [INFO] [stderr] | [INFO] [stderr] 185 | let ref target = self.line.to; [INFO] [stderr] | ----^^^^^^^^^^---------------- help: try: `let target = &self.line.to;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/delaunay/line_intersection_iterator.rs:281:9 [INFO] [stderr] | [INFO] [stderr] 281 | / match intersection { [INFO] [stderr] 282 | | &EdgeIntersection(edge) => EdgeIntersection(edge.sym()), [INFO] [stderr] 283 | | &VertexIntersection(vertex) => VertexIntersection(vertex), [INFO] [stderr] 284 | | &EdgeOverlap(edge) => EdgeOverlap(edge.sym()), [INFO] [stderr] 285 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 281 | match *intersection { [INFO] [stderr] 282 | EdgeIntersection(edge) => EdgeIntersection(edge.sym()), [INFO] [stderr] 283 | VertexIntersection(vertex) => VertexIntersection(vertex), [INFO] [stderr] 284 | EdgeOverlap(edge) => EdgeOverlap(edge.sym()), [INFO] [stderr] | [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/delaunay/delaunay_basic.rs:517:5 [INFO] [stderr] | [INFO] [stderr] 517 | / fn to_simple_edge<'a>(edge: EdgeHandle<'a, V, Self::EdgeType>) -> SimpleEdge { [INFO] [stderr] 518 | | let from = (edge.from()).position(); [INFO] [stderr] 519 | | let to = (edge.to()).position(); [INFO] [stderr] 520 | | SimpleEdge::new(from, to) [INFO] [stderr] 521 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/delaunay/delaunay_basic.rs:705:41 [INFO] [stderr] | [INFO] [stderr] 705 | fn repair_edge(&mut self, vertices: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[FixedVertexHandle]` [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/delaunay/delaunay_basic.rs:724:48 [INFO] [stderr] | [INFO] [stderr] 724 | fn repair_convex_hull(&mut self, vertices: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[FixedVertexHandle]` [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: the loop variable `i` is only used to index `loop_edges`. [INFO] [stderr] --> src/delaunay/delaunay_basic.rs:797:18 [INFO] [stderr] | [INFO] [stderr] 797 | for i in 2 .. loop_edges.len() - 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 797 | for in loop_edges.iter().take(loop_edges.len() - 1).skip(2) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: you are deriving `Hash` but have implemented `PartialEq` explicitly [INFO] [stderr] --> src/primitives.rs:226:51 [INFO] [stderr] | [INFO] [stderr] 226 | #[derive(Clone, Copy, Debug, Eq, PartialOrd, Ord, Hash)] [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/primitives.rs:257:1 [INFO] [stderr] | [INFO] [stderr] 257 | / impl PartialEq for SimpleTriangle where V: PointN { [INFO] [stderr] 258 | | fn eq(&self, rhs: &SimpleTriangle) -> bool { [INFO] [stderr] 259 | | let vl = self.vertices(); [INFO] [stderr] 260 | | let vr = rhs.vertices(); [INFO] [stderr] ... | [INFO] [stderr] 268 | | } [INFO] [stderr] 269 | | } [INFO] [stderr] | |_^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/primitives.rs:467:9 [INFO] [stderr] | [INFO] [stderr] 467 | assert_eq!(t.distance2(&Point2::new(0.25, 0.25)), 0.); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/primitives.rs:467:9 [INFO] [stderr] | [INFO] [stderr] 467 | assert_eq!(t.distance2(&Point2::new(0.25, 0.25)), 0.); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/primitives.rs:484:9 [INFO] [stderr] | [INFO] [stderr] 484 | assert_eq!(c.distance2(&p1), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/primitives.rs:484:9 [INFO] [stderr] | [INFO] [stderr] 484 | assert_eq!(c.distance2(&p1), 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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/primitives.rs:485:9 [INFO] [stderr] | [INFO] [stderr] 485 | assert_eq!(c.distance2(&p2), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/primitives.rs:485:9 [INFO] [stderr] | [INFO] [stderr] 485 | assert_eq!(c.distance2(&p2), 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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/primitives.rs:486:9 [INFO] [stderr] | [INFO] [stderr] 486 | assert_eq!(c.distance2(&p3), 16.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/primitives.rs:486:9 [INFO] [stderr] | [INFO] [stderr] 486 | assert_eq!(c.distance2(&p3), 16.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/primitives.rs:494:9 [INFO] [stderr] | [INFO] [stderr] 494 | assert_eq!(c.distance2(&p1), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/primitives.rs:494:9 [INFO] [stderr] | [INFO] [stderr] 494 | assert_eq!(c.distance2(&p1), 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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/primitives.rs:495:9 [INFO] [stderr] | [INFO] [stderr] 495 | assert_eq!(c.distance2(&p2), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/primitives.rs:495:9 [INFO] [stderr] | [INFO] [stderr] 495 | assert_eq!(c.distance2(&p2), 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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/primitives.rs:496:9 [INFO] [stderr] | [INFO] [stderr] 496 | assert_eq!(c.distance2(&p3), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/primitives.rs:496:9 [INFO] [stderr] | [INFO] [stderr] 496 | assert_eq!(c.distance2(&p3), 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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | / match node { [INFO] [stderr] 139 | | &RTreeNode::Leaf(ref b) => LeafIterator(::std::iter::once(b)), [INFO] [stderr] 140 | | &RTreeNode::DirectoryNode(ref data) => [INFO] [stderr] 141 | | DirectoryNodeIterator(RTreeIterator::new(data)), [INFO] [stderr] 142 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 138 | match *node { [INFO] [stderr] 139 | RTreeNode::Leaf(ref b) => LeafIterator(::std::iter::once(b)), [INFO] [stderr] 140 | RTreeNode::DirectoryNode(ref data) => [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | / match self { [INFO] [stderr] 153 | | &mut LeafIterator(ref mut once) => once.next(), [INFO] [stderr] 154 | | &mut DirectoryNodeIterator(ref mut iter) => iter.next(), [INFO] [stderr] 155 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 152 | match *self { [INFO] [stderr] 153 | LeafIterator(ref mut once) => once.next(), [INFO] [stderr] 154 | DirectoryNodeIterator(ref mut iter) => iter.next(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter_mut() and will not move the slice [INFO] [stderr] --> src/rtree.rs:261:45 [INFO] [stderr] | [INFO] [stderr] 261 | let elements: Vec<_> = elements.into_iter().map(|e| RTreeNode::Leaf(e.clone())).collect(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter_mut` [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: an inclusive range would be more readable [INFO] [stderr] --> src/rtree.rs:403:18 [INFO] [stderr] | [INFO] [stderr] 403 | for k in self.options.min_size .. self.children.len() - self.options.min_size + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `self.options.min_size..=self.children.len() - self.options.min_size` [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: an inclusive range would be more readable [INFO] [stderr] --> src/rtree.rs:450:22 [INFO] [stderr] | [INFO] [stderr] 450 | for k in self.options.min_size .. self.children.len() - self.options.min_size + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `self.options.min_size..=self.children.len() - self.options.min_size` [INFO] [stderr] | [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:534:9 [INFO] [stderr] | [INFO] [stderr] 534 | / if let &mut Some(ref mut bb) = &mut self.bounding_box { [INFO] [stderr] 535 | | for child in &new_children { [INFO] [stderr] 536 | | bb.add_rect(&child.mbr()); [INFO] [stderr] 537 | | } [INFO] [stderr] 538 | | self.children.append(&mut new_children); [INFO] [stderr] 539 | | return; [INFO] [stderr] 540 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 534 | if let Some(ref mut bb) = *(&mut self.bounding_box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:568:13 [INFO] [stderr] | [INFO] [stderr] 568 | / match new_follow { [INFO] [stderr] 569 | | &RTreeNode::DirectoryNode(ref data) => { [INFO] [stderr] 570 | | follow = data; [INFO] [stderr] 571 | | }, [INFO] [stderr] ... | [INFO] [stderr] 574 | | } [INFO] [stderr] 575 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 568 | match *new_follow { [INFO] [stderr] 569 | RTreeNode::DirectoryNode(ref data) => { [INFO] [stderr] 570 | follow = data; [INFO] [stderr] 571 | }, [INFO] [stderr] 572 | RTreeNode::Leaf(ref t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/rtree.rs:653:13 [INFO] [stderr] | [INFO] [stderr] 653 | / match child.nearest_neighbors(point, nearest_distance.clone(), result) { [INFO] [stderr] 654 | | Some(nearest) => { [INFO] [stderr] 655 | | nearest_distance = Some(nearest); [INFO] [stderr] 656 | | }, [INFO] [stderr] 657 | | None => {} [INFO] [stderr] 658 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 653 | if let Some(nearest) = child.nearest_neighbors(point, nearest_distance.clone(), result) { [INFO] [stderr] 654 | nearest_distance = Some(nearest); [INFO] [stderr] 655 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:703:21 [INFO] [stderr] | [INFO] [stderr] 703 | / match child { [INFO] [stderr] 704 | | &RTreeNode::DirectoryNode(ref data) => { [INFO] [stderr] 705 | | todo_list.push(data); [INFO] [stderr] 706 | | }, [INFO] [stderr] ... | [INFO] [stderr] 711 | | }, [INFO] [stderr] 712 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 703 | match *child { [INFO] [stderr] 704 | RTreeNode::DirectoryNode(ref data) => { [INFO] [stderr] 705 | todo_list.push(data); [INFO] [stderr] 706 | }, [INFO] [stderr] 707 | RTreeNode::Leaf(ref obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:727:13 [INFO] [stderr] | [INFO] [stderr] 727 | / match child { [INFO] [stderr] 728 | | &RTreeNode::DirectoryNode(ref data) => [INFO] [stderr] 729 | | data.lookup_in_circle(result, origin, radius2), [INFO] [stderr] 730 | | &RTreeNode::Leaf(ref t) => { [INFO] [stderr] ... | [INFO] [stderr] 734 | | }, [INFO] [stderr] 735 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 727 | match *child { [INFO] [stderr] 728 | RTreeNode::DirectoryNode(ref data) => [INFO] [stderr] 729 | data.lookup_in_circle(result, origin, radius2), [INFO] [stderr] 730 | RTreeNode::Leaf(ref t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:742:13 [INFO] [stderr] | [INFO] [stderr] 742 | / match child { [INFO] [stderr] 743 | | &RTreeNode::DirectoryNode(ref data) => data.lookup_in_rectangle(result, query_rect), [INFO] [stderr] 744 | | &RTreeNode::Leaf(ref t) => { [INFO] [stderr] 745 | | if t.mbr().intersects(query_rect) { [INFO] [stderr] ... | [INFO] [stderr] 748 | | } [INFO] [stderr] 749 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 742 | match *child { [INFO] [stderr] 743 | RTreeNode::DirectoryNode(ref data) => data.lookup_in_rectangle(result, query_rect), [INFO] [stderr] 744 | RTreeNode::Leaf(ref t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:762:21 [INFO] [stderr] | [INFO] [stderr] 762 | / match child { [INFO] [stderr] 763 | | &mut RTreeNode::DirectoryNode(ref mut data) => { [INFO] [stderr] 764 | | todo_list.push(data); [INFO] [stderr] 765 | | }, [INFO] [stderr] ... | [INFO] [stderr] 770 | | }, [INFO] [stderr] 771 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 762 | match *child { [INFO] [stderr] 763 | RTreeNode::DirectoryNode(ref mut data) => { [INFO] [stderr] 764 | todo_list.push(data); [INFO] [stderr] 765 | }, [INFO] [stderr] 766 | RTreeNode::Leaf(ref mut obj) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:790:17 [INFO] [stderr] | [INFO] [stderr] 790 | / match child { [INFO] [stderr] 791 | | &mut RTreeNode::DirectoryNode(ref mut data) => { [INFO] [stderr] 792 | | if data.remove(to_remove) { [INFO] [stderr] 793 | | result = true; [INFO] [stderr] ... | [INFO] [stderr] 807 | | } [INFO] [stderr] 808 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 790 | match *child { [INFO] [stderr] 791 | RTreeNode::DirectoryNode(ref mut data) => { [INFO] [stderr] 792 | if data.remove(to_remove) { [INFO] [stderr] 793 | result = true; [INFO] [stderr] 794 | if data.children.is_empty() { [INFO] [stderr] 795 | // Mark this child for removal as it has become empty [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:825:17 [INFO] [stderr] | [INFO] [stderr] 825 | / match child { [INFO] [stderr] 826 | | &RTreeNode::DirectoryNode(ref data) => { [INFO] [stderr] 827 | | if data.contains(obj) { [INFO] [stderr] 828 | | return true; [INFO] [stderr] ... | [INFO] [stderr] 835 | | } [INFO] [stderr] 836 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 825 | match *child { [INFO] [stderr] 826 | RTreeNode::DirectoryNode(ref data) => { [INFO] [stderr] 827 | if data.contains(obj) { [INFO] [stderr] 828 | return true; [INFO] [stderr] 829 | } [INFO] [stderr] 830 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:876:9 [INFO] [stderr] | [INFO] [stderr] 876 | / match self { [INFO] [stderr] 877 | | &RTreeNode::DirectoryNode(ref data) => data.depth, [INFO] [stderr] 878 | | _ => 0 [INFO] [stderr] 879 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 876 | match *self { [INFO] [stderr] 877 | RTreeNode::DirectoryNode(ref data) => data.depth, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:883:9 [INFO] [stderr] | [INFO] [stderr] 883 | / match self { [INFO] [stderr] 884 | | &RTreeNode::DirectoryNode(ref data) => data.bounding_box.clone().unwrap(), [INFO] [stderr] 885 | | &RTreeNode::Leaf(ref t) => t.mbr(), [INFO] [stderr] 886 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 883 | match *self { [INFO] [stderr] 884 | RTreeNode::DirectoryNode(ref data) => data.bounding_box.clone().unwrap(), [INFO] [stderr] 885 | RTreeNode::Leaf(ref t) => t.mbr(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/rtree.rs:892:9 [INFO] [stderr] | [INFO] [stderr] 892 | / match self { [INFO] [stderr] 893 | | &RTreeNode::DirectoryNode(ref data) => data.nearest_neighbors(point, nearest_distance, result), [INFO] [stderr] 894 | | &RTreeNode::Leaf(ref t) => { [INFO] [stderr] 895 | | let distance = t.distance2(point); [INFO] [stderr] ... | [INFO] [stderr] 915 | | } [INFO] [stderr] 916 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 892 | match *self { [INFO] [stderr] 893 | RTreeNode::DirectoryNode(ref data) => data.nearest_neighbors(point, nearest_distance, result), [INFO] [stderr] 894 | RTreeNode::Leaf(ref t) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/rtree.rs:1122:53 [INFO] [stderr] | [INFO] [stderr] 1122 | self.root.lookup_in_circle(&mut result, circle_origin.into(), radius2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `circle_origin` [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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/rtree.rs:1188:9 [INFO] [stderr] | [INFO] [stderr] 1188 | / loop { [INFO] [stderr] 1189 | | if let Some(next) = insertion_stack.pop() { [INFO] [stderr] 1190 | | match self.root.insert(next, &mut state) { [INFO] [stderr] 1191 | | InsertionResult::Split(node) => { [INFO] [stderr] ... | [INFO] [stderr] 1208 | | } [INFO] [stderr] 1209 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(next) = insertion_stack.pop() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/rtree.rs:1506:21 [INFO] [stderr] | [INFO] [stderr] 1506 | tree.insert(edge.clone()); [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `edge` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/rtree.rs:1520:30 [INFO] [stderr] | [INFO] [stderr] 1520 | let points: Vec<_> = tree.iter().map(|v| v.clone()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `tree.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/rtree.rs:1520:50 [INFO] [stderr] | [INFO] [stderr] 1520 | let points: Vec<_> = tree.iter().map(|v| v.clone()).collect(); [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*v` [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/rtree.rs:1536:46 [INFO] [stderr] | [INFO] [stderr] 1536 | let mut rng = XorShiftRng::from_seed(b"crept in and cha".clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*b"crept in and cha"` [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: an inclusive range would be more readable [INFO] [stderr] --> src/rtree.rs:1560:44 [INFO] [stderr] | [INFO] [stderr] 1560 | tree = RTree::bulk_load(points[..num + 1].to_vec()); [INFO] [stderr] | ^^^^^^^^^ help: use: `..=num` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] error: aborting due to 16 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `spade`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "fbe46c55faf40f492961965737daadbd872760db57c736706b7d2bd38a2efa14"` [INFO] running `"docker" "rm" "-f" "fbe46c55faf40f492961965737daadbd872760db57c736706b7d2bd38a2efa14"` [INFO] [stdout] fbe46c55faf40f492961965737daadbd872760db57c736706b7d2bd38a2efa14