[INFO] updating cached repository ivanceras/balisong [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/ivanceras/balisong [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/ivanceras/balisong" "work/ex/clippy-test-run/sources/stable/gh/ivanceras/balisong"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/ivanceras/balisong'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/ivanceras/balisong" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ivanceras/balisong"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ivanceras/balisong'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 7e6189d2f2e52829252d55a47036d7178325de0b [INFO] sha for GitHub repo ivanceras/balisong: 7e6189d2f2e52829252d55a47036d7178325de0b [INFO] validating manifest of ivanceras/balisong 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 ivanceras/balisong 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 ivanceras/balisong [INFO] finished frobbing ivanceras/balisong [INFO] frobbed toml for ivanceras/balisong written to work/ex/clippy-test-run/sources/stable/gh/ivanceras/balisong/Cargo.toml [INFO] started frobbing ivanceras/balisong [INFO] finished frobbing ivanceras/balisong [INFO] frobbed toml for ivanceras/balisong written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ivanceras/balisong/Cargo.toml [INFO] crate ivanceras/balisong has a lockfile. skipping [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 ivanceras/balisong against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/ivanceras/balisong:/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] 08410e63f2e648b14437e592cece3afe57076b953b071b85c8aeaa0bc7adceae [INFO] running `"docker" "start" "-a" "08410e63f2e648b14437e592cece3afe57076b953b071b85c8aeaa0bc7adceae"` [INFO] [stderr] warning: dependency (num) specified without providing a local path, Git repository, or version to use. This will be considered an error in future versions [INFO] [stderr] warning: dependency (regex) specified without providing a local path, Git repository, or version to use. This will be considered an error in future versions [INFO] [stderr] warning: dependency (time) specified without providing a local path, Git repository, or version to use. This will be considered an error in future versions [INFO] [stderr] Checking balisong v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/point.rs:13:15 [INFO] [stderr] | [INFO] [stderr] 13 | Point{x:x, y:y, z:z} [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/point.rs:13:20 [INFO] [stderr] | [INFO] [stderr] 13 | Point{x:x, y:y, z:z} [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: redundant field names in struct initialization [INFO] [stderr] --> src/point.rs:13:25 [INFO] [stderr] | [INFO] [stderr] 13 | Point{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `z` [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/shape.rs:40:16 [INFO] [stderr] | [INFO] [stderr] 40 | Sphere{radius:radius, center:center.clone()} [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/shape.rs:89:14 [INFO] [stderr] | [INFO] [stderr] 89 | Cube{lower:lower, upper:upper, center:center.clone()} [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `lower` [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/shape.rs:89:27 [INFO] [stderr] | [INFO] [stderr] 89 | Cube{lower:lower, upper:upper, center:center.clone()} [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `upper` [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/normal.rs:19:16 [INFO] [stderr] | [INFO] [stderr] 19 | Normal{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `x` [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/normal.rs:19:21 [INFO] [stderr] | [INFO] [stderr] 19 | Normal{x:x, y:y, z:z} [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: redundant field names in struct initialization [INFO] [stderr] --> src/normal.rs:19:26 [INFO] [stderr] | [INFO] [stderr] 19 | Normal{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `z` [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/vector.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | Vector{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `x` [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/vector.rs:20:21 [INFO] [stderr] | [INFO] [stderr] 20 | Vector{x:x, y:y, z:z} [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: redundant field names in struct initialization [INFO] [stderr] --> src/vector.rs:20:26 [INFO] [stderr] | [INFO] [stderr] 20 | Vector{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `z` [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/vector.rs:86:16 [INFO] [stderr] | [INFO] [stderr] 86 | Vector{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `x` [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/vector.rs:86:21 [INFO] [stderr] | [INFO] [stderr] 86 | Vector{x:x, y:y, z:z} [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: redundant field names in struct initialization [INFO] [stderr] --> src/vector.rs:86:26 [INFO] [stderr] | [INFO] [stderr] 86 | Vector{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `z` [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/color.rs:13:15 [INFO] [stderr] | [INFO] [stderr] 13 | Color{r:r, g:g, b:b} [INFO] [stderr] | ^^^ help: replace it with: `r` [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/color.rs:13:20 [INFO] [stderr] | [INFO] [stderr] 13 | Color{r:r, g:g, b:b} [INFO] [stderr] | ^^^ help: replace it with: `g` [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/color.rs:13:25 [INFO] [stderr] | [INFO] [stderr] 13 | Color{r:r, g:g, b:b} [INFO] [stderr] | ^^^ help: replace it with: `b` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/camera.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | pitch:pitch, [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `pitch` [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/camera.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | yaw:yaw, [INFO] [stderr] | ^^^^^^^ help: replace it with: `yaw` [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/camera.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | roll:roll [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `roll` [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/screen.rs:18:16 [INFO] [stderr] | [INFO] [stderr] 18 | Screen{width:width, height:height, fd:fd, fov:fov} [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `width` [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/screen.rs:18:29 [INFO] [stderr] | [INFO] [stderr] 18 | Screen{width:width, height:height, fd:fd, fov:fov} [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/screen.rs:18:44 [INFO] [stderr] | [INFO] [stderr] 18 | Screen{width:width, height:height, fd:fd, fov:fov} [INFO] [stderr] | ^^^^^ help: replace it with: `fd` [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/screen.rs:18:51 [INFO] [stderr] | [INFO] [stderr] 18 | Screen{width:width, height:height, fd:fd, fov:fov} [INFO] [stderr] | ^^^^^^^ help: replace it with: `fov` [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/ray.rs:17:36 [INFO] [stderr] | [INFO] [stderr] 17 | Ray{origin:origin.clone(), unit_dir: unit_dir} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `unit_dir` [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/model.rs:17:15 [INFO] [stderr] | [INFO] [stderr] 17 | Model{location:location, normal:normal, scale:scale} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `location` [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/model.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | Model{location:location, normal:normal, scale:scale} [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `normal` [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/model.rs:17:49 [INFO] [stderr] | [INFO] [stderr] 17 | Model{location:location, normal:normal, scale:scale} [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `scale` [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/binvox.rs:49:21 [INFO] [stderr] | [INFO] [stderr] 49 | version: version, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [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/binvox.rs:52:21 [INFO] [stderr] | [INFO] [stderr] 52 | scale: scale [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `scale` [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/lod.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | LOD{lod:lod, limit:limit, volume:volume} [INFO] [stderr] | ^^^^^^^ help: replace it with: `lod` [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/lod.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | LOD{lod:lod, limit:limit, volume:volume} [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `limit` [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/lod.rs:22:35 [INFO] [stderr] | [INFO] [stderr] 22 | LOD{lod:lod, limit:limit, volume:volume} [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `volume` [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/point.rs:13:15 [INFO] [stderr] | [INFO] [stderr] 13 | Point{x:x, y:y, z:z} [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/point.rs:13:20 [INFO] [stderr] | [INFO] [stderr] 13 | Point{x:x, y:y, z:z} [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: redundant field names in struct initialization [INFO] [stderr] --> src/point.rs:13:25 [INFO] [stderr] | [INFO] [stderr] 13 | Point{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `z` [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/shape.rs:40:16 [INFO] [stderr] | [INFO] [stderr] 40 | Sphere{radius:radius, center:center.clone()} [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/shape.rs:89:14 [INFO] [stderr] | [INFO] [stderr] 89 | Cube{lower:lower, upper:upper, center:center.clone()} [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `lower` [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/shape.rs:89:27 [INFO] [stderr] | [INFO] [stderr] 89 | Cube{lower:lower, upper:upper, center:center.clone()} [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `upper` [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/normal.rs:19:16 [INFO] [stderr] | [INFO] [stderr] 19 | Normal{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `x` [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/normal.rs:19:21 [INFO] [stderr] | [INFO] [stderr] 19 | Normal{x:x, y:y, z:z} [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: redundant field names in struct initialization [INFO] [stderr] --> src/normal.rs:19:26 [INFO] [stderr] | [INFO] [stderr] 19 | Normal{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `z` [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/vector.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | Vector{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `x` [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/vector.rs:20:21 [INFO] [stderr] | [INFO] [stderr] 20 | Vector{x:x, y:y, z:z} [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: redundant field names in struct initialization [INFO] [stderr] --> src/vector.rs:20:26 [INFO] [stderr] | [INFO] [stderr] 20 | Vector{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `z` [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/vector.rs:86:16 [INFO] [stderr] | [INFO] [stderr] 86 | Vector{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `x` [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/vector.rs:86:21 [INFO] [stderr] | [INFO] [stderr] 86 | Vector{x:x, y:y, z:z} [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: redundant field names in struct initialization [INFO] [stderr] --> src/vector.rs:86:26 [INFO] [stderr] | [INFO] [stderr] 86 | Vector{x:x, y:y, z:z} [INFO] [stderr] | ^^^ help: replace it with: `z` [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/color.rs:13:15 [INFO] [stderr] | [INFO] [stderr] 13 | Color{r:r, g:g, b:b} [INFO] [stderr] | ^^^ help: replace it with: `r` [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/color.rs:13:20 [INFO] [stderr] | [INFO] [stderr] 13 | Color{r:r, g:g, b:b} [INFO] [stderr] | ^^^ help: replace it with: `g` [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/color.rs:13:25 [INFO] [stderr] | [INFO] [stderr] 13 | Color{r:r, g:g, b:b} [INFO] [stderr] | ^^^ help: replace it with: `b` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/camera.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | pitch:pitch, [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `pitch` [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/camera.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | yaw:yaw, [INFO] [stderr] | ^^^^^^^ help: replace it with: `yaw` [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/camera.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | roll:roll [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `roll` [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/screen.rs:18:16 [INFO] [stderr] | [INFO] [stderr] 18 | Screen{width:width, height:height, fd:fd, fov:fov} [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `width` [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/screen.rs:18:29 [INFO] [stderr] | [INFO] [stderr] 18 | Screen{width:width, height:height, fd:fd, fov:fov} [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/screen.rs:18:44 [INFO] [stderr] | [INFO] [stderr] 18 | Screen{width:width, height:height, fd:fd, fov:fov} [INFO] [stderr] | ^^^^^ help: replace it with: `fd` [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/screen.rs:18:51 [INFO] [stderr] | [INFO] [stderr] 18 | Screen{width:width, height:height, fd:fd, fov:fov} [INFO] [stderr] | ^^^^^^^ help: replace it with: `fov` [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/ray.rs:17:36 [INFO] [stderr] | [INFO] [stderr] 17 | Ray{origin:origin.clone(), unit_dir: unit_dir} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `unit_dir` [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/model.rs:17:15 [INFO] [stderr] | [INFO] [stderr] 17 | Model{location:location, normal:normal, scale:scale} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `location` [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/model.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | Model{location:location, normal:normal, scale:scale} [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `normal` [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/model.rs:17:49 [INFO] [stderr] | [INFO] [stderr] 17 | Model{location:location, normal:normal, scale:scale} [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `scale` [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/binvox.rs:49:21 [INFO] [stderr] | [INFO] [stderr] 49 | version: version, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [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/binvox.rs:52:21 [INFO] [stderr] | [INFO] [stderr] 52 | scale: scale [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `scale` [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/lod.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | LOD{lod:lod, limit:limit, volume:volume} [INFO] [stderr] | ^^^^^^^ help: replace it with: `lod` [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/lod.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | LOD{lod:lod, limit:limit, volume:volume} [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `limit` [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/lod.rs:22:35 [INFO] [stderr] | [INFO] [stderr] 22 | LOD{lod:lod, limit:limit, volume:volume} [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `volume` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/shape.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | normal [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/shape.rs:66:22 [INFO] [stderr] | [INFO] [stderr] 66 | let normal = Normal::from_vector(&cp); [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: unneeded return statement [INFO] [stderr] --> src/shape.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | return Normal::from_vector(&vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Normal::from_vector(&vec)` [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: unnecessary parentheses around `for` head expression [INFO] [stderr] --> src/location.rs:104:14 [INFO] [stderr] | [INFO] [stderr] 104 | for i in (1..lod.lod+1){ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/location.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | return x * limit * limit + y * limit + z; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `x * limit * limit + y * limit + z` [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: unnecessary parentheses around assigned value [INFO] [stderr] --> src/location.rs:160:14 [INFO] [stderr] | [INFO] [stderr] 160 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:160:15 [INFO] [stderr] | [INFO] [stderr] 160 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(morton & ( 1 << 3 * i + 0)) >> (((3 * i) + 0)-i)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:160:27 [INFO] [stderr] | [INFO] [stderr] 160 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (3 * i + 0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/location.rs:161:14 [INFO] [stderr] | [INFO] [stderr] 161 | y |= ((morton & ( 1 << 3 * i + 1)) >> ((3 * i) + 1)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:161:15 [INFO] [stderr] | [INFO] [stderr] 161 | y |= ((morton & ( 1 << 3 * i + 1)) >> ((3 * i) + 1)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(morton & ( 1 << 3 * i + 1)) >> (((3 * i) + 1)-i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:161:27 [INFO] [stderr] | [INFO] [stderr] 161 | y |= ((morton & ( 1 << 3 * i + 1)) >> ((3 * i) + 1)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (3 * i + 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/location.rs:162:14 [INFO] [stderr] | [INFO] [stderr] 162 | z |= ((morton & ( 1 << 3 * i + 2)) >> ((3 * i) + 2)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:162:15 [INFO] [stderr] | [INFO] [stderr] 162 | z |= ((morton & ( 1 << 3 * i + 2)) >> ((3 * i) + 2)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(morton & ( 1 << 3 * i + 2)) >> (((3 * i) + 2)-i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:162:27 [INFO] [stderr] | [INFO] [stderr] 162 | z |= ((morton & ( 1 << 3 * i + 2)) >> ((3 * i) + 2)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (3 * i + 2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:170:20 [INFO] [stderr] | [INFO] [stderr] 170 | answer |= ((x & (1 << i)) << 2*i) | ((y & (1 << i)) << (2*i + 1)) | ((z & (1 << i)) << (2*i + 2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(x & (1 << i)) << (2*i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/voxelizer.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | normals [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/voxelizer.rs:34:19 [INFO] [stderr] | [INFO] [stderr] 34 | let normals = calculate_normals(&root, required_lod); [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: unneeded return statement [INFO] [stderr] --> src/voxelizer.rs:169:5 [INFO] [stderr] | [INFO] [stderr] 169 | return Normal::from_vector(&vec_normal); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Normal::from_vector(&vec_normal)` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/voxelizer.rs:214:5 [INFO] [stderr] | [INFO] [stderr] 214 | vec_normal [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/voxelizer.rs:213:22 [INFO] [stderr] | [INFO] [stderr] 213 | let vec_normal = get_average(&normals).unit_vector(); [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: unneeded return statement [INFO] [stderr] --> src/voxelizer.rs:249:9 [INFO] [stderr] | [INFO] [stderr] 249 | return vec_normal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `vec_normal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/voxelizer.rs:253:9 [INFO] [stderr] | [INFO] [stderr] 253 | return vec_normal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `vec_normal` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/voxelizer.rs:269:5 [INFO] [stderr] | [INFO] [stderr] 269 | ave [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/voxelizer.rs:268:15 [INFO] [stderr] | [INFO] [stderr] 268 | let ave = Vector::new(xt/len as f64, yt/len as f64, zt/len as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/voxelizer.rs:309:5 [INFO] [stderr] | [INFO] [stderr] 309 | normals [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/voxelizer.rs:308:23 [INFO] [stderr] | [INFO] [stderr] 308 | let mut normals = Voxtree::new(); [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: unused import: `std::path::Path` [INFO] [stderr] --> src/renderer.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/renderer.rs:158:5 [INFO] [stderr] | [INFO] [stderr] 158 | color [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/renderer.rs:157:17 [INFO] [stderr] | [INFO] [stderr] 157 | let color = raytracer::factored_trace_ray_normals(screen, lod, view_lod, &pixel_ray, model, model.scale, max_distance); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/screen.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | v [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/screen.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | let v = Vector::new(mx, my, mz); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/screen.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | v [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/screen.rs:41:17 [INFO] [stderr] | [INFO] [stderr] 41 | let v = Vector::new(mx, my, mz); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/screen.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | required_lod [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/screen.rs:58:28 [INFO] [stderr] | [INFO] [stderr] 58 | let required_lod = (view_lod as i16 - exp as i16) as i8; [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: unused import: `std::sync::mpsc` [INFO] [stderr] --> src/raytracer.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::sync::mpsc; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread::Thread` [INFO] [stderr] --> src/raytracer.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::thread::Thread; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/raytracer.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `time::PreciseTime` [INFO] [stderr] --> src/raytracer.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use time::PreciseTime; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `voxel::voxtree::Voxtree` [INFO] [stderr] --> src/raytracer.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use voxel::voxtree::Voxtree; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `point::Point` [INFO] [stderr] --> src/raytracer.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use point::Point; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `camera::Camera` [INFO] [stderr] --> src/raytracer.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use camera::Camera; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `voxelizer` [INFO] [stderr] --> src/raytracer.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | use voxelizer; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp` [INFO] [stderr] --> src/raytracer.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use std::cmp; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/raytracer.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | return Some(fcolor); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(fcolor)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/raytracer.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/raytracer.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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: unused import: `std::fmt` [INFO] [stderr] --> src/model.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::fmt; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `color::Color` [INFO] [stderr] --> src/binvox.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use color::Color; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/binvox.rs:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | return (xlimit, ylimit, zlimit); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(xlimit, ylimit, zlimit)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/binvox.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | return (xtrans, ytrans, ztrans) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(xtrans, ytrans, ztrans)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/binvox.rs:159:9 [INFO] [stderr] | [INFO] [stderr] 159 | return f64::from_str(scale).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `f64::from_str(scale).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/binvox.rs:245:9 [INFO] [stderr] | [INFO] [stderr] 245 | return normals; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `normals` [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: unused import: `voxel::voxtree::Voxtree` [INFO] [stderr] --> src/neighbors.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use voxel::voxtree::Voxtree; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/voxel/vox.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | return self.children(index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.children(index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/voxel/vox.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | return self.mut_children(index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mut_children(index)` [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: unused import: `voxel::vox::Vox` [INFO] [stderr] --> src/voxel/voxgrid.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use voxel::vox::Vox; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/morton.rs:10:14 [INFO] [stderr] | [INFO] [stderr] 10 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:10:15 [INFO] [stderr] | [INFO] [stderr] 10 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(morton & ( 1 << 3 * i + 0)) >> (((3 * i) + 0)-i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (3 * i + 0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/morton.rs:11:14 [INFO] [stderr] | [INFO] [stderr] 11 | y |= ((morton & ( 1 << 3 * i + 1)) >> ((3 * i) + 1)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:11:15 [INFO] [stderr] | [INFO] [stderr] 11 | y |= ((morton & ( 1 << 3 * i + 1)) >> ((3 * i) + 1)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(morton & ( 1 << 3 * i + 1)) >> (((3 * i) + 1)-i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:11:27 [INFO] [stderr] | [INFO] [stderr] 11 | y |= ((morton & ( 1 << 3 * i + 1)) >> ((3 * i) + 1)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (3 * i + 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/morton.rs:12:14 [INFO] [stderr] | [INFO] [stderr] 12 | z |= ((morton & ( 1 << 3 * i + 2)) >> ((3 * i) + 2)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:12:15 [INFO] [stderr] | [INFO] [stderr] 12 | z |= ((morton & ( 1 << 3 * i + 2)) >> ((3 * i) + 2)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(morton & ( 1 << 3 * i + 2)) >> (((3 * i) + 2)-i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:12:27 [INFO] [stderr] | [INFO] [stderr] 12 | z |= ((morton & ( 1 << 3 * i + 2)) >> ((3 * i) + 2)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (3 * i + 2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:23:20 [INFO] [stderr] | [INFO] [stderr] 23 | answer |= ((x & (1 << i)) << 2*i) | ((y & (1 << i)) << (2*i + 1)) | ((z & (1 << i)) << (2*i + 2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(x & (1 << i)) << (2*i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/shape.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | normal [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/shape.rs:66:22 [INFO] [stderr] | [INFO] [stderr] 66 | let normal = Normal::from_vector(&cp); [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: unneeded return statement [INFO] [stderr] --> src/shape.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | return Normal::from_vector(&vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Normal::from_vector(&vec)` [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: unnecessary parentheses around `for` head expression [INFO] [stderr] --> src/location.rs:104:14 [INFO] [stderr] | [INFO] [stderr] 104 | for i in (1..lod.lod+1){ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/location.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | return x * limit * limit + y * limit + z; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `x * limit * limit + y * limit + z` [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: unnecessary parentheses around assigned value [INFO] [stderr] --> src/location.rs:160:14 [INFO] [stderr] | [INFO] [stderr] 160 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:160:15 [INFO] [stderr] | [INFO] [stderr] 160 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(morton & ( 1 << 3 * i + 0)) >> (((3 * i) + 0)-i)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:160:27 [INFO] [stderr] | [INFO] [stderr] 160 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (3 * i + 0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/location.rs:161:14 [INFO] [stderr] | [INFO] [stderr] 161 | y |= ((morton & ( 1 << 3 * i + 1)) >> ((3 * i) + 1)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:161:15 [INFO] [stderr] | [INFO] [stderr] 161 | y |= ((morton & ( 1 << 3 * i + 1)) >> ((3 * i) + 1)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(morton & ( 1 << 3 * i + 1)) >> (((3 * i) + 1)-i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:161:27 [INFO] [stderr] | [INFO] [stderr] 161 | y |= ((morton & ( 1 << 3 * i + 1)) >> ((3 * i) + 1)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (3 * i + 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/location.rs:162:14 [INFO] [stderr] | [INFO] [stderr] 162 | z |= ((morton & ( 1 << 3 * i + 2)) >> ((3 * i) + 2)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:162:15 [INFO] [stderr] | [INFO] [stderr] 162 | z |= ((morton & ( 1 << 3 * i + 2)) >> ((3 * i) + 2)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(morton & ( 1 << 3 * i + 2)) >> (((3 * i) + 2)-i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:162:27 [INFO] [stderr] | [INFO] [stderr] 162 | z |= ((morton & ( 1 << 3 * i + 2)) >> ((3 * i) + 2)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (3 * i + 2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/location.rs:170:20 [INFO] [stderr] | [INFO] [stderr] 170 | answer |= ((x & (1 << i)) << 2*i) | ((y & (1 << i)) << (2*i + 1)) | ((z & (1 << i)) << (2*i + 2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(x & (1 << i)) << (2*i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/voxelizer.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | normals [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/voxelizer.rs:34:19 [INFO] [stderr] | [INFO] [stderr] 34 | let normals = calculate_normals(&root, required_lod); [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: unneeded return statement [INFO] [stderr] --> src/voxelizer.rs:169:5 [INFO] [stderr] | [INFO] [stderr] 169 | return Normal::from_vector(&vec_normal); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Normal::from_vector(&vec_normal)` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/voxelizer.rs:214:5 [INFO] [stderr] | [INFO] [stderr] 214 | vec_normal [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/voxelizer.rs:213:22 [INFO] [stderr] | [INFO] [stderr] 213 | let vec_normal = get_average(&normals).unit_vector(); [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: unneeded return statement [INFO] [stderr] --> src/voxelizer.rs:249:9 [INFO] [stderr] | [INFO] [stderr] 249 | return vec_normal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `vec_normal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/voxelizer.rs:253:9 [INFO] [stderr] | [INFO] [stderr] 253 | return vec_normal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `vec_normal` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/voxelizer.rs:269:5 [INFO] [stderr] | [INFO] [stderr] 269 | ave [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/voxelizer.rs:268:15 [INFO] [stderr] | [INFO] [stderr] 268 | let ave = Vector::new(xt/len as f64, yt/len as f64, zt/len as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/voxelizer.rs:309:5 [INFO] [stderr] | [INFO] [stderr] 309 | normals [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/voxelizer.rs:308:23 [INFO] [stderr] | [INFO] [stderr] 308 | let mut normals = Voxtree::new(); [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: unused import: `std::path::Path` [INFO] [stderr] --> src/renderer.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/renderer.rs:158:5 [INFO] [stderr] | [INFO] [stderr] 158 | color [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/renderer.rs:157:17 [INFO] [stderr] | [INFO] [stderr] 157 | let color = raytracer::factored_trace_ray_normals(screen, lod, view_lod, &pixel_ray, model, model.scale, max_distance); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/screen.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | v [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/screen.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | let v = Vector::new(mx, my, mz); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/screen.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | v [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/screen.rs:41:17 [INFO] [stderr] | [INFO] [stderr] 41 | let v = Vector::new(mx, my, mz); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/screen.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | required_lod [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/screen.rs:58:28 [INFO] [stderr] | [INFO] [stderr] 58 | let required_lod = (view_lod as i16 - exp as i16) as i8; [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: unused import: `std::sync::mpsc` [INFO] [stderr] --> src/raytracer.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::sync::mpsc; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread::Thread` [INFO] [stderr] --> src/raytracer.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::thread::Thread; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/raytracer.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `time::PreciseTime` [INFO] [stderr] --> src/raytracer.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use time::PreciseTime; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `voxel::voxtree::Voxtree` [INFO] [stderr] --> src/raytracer.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use voxel::voxtree::Voxtree; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `point::Point` [INFO] [stderr] --> src/raytracer.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use point::Point; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `camera::Camera` [INFO] [stderr] --> src/raytracer.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use camera::Camera; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `voxelizer` [INFO] [stderr] --> src/raytracer.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | use voxelizer; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp` [INFO] [stderr] --> src/raytracer.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use std::cmp; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/raytracer.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | return Some(fcolor); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(fcolor)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/raytracer.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/raytracer.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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: unused import: `std::fmt` [INFO] [stderr] --> src/model.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::fmt; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `color::Color` [INFO] [stderr] --> src/binvox.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use color::Color; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/binvox.rs:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | return (xlimit, ylimit, zlimit); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(xlimit, ylimit, zlimit)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/binvox.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | return (xtrans, ytrans, ztrans) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(xtrans, ytrans, ztrans)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/binvox.rs:159:9 [INFO] [stderr] | [INFO] [stderr] 159 | return f64::from_str(scale).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `f64::from_str(scale).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/binvox.rs:245:9 [INFO] [stderr] | [INFO] [stderr] 245 | return normals; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `normals` [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: unused import: `voxel::voxtree::Voxtree` [INFO] [stderr] --> src/neighbors.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use voxel::voxtree::Voxtree; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/voxel/vox.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | return self.children(index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.children(index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/voxel/vox.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | return self.mut_children(index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.mut_children(index)` [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: unused import: `voxel::vox::Vox` [INFO] [stderr] --> src/voxel/voxgrid.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use voxel::vox::Vox; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/morton.rs:10:14 [INFO] [stderr] | [INFO] [stderr] 10 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:10:15 [INFO] [stderr] | [INFO] [stderr] 10 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(morton & ( 1 << 3 * i + 0)) >> (((3 * i) + 0)-i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (3 * i + 0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/morton.rs:11:14 [INFO] [stderr] | [INFO] [stderr] 11 | y |= ((morton & ( 1 << 3 * i + 1)) >> ((3 * i) + 1)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:11:15 [INFO] [stderr] | [INFO] [stderr] 11 | y |= ((morton & ( 1 << 3 * i + 1)) >> ((3 * i) + 1)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(morton & ( 1 << 3 * i + 1)) >> (((3 * i) + 1)-i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:11:27 [INFO] [stderr] | [INFO] [stderr] 11 | y |= ((morton & ( 1 << 3 * i + 1)) >> ((3 * i) + 1)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (3 * i + 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/morton.rs:12:14 [INFO] [stderr] | [INFO] [stderr] 12 | z |= ((morton & ( 1 << 3 * i + 2)) >> ((3 * i) + 2)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:12:15 [INFO] [stderr] | [INFO] [stderr] 12 | z |= ((morton & ( 1 << 3 * i + 2)) >> ((3 * i) + 2)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(morton & ( 1 << 3 * i + 2)) >> (((3 * i) + 2)-i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:12:27 [INFO] [stderr] | [INFO] [stderr] 12 | z |= ((morton & ( 1 << 3 * i + 2)) >> ((3 * i) + 2)-i); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `1 << (3 * i + 2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/morton.rs:23:20 [INFO] [stderr] | [INFO] [stderr] 23 | answer |= ((x & (1 << i)) << 2*i) | ((y & (1 << i)) << (2*i + 1)) | ((z & (1 << i)) << (2*i + 2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(x & (1 << i)) << (2*i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unused import: `voxel::vox::Vox` [INFO] [stderr] --> src/voxel/voxstream.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use voxel::vox::Vox; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/voxelizer.rs:57:22 [INFO] [stderr] | [INFO] [stderr] 57 | let (iteration, hit) = node.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `cnt` is assigned to, but never used [INFO] [stderr] --> src/voxelizer.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | let mut cnt = 0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_cnt` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/voxelizer.rs:89:22 [INFO] [stderr] | [INFO] [stderr] 89 | let (iteration, hit) = normals.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: variable `cnt` is assigned to, but never used [INFO] [stderr] --> src/voxelizer.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | let mut cnt = 0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_cnt` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/voxelizer.rs:118:22 [INFO] [stderr] | [INFO] [stderr] 118 | let (iteration, hit) = normals.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: variable `skipped` is assigned to, but never used [INFO] [stderr] --> src/voxelizer.rs:187:13 [INFO] [stderr] | [INFO] [stderr] 187 | let mut skipped = 0; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_skipped` instead [INFO] [stderr] [INFO] [stderr] warning: variable `skipped` is assigned to, but never used [INFO] [stderr] --> src/voxelizer.rs:222:13 [INFO] [stderr] | [INFO] [stderr] 222 | let mut skipped = 0; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_skipped` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/voxelizer.rs:290:22 [INFO] [stderr] | [INFO] [stderr] 290 | let (iteration, hit) = initial_normals.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `normals` [INFO] [stderr] --> src/voxelizer.rs:307:29 [INFO] [stderr] | [INFO] [stderr] 307 | pub fn mipmap_voxel_normals(normals:&Voxtree)->Voxtree{ [INFO] [stderr] | ^^^^^^^ help: consider using `_normals` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/voxelizer.rs:346:22 [INFO] [stderr] | [INFO] [stderr] 346 | let (iteration, hit) = node.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/renderer.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | for t in 0..total{ [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/renderer.rs:164:13 [INFO] [stderr] | [INFO] [stderr] 164 | Err(why) => panic!("couldn't create file {}", filename), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `low_lod` [INFO] [stderr] --> src/raytracer.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | let low_lod = LOD::new(lod.lod-1); [INFO] [stderr] | ^^^^^^^ help: consider using `_low_lod` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/raytracer.rs:148:18 [INFO] [stderr] | [INFO] [stderr] 148 | let (iteration, hit) = model.normal.is_location_occupied(&vec_location); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `screen` [INFO] [stderr] --> src/raytracer.rs:132:21 [INFO] [stderr] | [INFO] [stderr] 132 | pub fn hit_location(screen:&Screen, lod:&LOD, view_lod:&LOD, ray:&Ray, model:&Model, obj_scale:f64, max_distance:u64)->Option>{ [INFO] [stderr] | ^^^^^^ help: consider using `_screen` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `line` [INFO] [stderr] --> src/binvox.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ^^^^ help: consider using `_line` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/binvox.rs:68:13 [INFO] [stderr] | [INFO] [stderr] 68 | Err(why) => panic!("error reading header"), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `line` [INFO] [stderr] --> src/binvox.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ^^^^ help: consider using `_line` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/binvox.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | Err(why) => panic!("couldn't read dimension"), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `line` [INFO] [stderr] --> src/binvox.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ^^^^ help: consider using `_line` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/binvox.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | Err(why) => panic!("couldn't read translation"), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `line` [INFO] [stderr] --> src/binvox.rs:146:13 [INFO] [stderr] | [INFO] [stderr] 146 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ^^^^ help: consider using `_line` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/binvox.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | Err(why) => panic!("couldn't read scaling"), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `line` [INFO] [stderr] --> src/binvox.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ^^^^ help: consider using `_line` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/binvox.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | Err(why) => panic!("couldn't read data"), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `end_index` is never read [INFO] [stderr] --> src/binvox.rs:184:17 [INFO] [stderr] | [INFO] [stderr] 184 | let mut end_index = 0u64; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `nr_voxels` is assigned to, but never used [INFO] [stderr] --> src/binvox.rs:185:17 [INFO] [stderr] | [INFO] [stderr] 185 | let mut nr_voxels = 0u64; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_nr_voxels` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `j` [INFO] [stderr] --> src/binvox.rs:197:21 [INFO] [stderr] | [INFO] [stderr] 197 | for j in index..end_index { [INFO] [stderr] | ^ help: consider using `_j` instead [INFO] [stderr] [INFO] [stderr] warning: variable `cnt` is assigned to, but never used [INFO] [stderr] --> src/binvox.rs:206:17 [INFO] [stderr] | [INFO] [stderr] 206 | let mut cnt = 0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_cnt` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/neighbors.rs:21:18 [INFO] [stderr] | [INFO] [stderr] 21 | let (iteration, hit) = node.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/neighbors.rs:42:18 [INFO] [stderr] | [INFO] [stderr] 42 | let (iteration, hit) = node.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/neighbors.rs:61:18 [INFO] [stderr] | [INFO] [stderr] 61 | let (iteration, hit) = node.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/binvox.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | Err(why) => panic!("couldn't open {}", display), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `binvox` [INFO] [stderr] --> src/binvox.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | let binvox = Binvox{ [INFO] [stderr] | ^^^^^^ help: consider using `_binvox` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `location` [INFO] [stderr] --> src/voxel/voxstream.rs:19:24 [INFO] [stderr] | [INFO] [stderr] 19 | fn get_tree(&self, location:&Vec)->&Self{ [INFO] [stderr] | ^^^^^^^^ help: consider using `_location` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `required_lod` [INFO] [stderr] --> src/voxel/voxstream.rs:47:30 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn total_ones(&self, required_lod: &LOD)->usize{ [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_required_lod` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `location` [INFO] [stderr] --> src/voxel/voxstream.rs:61:31 [INFO] [stderr] | [INFO] [stderr] 61 | pub fn get_content(&self, location:&Vec)->&T{ [INFO] [stderr] | ^^^^^^^^ help: consider using `_location` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/voxelizer.rs:308:9 [INFO] [stderr] | [INFO] [stderr] 308 | let mut normals = Voxtree::new(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `voxel::vox::Vox` [INFO] [stderr] --> src/voxel/voxstream.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use voxel::vox::Vox; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/binvox.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | let mut file = match File::open(&path) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/binvox.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/binvox.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/binvox.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/binvox.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/binvox.rs:170:9 [INFO] [stderr] | [INFO] [stderr] 170 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/voxelizer.rs:57:22 [INFO] [stderr] | [INFO] [stderr] 57 | let (iteration, hit) = node.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `cnt` is assigned to, but never used [INFO] [stderr] --> src/voxelizer.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | let mut cnt = 0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_cnt` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/voxelizer.rs:89:22 [INFO] [stderr] | [INFO] [stderr] 89 | let (iteration, hit) = normals.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: variable `cnt` is assigned to, but never used [INFO] [stderr] --> src/voxelizer.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | let mut cnt = 0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_cnt` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/voxelizer.rs:118:22 [INFO] [stderr] | [INFO] [stderr] 118 | let (iteration, hit) = normals.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: variable `skipped` is assigned to, but never used [INFO] [stderr] --> src/voxelizer.rs:187:13 [INFO] [stderr] | [INFO] [stderr] 187 | let mut skipped = 0; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_skipped` instead [INFO] [stderr] [INFO] [stderr] warning: variable `skipped` is assigned to, but never used [INFO] [stderr] --> src/voxelizer.rs:222:13 [INFO] [stderr] | [INFO] [stderr] 222 | let mut skipped = 0; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_skipped` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/voxelizer.rs:290:22 [INFO] [stderr] | [INFO] [stderr] 290 | let (iteration, hit) = initial_normals.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `normals` [INFO] [stderr] --> src/voxelizer.rs:307:29 [INFO] [stderr] | [INFO] [stderr] 307 | pub fn mipmap_voxel_normals(normals:&Voxtree)->Voxtree{ [INFO] [stderr] | ^^^^^^^ help: consider using `_normals` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/voxelizer.rs:346:22 [INFO] [stderr] | [INFO] [stderr] 346 | let (iteration, hit) = node.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/renderer.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | for t in 0..total{ [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/renderer.rs:164:13 [INFO] [stderr] | [INFO] [stderr] 164 | Err(why) => panic!("couldn't create file {}", filename), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `low_lod` [INFO] [stderr] --> src/raytracer.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | let low_lod = LOD::new(lod.lod-1); [INFO] [stderr] | ^^^^^^^ help: consider using `_low_lod` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/raytracer.rs:148:18 [INFO] [stderr] | [INFO] [stderr] 148 | let (iteration, hit) = model.normal.is_location_occupied(&vec_location); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `screen` [INFO] [stderr] --> src/raytracer.rs:132:21 [INFO] [stderr] | [INFO] [stderr] 132 | pub fn hit_location(screen:&Screen, lod:&LOD, view_lod:&LOD, ray:&Ray, model:&Model, obj_scale:f64, max_distance:u64)->Option>{ [INFO] [stderr] | ^^^^^^ help: consider using `_screen` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `line` [INFO] [stderr] --> src/binvox.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ^^^^ help: consider using `_line` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/binvox.rs:68:13 [INFO] [stderr] | [INFO] [stderr] 68 | Err(why) => panic!("error reading header"), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `line` [INFO] [stderr] --> src/binvox.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ^^^^ help: consider using `_line` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/binvox.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | Err(why) => panic!("couldn't read dimension"), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `line` [INFO] [stderr] --> src/binvox.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ^^^^ help: consider using `_line` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/binvox.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | Err(why) => panic!("couldn't read translation"), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `line` [INFO] [stderr] --> src/binvox.rs:146:13 [INFO] [stderr] | [INFO] [stderr] 146 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ^^^^ help: consider using `_line` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/binvox.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | Err(why) => panic!("couldn't read scaling"), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `line` [INFO] [stderr] --> src/binvox.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ^^^^ help: consider using `_line` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/binvox.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | Err(why) => panic!("couldn't read data"), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `end_index` is never read [INFO] [stderr] --> src/binvox.rs:184:17 [INFO] [stderr] | [INFO] [stderr] 184 | let mut end_index = 0u64; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `nr_voxels` is assigned to, but never used [INFO] [stderr] --> src/binvox.rs:185:17 [INFO] [stderr] | [INFO] [stderr] 185 | let mut nr_voxels = 0u64; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_nr_voxels` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `j` [INFO] [stderr] --> src/binvox.rs:197:21 [INFO] [stderr] | [INFO] [stderr] 197 | for j in index..end_index { [INFO] [stderr] | ^ help: consider using `_j` instead [INFO] [stderr] [INFO] [stderr] warning: variable `cnt` is assigned to, but never used [INFO] [stderr] --> src/binvox.rs:206:17 [INFO] [stderr] | [INFO] [stderr] 206 | let mut cnt = 0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_cnt` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/neighbors.rs:21:18 [INFO] [stderr] | [INFO] [stderr] 21 | let (iteration, hit) = node.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/neighbors.rs:42:18 [INFO] [stderr] | [INFO] [stderr] 42 | let (iteration, hit) = node.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `iteration` [INFO] [stderr] --> src/neighbors.rs:61:18 [INFO] [stderr] | [INFO] [stderr] 61 | let (iteration, hit) = node.is_location_occupied(&loc); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_iteration` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x1` [INFO] [stderr] --> src/morton.rs:177:22 [INFO] [stderr] | [INFO] [stderr] 177 | let (x1,y1,z1) = morton_to_xyz(1, m1);//<---not OK [INFO] [stderr] | ^^ help: consider using `_x1` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `y1` [INFO] [stderr] --> src/morton.rs:177:25 [INFO] [stderr] | [INFO] [stderr] 177 | let (x1,y1,z1) = morton_to_xyz(1, m1);//<---not OK [INFO] [stderr] | ^^ help: consider using `_y1` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z1` [INFO] [stderr] --> src/morton.rs:177:28 [INFO] [stderr] | [INFO] [stderr] 177 | let (x1,y1,z1) = morton_to_xyz(1, m1);//<---not OK [INFO] [stderr] | ^^ help: consider using `_z1` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `why` [INFO] [stderr] --> src/binvox.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | Err(why) => panic!("couldn't open {}", display), [INFO] [stderr] | ^^^ help: consider using `_why` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `binvox` [INFO] [stderr] --> src/binvox.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | let binvox = Binvox{ [INFO] [stderr] | ^^^^^^ help: consider using `_binvox` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `location` [INFO] [stderr] --> src/voxel/voxstream.rs:19:24 [INFO] [stderr] | [INFO] [stderr] 19 | fn get_tree(&self, location:&Vec)->&Self{ [INFO] [stderr] | ^^^^^^^^ help: consider using `_location` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `required_lod` [INFO] [stderr] --> src/voxel/voxstream.rs:47:30 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn total_ones(&self, required_lod: &LOD)->usize{ [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_required_lod` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `location` [INFO] [stderr] --> src/voxel/voxstream.rs:61:31 [INFO] [stderr] | [INFO] [stderr] 61 | pub fn get_content(&self, location:&Vec)->&T{ [INFO] [stderr] | ^^^^^^^^ help: consider using `_location` instead [INFO] [stderr] [INFO] [stderr] warning: field is never used: `center` [INFO] [stderr] --> src/shape.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | center:Point, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Prism` [INFO] [stderr] --> src/shape.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | struct Prism{ [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Cylinder` [INFO] [stderr] --> src/shape.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | struct Cylinder{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `linear_to_morton_64` [INFO] [stderr] --> src/location.rs:134:1 [INFO] [stderr] | [INFO] [stderr] 134 | fn linear_to_morton_64(linear:u64)->u8{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `clamp_location` [INFO] [stderr] --> src/raytracer.rs:159:1 [INFO] [stderr] | [INFO] [stderr] 159 | fn clamp_location(location:&Vec, view_lod:&LOD)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `gamma_correction` [INFO] [stderr] --> src/raytracer.rs:179:1 [INFO] [stderr] | [INFO] [stderr] 179 | fn gamma_correction(color:Color)->Color{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `version` [INFO] [stderr] --> src/binvox.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | version:String, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `dim` [INFO] [stderr] --> src/binvox.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | dim:Point, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `translate` [INFO] [stderr] --> src/binvox.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | translate:Vector, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `scale` [INFO] [stderr] --> src/binvox.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | scale:f64 [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `lod` [INFO] [stderr] --> src/voxel/voxgrid.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | lod:LOD, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `bitset` [INFO] [stderr] --> src/voxel/voxgrid.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | bitset:Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `content` [INFO] [stderr] --> src/voxel/voxgrid.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | content:Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/voxel/voxgrid.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | fn new(lod:&LOD)->Self{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get` [INFO] [stderr] --> src/voxel/voxgrid.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | fn get(&self, x:u64, y:u64, z:u64)->&T{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_tree` [INFO] [stderr] --> src/voxel/voxstream.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | fn get_tree(&self, location:&Vec)->&Self{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/normal.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 35 | let x = self.x as f64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.x)` [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 i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/normal.rs:36:17 [INFO] [stderr] | [INFO] [stderr] 36 | let y = self.y as f64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.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: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/normal.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | let z = self.z as f64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.z)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:12:14 [INFO] [stderr] | [INFO] [stderr] 12 | for _ in 1..lod.lod+1{ [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=lod.lod` [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/location.rs:15:14 [INFO] [stderr] | [INFO] [stderr] 15 | for i in (1..lod.lod+1).rev(){ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `(1..=lod.lod)` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:16:27 [INFO] [stderr] | [INFO] [stderr] 16 | let rem = index % constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/location.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | index = index / constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `index /= constants::BITS as u64` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:18:25 [INFO] [stderr] | [INFO] [stderr] 18 | index = index / constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/location.rs:26:29 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn to_xyz_orig(location:&Vec)->(u64, u64, u64){ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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: the loop variable `i` is only used to index `location`. [INFO] [stderr] --> src/location.rs:29:14 [INFO] [stderr] | [INFO] [stderr] 29 | for i in 0..location.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] 29 | for in &location{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:31:18 [INFO] [stderr] | [INFO] [stderr] 31 | index = (constants::BITS as u64 * index )+local_index as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:40:14 [INFO] [stderr] | [INFO] [stderr] 40 | for _ in 1..lod.lod+1{ [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=lod.lod` [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: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:44:14 [INFO] [stderr] | [INFO] [stderr] 44 | for i in (1..lod.lod+1).rev(){ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `(1..=lod.lod)` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:45:27 [INFO] [stderr] | [INFO] [stderr] 45 | let rem = index % constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/location.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | index = index / constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `index /= constants::BITS as u64` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:46:25 [INFO] [stderr] | [INFO] [stderr] 46 | index = index / constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/location.rs:54:24 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn to_xyz(location:&Vec)->(u64, u64, u64){ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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 `location`. [INFO] [stderr] --> src/location.rs:57:14 [INFO] [stderr] | [INFO] [stderr] 57 | for i in 0..location.len(){ [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] 57 | for in &location{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:60:18 [INFO] [stderr] | [INFO] [stderr] 60 | index = (constants::BITS as u64 * index )+linear_index as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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 u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:60:51 [INFO] [stderr] | [INFO] [stderr] 60 | index = (constants::BITS as u64 * index )+linear_index as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(linear_index)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:72:14 [INFO] [stderr] | [INFO] [stderr] 72 | for _ in 1..lod.lod+1{ [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=lod.lod` [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: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:76:14 [INFO] [stderr] | [INFO] [stderr] 76 | for i in (1..lod.lod+1).rev(){ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `(1..=lod.lod)` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:77:27 [INFO] [stderr] | [INFO] [stderr] 77 | let rem = index % constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/location.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | index = index / constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `index /= constants::BITS as u64` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:78:25 [INFO] [stderr] | [INFO] [stderr] 78 | index = index / constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/location.rs:86:31 [INFO] [stderr] | [INFO] [stderr] 86 | pub fn to_xyz_morton(location:&Vec)->(u64, u64, u64){ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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 `location`. [INFO] [stderr] --> src/location.rs:89:14 [INFO] [stderr] | [INFO] [stderr] 89 | for i in 0..location.len(){ [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] 89 | for in &location{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:92:18 [INFO] [stderr] | [INFO] [stderr] 92 | index = (constants::BITS as u64 * index )+linear_index as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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 u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:92:51 [INFO] [stderr] | [INFO] [stderr] 92 | index = (constants::BITS as u64 * index )+linear_index as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(linear_index)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:101:14 [INFO] [stderr] | [INFO] [stderr] 101 | for _ in 1..lod.lod+1{ [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=lod.lod` [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: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:104:14 [INFO] [stderr] | [INFO] [stderr] 104 | for i in (1..lod.lod+1){ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `(1..=lod.lod)` [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: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:106:46 [INFO] [stderr] | [INFO] [stderr] 106 | let divisor = (nlod.volume as f64 / constants::BITS as f64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(constants::BITS)` [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: the variable `index` is used as a loop counter. Consider using `for (index, item) in morton.enumerate()` or similar iterators [INFO] [stderr] --> src/location.rs:124:14 [INFO] [stderr] | [INFO] [stderr] 124 | for i in morton{ [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:141:17 [INFO] [stderr] | [INFO] [stderr] 141 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:146:21 [INFO] [stderr] | [INFO] [stderr] 146 | let limit = lod.limit as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(lod.limit)` [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: the operation is ineffective. Consider reducing it to `3 * i` [INFO] [stderr] --> src/location.rs:160:33 [INFO] [stderr] | [INFO] [stderr] 160 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `(3 * i)` [INFO] [stderr] --> src/location.rs:160:48 [INFO] [stderr] | [INFO] [stderr] 160 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:195:17 [INFO] [stderr] | [INFO] [stderr] 195 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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: variable does not need to be mutable [INFO] [stderr] --> src/voxelizer.rs:308:9 [INFO] [stderr] | [INFO] [stderr] 308 | let mut normals = Voxtree::new(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:15:17 [INFO] [stderr] | [INFO] [stderr] 15 | let limit = required_lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(required_lod.limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:43:17 [INFO] [stderr] | [INFO] [stderr] 43 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:75:17 [INFO] [stderr] | [INFO] [stderr] 75 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:104:17 [INFO] [stderr] | [INFO] [stderr] 104 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/voxelizer.rs:132:40 [INFO] [stderr] | [INFO] [stderr] 132 | fn calculate_children_normals(children:&Vec>)->Normal{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[Voxtree]` [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 `children`. [INFO] [stderr] --> src/voxelizer.rs:134:14 [INFO] [stderr] | [INFO] [stderr] 134 | for i in 0..children.len(){ [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] 134 | for in &children{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:173:17 [INFO] [stderr] | [INFO] [stderr] 173 | let limit = lod.limit as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(lod.limit)` [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: the loop variable `j` is used to index `neighbors` [INFO] [stderr] --> src/voxelizer.rs:190:18 [INFO] [stderr] | [INFO] [stderr] 190 | for j in 0..neighbors.len(){ [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] 190 | for (j, ) in neighbors.iter().enumerate(){ [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is used to index `empty_neighbors` [INFO] [stderr] --> src/voxelizer.rs:225:18 [INFO] [stderr] | [INFO] [stderr] 225 | for j in 0..empty_neighbors.len(){ [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] 225 | for (j, ) in empty_neighbors.iter().enumerate(){ [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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/voxelizer.rs:258:24 [INFO] [stderr] | [INFO] [stderr] 258 | fn get_average(vectors:&Vec)->Vector{ [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Vector]` [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 `vectors`. [INFO] [stderr] --> src/voxelizer.rs:263:14 [INFO] [stderr] | [INFO] [stderr] 263 | for i in 0..len{ [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] 263 | for in vectors.iter().take(len){ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/binvox.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | let mut file = match File::open(&path) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:274:17 [INFO] [stderr] | [INFO] [stderr] 274 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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: the loop variable `i` is only used to index `neighbors`. [INFO] [stderr] --> src/voxelizer.rs:315:14 [INFO] [stderr] | [INFO] [stderr] 315 | for i in 0..neighbors.len(){ [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] 315 | for in &neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/binvox.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:331:17 [INFO] [stderr] | [INFO] [stderr] 331 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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: variable does not need to be mutable [INFO] [stderr] --> src/binvox.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/binvox.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:58:22 [INFO] [stderr] | [INFO] [stderr] 58 | let view_limit = view_lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(view_lod.limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:59:42 [INFO] [stderr] | [INFO] [stderr] 59 | let max_limit = cmp::max(view_limit, lod.limit as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/binvox.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/renderer.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | tx.send((start, end, line, durations)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/renderer.rs:109:45 [INFO] [stderr] | [INFO] [stderr] 109 | let (start, end, line, durations) = rx.recv().ok().expect("Could not recieve answer"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ok_expect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/renderer.rs:110:12 [INFO] [stderr] | [INFO] [stderr] 110 | if durations.len() > 0{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!durations.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `pixels`. [INFO] [stderr] --> src/renderer.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | for i in start..end{ [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] 116 | for in pixels.iter_mut().take(end).skip(start){ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the variable `cnt` is used as a loop counter. Consider using `for (cnt, item) in start..end.enumerate()` or similar iterators [INFO] [stderr] --> src/renderer.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | for i in start..end{ [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [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/renderer.rs:127:26 [INFO] [stderr] | [INFO] [stderr] 127 | fn get_average(durations:&Vec)->f64{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[f64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/renderer.rs:148:1 [INFO] [stderr] | [INFO] [stderr] 148 | / pub fn trace_pixel(lod:&LOD, view_lod:&LOD, model:&Model, screen:&Screen, camera:&Camera, x:i64, y:i64, max_distance:u64)->Option{ [INFO] [stderr] 149 | | let pixel_vector = screen.at_pixel(x, y); [INFO] [stderr] 150 | | let pixel_vector = pixel_vector.rotate_at_y(camera.roll); [INFO] [stderr] 151 | | let pixel_vector = pixel_vector.rotate_at_x(camera.pitch); [INFO] [stderr] ... | [INFO] [stderr] 158 | | color [INFO] [stderr] 159 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/renderer.rs:167:18 [INFO] [stderr] | [INFO] [stderr] 167 | let header = format!("P6\n# CREATOR: lee\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"P6\n# CREATOR: lee\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `header_bytes`. [INFO] [stderr] --> src/renderer.rs:177:14 [INFO] [stderr] | [INFO] [stderr] 177 | for i in 0..header_bytes.len(){ [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] 177 | for in &header_bytes{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `size_bytes`. [INFO] [stderr] --> src/renderer.rs:180:14 [INFO] [stderr] | [INFO] [stderr] 180 | for j in 0..size_bytes.len(){ [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] 180 | for in &size_bytes{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `p` is only used to index `pixels`. [INFO] [stderr] --> src/renderer.rs:184:14 [INFO] [stderr] | [INFO] [stderr] 184 | for p in 0..pixels.len() { [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] 184 | for in &pixels { [INFO] [stderr] | ^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/renderer.rs:189:5 [INFO] [stderr] | [INFO] [stderr] 189 | file.write_all(&buffer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/binvox.rs:170:9 [INFO] [stderr] | [INFO] [stderr] 170 | let mut line = match reader.read_line(&mut buff) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/screen.rs:48:43 [INFO] [stderr] | [INFO] [stderr] 48 | let lod = (self.width as f64).log(constants::BASE as f64).ceil() as u8;//ceil for best view, round() for better performace [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(constants::BASE)` [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/screen.rs:56:33 [INFO] [stderr] | [INFO] [stderr] 56 | let factor = distance / view_limit as f64 * (self.fov/2.0).tan();//factor will be used to subtract the lod [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(view_limit)` [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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/screen.rs:57:30 [INFO] [stderr] | [INFO] [stderr] 57 | let exp = factor.log(constants::BASE as f64).round(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(constants::BASE)` [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 u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/screen.rs:58:29 [INFO] [stderr] | [INFO] [stderr] 58 | let required_lod = (view_lod as i16 - exp as i16) as i8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i16::from(view_lod)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:40:21 [INFO] [stderr] | [INFO] [stderr] 40 | let limit = lod.limit as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(lod.limit)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:41:26 [INFO] [stderr] | [INFO] [stderr] 41 | let view_limit = view_lod.limit as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(view_lod.limit)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:23:22 [INFO] [stderr] | [INFO] [stderr] 23 | let view_limit = view_lod.limit as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(view_lod.limit)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:135:29 [INFO] [stderr] | [INFO] [stderr] 135 | let scale = obj_scale * lod.limit as f64/view_lod.limit as f64; //scale of object to LOD to view lod [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(lod.limit)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:135:46 [INFO] [stderr] | [INFO] [stderr] 135 | let scale = obj_scale * lod.limit as f64/view_lod.limit as f64; //scale of object to LOD to view lod [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(view_lod.limit)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/raytracer.rs:159:28 [INFO] [stderr] | [INFO] [stderr] 159 | fn clamp_location(location:&Vec, view_lod:&LOD)->Vec{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:170:20 [INFO] [stderr] | [INFO] [stderr] 170 | let red = ((color1.r as f32 + color2.r as f32 )/2.0).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f32::from(color1.r)` [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:170:38 [INFO] [stderr] | [INFO] [stderr] 170 | let red = ((color1.r as f32 + color2.r as f32 )/2.0).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f32::from(color2.r)` [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:171:20 [INFO] [stderr] | [INFO] [stderr] 171 | let green = ((color1.g as f32 + color2.g as f32 )/2.0).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f32::from(color1.g)` [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:171:38 [INFO] [stderr] | [INFO] [stderr] 171 | let green = ((color1.g as f32 + color2.g as f32 )/2.0).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f32::from(color2.g)` [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:172:20 [INFO] [stderr] | [INFO] [stderr] 172 | let blue = ((color1.b as f32 + color2.b as f32 )/2.0).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f32::from(color1.b)` [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:172:38 [INFO] [stderr] | [INFO] [stderr] 172 | let blue = ((color1.b as f32 + color2.b as f32 )/2.0).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f32::from(color2.b)` [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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:181:25 [INFO] [stderr] | [INFO] [stderr] 181 | let red = (255.0 * (color.r as f64 / 255.0).powf(gamma)).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(color.r)` [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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:182:27 [INFO] [stderr] | [INFO] [stderr] 182 | let green = (255.0 * (color.g as f64 / 255.0).powf(gamma)).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(color.g)` [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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:183:26 [INFO] [stderr] | [INFO] [stderr] 183 | let blue = (255.0 * (color.b as f64 / 255.0).powf(gamma)).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(color.b)` [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: useless use of `format!` [INFO] [stderr] --> src/binvox.rs:78:16 [INFO] [stderr] | [INFO] [stderr] 78 | return format!("{}",version); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `version.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/binvox.rs:226:9 [INFO] [stderr] | [INFO] [stderr] 226 | / let mut normals = Voxtree::new(); [INFO] [stderr] 227 | | if constants::PRECALCULATE_NORMALS{ [INFO] [stderr] 228 | | normals = voxelizer::calculate_normals(&root, &lod); [INFO] [stderr] 229 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let normals = if constants::PRECALCULATE_NORMALS { voxelizer::calculate_normals(&root, &lod) } else { Voxtree::new() };` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/binvox.rs:189:9 [INFO] [stderr] | [INFO] [stderr] 189 | reader.read_to_end(&mut buff); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/binvox.rs:195:37 [INFO] [stderr] | [INFO] [stderr] 195 | end_index = index + count as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(count)` [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 u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/binvox.rs:200:44 [INFO] [stderr] | [INFO] [stderr] 200 | if value > 0 {nr_voxels += count as u64;} [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(count)` [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: the variable `index` is used as a loop counter. Consider using `for (index, item) in &linear_voxels.enumerate()` or similar iterators [INFO] [stderr] --> src/binvox.rs:211:22 [INFO] [stderr] | [INFO] [stderr] 211 | for value in &linear_voxels{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/binvox.rs:212:36 [INFO] [stderr] | [INFO] [stderr] 212 | let new_percentage = ((index as f64 / linear_voxels.len() as f64) * 100.0).round() as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(index)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/neighbors.rs:12:77 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn get_neighbors (node:&Voxbit, lod:&LOD, point:&Point, neighbors_dir:&Vec)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Vector]` [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 `neighbors_dir`. [INFO] [stderr] --> src/neighbors.rs:15:14 [INFO] [stderr] | [INFO] [stderr] 15 | for i in 0..neighbors_dir.len(){ [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] 15 | for in &neighbors_dir{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^ [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/neighbors.rs:31:90 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn get_non_occluded_neighbors (node:&Voxbit, lod:&LOD, point:&Point, neighbors_dir:&Vec)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Vector]` [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 `neighbors_dir`. [INFO] [stderr] --> src/neighbors.rs:34:14 [INFO] [stderr] | [INFO] [stderr] 34 | for i in 0..neighbors_dir.len(){ [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] 34 | for in &neighbors_dir{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^ [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/neighbors.rs:52:83 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn get_empty_neighbors (node:&Voxbit, lod:&LOD, point:&Point, neighbors_dir:&Vec)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Vector]` [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 `neighbors_dir`. [INFO] [stderr] --> src/neighbors.rs:55:14 [INFO] [stderr] | [INFO] [stderr] 55 | for i in 0..neighbors_dir.len(){ [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] 55 | for in &neighbors_dir{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `face_neighbors`. [INFO] [stderr] --> src/neighbors.rs:348:14 [INFO] [stderr] | [INFO] [stderr] 348 | for i in 0..face_neighbors.len(){ [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] 348 | for in &face_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `edge_neighbors`. [INFO] [stderr] --> src/neighbors.rs:354:14 [INFO] [stderr] | [INFO] [stderr] 354 | for j in 0..edge_neighbors.len(){ [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] 354 | for in &edge_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `k` is only used to index `vertex_neighbors`. [INFO] [stderr] --> src/neighbors.rs:360:14 [INFO] [stderr] | [INFO] [stderr] 360 | for k in 0..vertex_neighbors.len(){ [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] 360 | for in &vertex_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/neighbors.rs:371:17 [INFO] [stderr] | [INFO] [stderr] 371 | let limit = lod.limit as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(lod.limit)` [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: the loop variable `i` is only used to index `face_neighbors`. [INFO] [stderr] --> src/neighbors.rs:381:14 [INFO] [stderr] | [INFO] [stderr] 381 | for i in 0..face_neighbors.len(){ [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] 381 | for in &face_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused comparison that must be used [INFO] [stderr] --> src/neighbors.rs:389:17 [INFO] [stderr] | [INFO] [stderr] 389 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/neighbors.rs:389:17 [INFO] [stderr] | [INFO] [stderr] 389 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::no_effect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/neighbors.rs:389:17 [INFO] [stderr] | [INFO] [stderr] 389 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(max_dot - dot).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/neighbors.rs:389:17 [INFO] [stderr] | [INFO] [stderr] 389 | max_dot == dot; [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: the loop variable `j` is only used to index `edge_neighbors`. [INFO] [stderr] --> src/neighbors.rs:395:14 [INFO] [stderr] | [INFO] [stderr] 395 | for j in 0..edge_neighbors.len(){ [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] 395 | for in &edge_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused comparison that must be used [INFO] [stderr] --> src/neighbors.rs:402:17 [INFO] [stderr] | [INFO] [stderr] 402 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/neighbors.rs:402:17 [INFO] [stderr] | [INFO] [stderr] 402 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/neighbors.rs:402:17 [INFO] [stderr] | [INFO] [stderr] 402 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(max_dot - dot).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/neighbors.rs:402:17 [INFO] [stderr] | [INFO] [stderr] 402 | max_dot == dot; [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: the loop variable `k` is only used to index `vertex_neighbors`. [INFO] [stderr] --> src/neighbors.rs:408:14 [INFO] [stderr] | [INFO] [stderr] 408 | for k in 0..vertex_neighbors.len(){ [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] 408 | for in &vertex_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused comparison that must be used [INFO] [stderr] --> src/neighbors.rs:415:17 [INFO] [stderr] | [INFO] [stderr] 415 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/neighbors.rs:415:17 [INFO] [stderr] | [INFO] [stderr] 415 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/neighbors.rs:415:17 [INFO] [stderr] | [INFO] [stderr] 415 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(max_dot - dot).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/neighbors.rs:415:17 [INFO] [stderr] | [INFO] [stderr] 415 | max_dot == dot; [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: the loop variable `i` is only used to index `empty_face_neighbors`. [INFO] [stderr] --> src/neighbors.rs:432:14 [INFO] [stderr] | [INFO] [stderr] 432 | for i in 0..empty_face_neighbors.len(){ [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] 432 | for in &empty_face_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/neighbors.rs:432:5 [INFO] [stderr] | [INFO] [stderr] 432 | / for i in 0..empty_face_neighbors.len(){ [INFO] [stderr] 433 | | return Some((&empty_face_neighbors[i]).clone()); [INFO] [stderr] 434 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `empty_edge_neighbors`. [INFO] [stderr] --> src/neighbors.rs:436:14 [INFO] [stderr] | [INFO] [stderr] 436 | for j in 0..empty_edge_neighbors.len(){ [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] 436 | for in &empty_edge_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/neighbors.rs:436:5 [INFO] [stderr] | [INFO] [stderr] 436 | / for j in 0..empty_edge_neighbors.len(){ [INFO] [stderr] 437 | | return Some((&empty_edge_neighbors[j]).clone()); [INFO] [stderr] 438 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: the loop variable `k` is only used to index `empty_vertex_neighbors`. [INFO] [stderr] --> src/neighbors.rs:440:14 [INFO] [stderr] | [INFO] [stderr] 440 | for k in 0..empty_vertex_neighbors.len(){ [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] 440 | for in &empty_vertex_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/neighbors.rs:440:5 [INFO] [stderr] | [INFO] [stderr] 440 | / for k in 0..empty_vertex_neighbors.len(){ [INFO] [stderr] 441 | | return Some((&empty_vertex_neighbors[k]).clone()); [INFO] [stderr] 442 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/neighbors.rs:452:17 [INFO] [stderr] | [INFO] [stderr] 452 | let limit = lod.limit as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(lod.limit)` [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: the loop variable `i` is only used to index `empty_face_neighbors`. [INFO] [stderr] --> src/neighbors.rs:459:14 [INFO] [stderr] | [INFO] [stderr] 459 | for i in 0..empty_face_neighbors.len(){ [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] 459 | for in &empty_face_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `empty_edge_neighbors`. [INFO] [stderr] --> src/neighbors.rs:467:14 [INFO] [stderr] | [INFO] [stderr] 467 | for j in 0..empty_edge_neighbors.len(){ [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] 467 | for in &empty_edge_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `k` is only used to index `empty_vertex_neighbors`. [INFO] [stderr] --> src/neighbors.rs:475:14 [INFO] [stderr] | [INFO] [stderr] 475 | for k in 0..empty_vertex_neighbors.len(){ [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] 475 | for in &empty_vertex_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:19:20 [INFO] [stderr] | [INFO] [stderr] 19 | let base = constants::BASE as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(constants::BASE)` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:20:30 [INFO] [stderr] | [INFO] [stderr] 20 | let limit = base.pow(lod as u32); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(lod)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:21:23 [INFO] [stderr] | [INFO] [stderr] 21 | let volume = limit as u64 * limit as u64 * limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:21:38 [INFO] [stderr] | [INFO] [stderr] 21 | let volume = limit as u64 * limit as u64 * limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:21:53 [INFO] [stderr] | [INFO] [stderr] 21 | let volume = limit as u64 * limit as u64 * limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(limit)` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:27:20 [INFO] [stderr] | [INFO] [stderr] 27 | let base = constants::BASE as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(constants::BASE)` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:28:30 [INFO] [stderr] | [INFO] [stderr] 28 | let limit = base.pow(lod as u32); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(lod)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:30:23 [INFO] [stderr] | [INFO] [stderr] 30 | let volume = limit as u64 * limit as u64 * limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:30:38 [INFO] [stderr] | [INFO] [stderr] 30 | let volume = limit as u64 * limit as u64 * limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:30:53 [INFO] [stderr] | [INFO] [stderr] 30 | let volume = limit as u64 * limit as u64 * limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(limit)` [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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:38:29 [INFO] [stderr] | [INFO] [stderr] 38 | let lod = limit.log(constants::BASE as f64) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(constants::BASE)` [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: field is never used: `center` [INFO] [stderr] --> src/shape.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | center:Point, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Prism` [INFO] [stderr] --> src/shape.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | struct Prism{ [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Cylinder` [INFO] [stderr] --> src/shape.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | struct Cylinder{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `linear_to_morton_64` [INFO] [stderr] --> src/location.rs:134:1 [INFO] [stderr] | [INFO] [stderr] 134 | fn linear_to_morton_64(linear:u64)->u8{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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/voxel/vox.rs:11:33 [INFO] [stderr] | [INFO] [stderr] 11 | fn get_tree(&self, location:&Vec)->&Self{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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: function is never used: `clamp_location` [INFO] [stderr] --> src/raytracer.rs:159:1 [INFO] [stderr] | [INFO] [stderr] 159 | fn clamp_location(location:&Vec, view_lod:&LOD)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `gamma_correction` [INFO] [stderr] --> src/raytracer.rs:179:1 [INFO] [stderr] | [INFO] [stderr] 179 | fn gamma_correction(color:Color)->Color{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `version` [INFO] [stderr] --> src/binvox.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | version:String, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `dim` [INFO] [stderr] --> src/binvox.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | dim:Point, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `translate` [INFO] [stderr] --> src/binvox.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | translate:Vector, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `scale` [INFO] [stderr] --> src/binvox.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | scale:f64 [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `lod` [INFO] [stderr] --> src/voxel/voxgrid.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | lod:LOD, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `bitset` [INFO] [stderr] --> src/voxel/voxgrid.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | bitset:Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `location`. [INFO] [stderr] --> src/voxel/vox.rs:15:18 [INFO] [stderr] | [INFO] [stderr] 15 | for i in 0..last{ [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] warning: field is never used: `content` [INFO] [stderr] --> src/voxel/voxgrid.rs:11:5 [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] 11 | content:Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 15 | for in location.iter().take(last){ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/voxel/voxgrid.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | fn new(lod:&LOD)->Self{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get` [INFO] [stderr] --> src/voxel/voxgrid.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | fn get(&self, x:u64, y:u64, z:u64)->&T{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_tree` [INFO] [stderr] --> src/voxel/voxstream.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | fn get_tree(&self, location:&Vec)->&Self{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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/voxel/vox.rs:65:45 [INFO] [stderr] | [INFO] [stderr] 65 | fn is_location_occupied(&self, location:&Vec)->(usize, bool){ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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 used to index `location` [INFO] [stderr] --> src/voxel/vox.rs:69:18 [INFO] [stderr] | [INFO] [stderr] 69 | for i in 0..location.len(){ [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] 69 | for (i, ) in location.iter().enumerate(){ [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/voxel/vox.rs:106:15 [INFO] [stderr] | [INFO] [stderr] 106 | while stack.len() > 0{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!stack.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `voxel::voxstream::Voxstream` [INFO] [stderr] --> src/voxel/voxstream.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | / pub fn new()->Self{ [INFO] [stderr] 15 | | Voxstream{bitset:Vec::new(), content:Vec::new()} [INFO] [stderr] 16 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 7 | #[derive(Default)] [INFO] [stderr] | [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/voxel/voxstream.rs:19:33 [INFO] [stderr] | [INFO] [stderr] 19 | fn get_tree(&self, location:&Vec)->&Self{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/voxel/voxstream.rs:61:40 [INFO] [stderr] | [INFO] [stderr] 61 | pub fn get_content(&self, location:&Vec)->&T{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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: you should consider deriving a `Default` implementation for `voxel::voxbit::Voxbit` [INFO] [stderr] --> src/voxel/voxbit.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | / pub fn new()->Self{ [INFO] [stderr] 16 | | Voxbit{bitset:0u64, children:Vec::new()} [INFO] [stderr] 17 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 8 | #[derive(Default)] [INFO] [stderr] | [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/voxel/voxbit.rs:19:45 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn set_location(&mut self, location:&Vec){ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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 `location`. [INFO] [stderr] --> src/voxel/voxbit.rs:22:18 [INFO] [stderr] | [INFO] [stderr] 22 | for i in 0..location.len() { [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] 22 | for in &location { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/voxel/voxbit.rs:62:9 [INFO] [stderr] | [INFO] [stderr] 62 | self.bitset = self.bitset | location; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.bitset |= location` [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] error: calls to `std::mem::drop` with a reference instead of an owned value. Dropping a reference does nothing. [INFO] [stderr] --> src/voxel/voxbit.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | drop(self); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::drop_ref)] on by default [INFO] [stderr] note: argument has type &mut voxel::voxbit::Voxbit [INFO] [stderr] --> src/voxel/voxbit.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | drop(self); [INFO] [stderr] | ^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_ref [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/normal.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 35 | let x = self.x as f64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.x)` [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 i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/normal.rs:36:17 [INFO] [stderr] | [INFO] [stderr] 36 | let y = self.y as f64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.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: you should consider deriving a `Default` implementation for `voxel::voxtree::Voxtree` [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/normal.rs:37:17 [INFO] [stderr] | [INFO] [stderr] --> src/voxel/voxtree.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 37 | let z = self.z as f64; [INFO] [stderr] 13 | / pub fn new()->Self{ [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(self.z)` [INFO] [stderr] 14 | | Voxtree{bitset:0u64, content: None, children:Vec::new()} [INFO] [stderr] 15 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 5 | #[derive(Default)] [INFO] [stderr] | [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/voxel/voxtree.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn get_content(&self, location:&Vec)->&Option{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/voxel/voxtree.rs:27:44 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn set_content(&mut self, location:&Vec, content:&mut Option){ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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 `location`. [INFO] [stderr] --> src/voxel/voxtree.rs:30:18 [INFO] [stderr] | [INFO] [stderr] 30 | for i in 0..location.len() { [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] 30 | for in &location { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/voxel/voxtree.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | self.bitset = self.bitset | location; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.bitset |= location` [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/voxel/voxtree.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | self.bitset = self.bitset | location; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.bitset |= location` [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] error: calls to `std::mem::drop` with a reference instead of an owned value. Dropping a reference does nothing. [INFO] [stderr] --> src/voxel/voxtree.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | drop(self); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: argument has type &mut voxel::voxtree::Voxtree [INFO] [stderr] --> src/voxel/voxtree.rs:84:14 [INFO] [stderr] | [INFO] [stderr] 84 | drop(self); [INFO] [stderr] | ^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_ref [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `3 * i` [INFO] [stderr] --> src/morton.rs:10:33 [INFO] [stderr] | [INFO] [stderr] 10 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `(3 * i)` [INFO] [stderr] --> src/morton.rs:10:48 [INFO] [stderr] | [INFO] [stderr] 10 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:12:14 [INFO] [stderr] | [INFO] [stderr] 12 | for _ in 1..lod.lod+1{ [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=lod.lod` [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/location.rs:15:14 [INFO] [stderr] | [INFO] [stderr] 15 | for i in (1..lod.lod+1).rev(){ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `(1..=lod.lod)` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:16:27 [INFO] [stderr] | [INFO] [stderr] 16 | let rem = index % constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/location.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | index = index / constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `index /= constants::BITS as u64` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:18:25 [INFO] [stderr] | [INFO] [stderr] 18 | index = index / constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/location.rs:26:29 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn to_xyz_orig(location:&Vec)->(u64, u64, u64){ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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: the loop variable `i` is only used to index `location`. [INFO] [stderr] --> src/location.rs:29:14 [INFO] [stderr] | [INFO] [stderr] 29 | for i in 0..location.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] 29 | for in &location{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:31:18 [INFO] [stderr] | [INFO] [stderr] 31 | index = (constants::BITS as u64 * index )+local_index as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:40:14 [INFO] [stderr] | [INFO] [stderr] 40 | for _ in 1..lod.lod+1{ [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=lod.lod` [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: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:44:14 [INFO] [stderr] | [INFO] [stderr] 44 | for i in (1..lod.lod+1).rev(){ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `(1..=lod.lod)` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:45:27 [INFO] [stderr] | [INFO] [stderr] 45 | let rem = index % constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/location.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | index = index / constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `index /= constants::BITS as u64` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:46:25 [INFO] [stderr] | [INFO] [stderr] 46 | index = index / constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/location.rs:54:24 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn to_xyz(location:&Vec)->(u64, u64, u64){ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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 `location`. [INFO] [stderr] --> src/location.rs:57:14 [INFO] [stderr] | [INFO] [stderr] 57 | for i in 0..location.len(){ [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] 57 | for in &location{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:60:18 [INFO] [stderr] | [INFO] [stderr] 60 | index = (constants::BITS as u64 * index )+linear_index as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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 u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:60:51 [INFO] [stderr] | [INFO] [stderr] 60 | index = (constants::BITS as u64 * index )+linear_index as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(linear_index)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:72:14 [INFO] [stderr] | [INFO] [stderr] 72 | for _ in 1..lod.lod+1{ [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=lod.lod` [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: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:76:14 [INFO] [stderr] | [INFO] [stderr] 76 | for i in (1..lod.lod+1).rev(){ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `(1..=lod.lod)` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:77:27 [INFO] [stderr] | [INFO] [stderr] 77 | let rem = index % constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/location.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | index = index / constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `index /= constants::BITS as u64` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:78:25 [INFO] [stderr] | [INFO] [stderr] 78 | index = index / constants::BITS as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/location.rs:86:31 [INFO] [stderr] | [INFO] [stderr] 86 | pub fn to_xyz_morton(location:&Vec)->(u64, u64, u64){ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [INFO] [stderr] | [INFO] [stderr] error: aborting due to 8 previous errors [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `location`. [INFO] [stderr] --> src/location.rs:89:14 [INFO] [stderr] | [INFO] [stderr] 89 | for i in 0..location.len(){ [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] 89 | for in &location{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:92:18 [INFO] [stderr] | [INFO] [stderr] 92 | index = (constants::BITS as u64 * index )+linear_index as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(constants::BITS)` [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 u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:92:51 [INFO] [stderr] | [INFO] [stderr] 92 | index = (constants::BITS as u64 * index )+linear_index as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(linear_index)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:101:14 [INFO] [stderr] | [INFO] [stderr] 101 | for _ in 1..lod.lod+1{ [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=lod.lod` [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: an inclusive range would be more readable [INFO] [stderr] --> src/location.rs:104:14 [INFO] [stderr] | [INFO] [stderr] 104 | for i in (1..lod.lod+1){ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `(1..=lod.lod)` [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: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:106:46 [INFO] [stderr] | [INFO] [stderr] 106 | let divisor = (nlod.volume as f64 / constants::BITS as f64) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(constants::BITS)` [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: the variable `index` is used as a loop counter. Consider using `for (index, item) in morton.enumerate()` or similar iterators [INFO] [stderr] --> src/location.rs:124:14 [INFO] [stderr] | [INFO] [stderr] 124 | for i in morton{ [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:141:17 [INFO] [stderr] | [INFO] [stderr] 141 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:146:21 [INFO] [stderr] | [INFO] [stderr] 146 | let limit = lod.limit as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(lod.limit)` [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: the operation is ineffective. Consider reducing it to `3 * i` [INFO] [stderr] --> src/location.rs:160:33 [INFO] [stderr] | [INFO] [stderr] 160 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `(3 * i)` [INFO] [stderr] --> src/location.rs:160:48 [INFO] [stderr] | [INFO] [stderr] 160 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:195:17 [INFO] [stderr] | [INFO] [stderr] 195 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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] error: Could not compile `balisong`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:211:47 [INFO] [stderr] | [INFO] [stderr] 211 | let loc = from_xyz_orig(&lod, x as u64, y as u64, z as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:211:57 [INFO] [stderr] | [INFO] [stderr] 211 | let loc = from_xyz_orig(&lod, x as u64, y as u64, z as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:211:67 [INFO] [stderr] | [INFO] [stderr] 211 | let loc = from_xyz_orig(&lod, x as u64, y as u64, z as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(z)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:214:29 [INFO] [stderr] | [INFO] [stderr] 214 | assert_eq!((x as u64, y as u64, z as u64), (x1, y1, z1)); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:214:39 [INFO] [stderr] | [INFO] [stderr] 214 | assert_eq!((x as u64, y as u64, z as u64), (x1, y1, z1)); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:214:49 [INFO] [stderr] | [INFO] [stderr] 214 | assert_eq!((x as u64, y as u64, z as u64), (x1, y1, z1)); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(z)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:227:42 [INFO] [stderr] | [INFO] [stderr] 227 | let loc = from_xyz(&lod, x as u64, y as u64, z as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:227:52 [INFO] [stderr] | [INFO] [stderr] 227 | let loc = from_xyz(&lod, x as u64, y as u64, z as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:227:62 [INFO] [stderr] | [INFO] [stderr] 227 | let loc = from_xyz(&lod, x as u64, y as u64, z as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(z)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:230:29 [INFO] [stderr] | [INFO] [stderr] 230 | assert_eq!((x as u64, y as u64, z as u64), (x1, y1, z1)); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:230:39 [INFO] [stderr] | [INFO] [stderr] 230 | assert_eq!((x as u64, y as u64, z as u64), (x1, y1, z1)); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:230:49 [INFO] [stderr] | [INFO] [stderr] 230 | assert_eq!((x as u64, y as u64, z as u64), (x1, y1, z1)); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(z)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:244:49 [INFO] [stderr] | [INFO] [stderr] 244 | let loc = from_xyz_morton(&lod, x as u64, y as u64, z as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:244:59 [INFO] [stderr] | [INFO] [stderr] 244 | let loc = from_xyz_morton(&lod, x as u64, y as u64, z as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:244:69 [INFO] [stderr] | [INFO] [stderr] 244 | let loc = from_xyz_morton(&lod, x as u64, y as u64, z as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(z)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:247:29 [INFO] [stderr] | [INFO] [stderr] 247 | assert_eq!((x as u64, y as u64, z as u64), (x1, y1, z1)); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:247:39 [INFO] [stderr] | [INFO] [stderr] 247 | assert_eq!((x as u64, y as u64, z as u64), (x1, y1, z1)); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:247:49 [INFO] [stderr] | [INFO] [stderr] 247 | assert_eq!((x as u64, y as u64, z as u64), (x1, y1, z1)); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(z)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:259:48 [INFO] [stderr] | [INFO] [stderr] 259 | let index = xyz_to_index(&lod, x as u64, y as u64, z as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:259:58 [INFO] [stderr] | [INFO] [stderr] 259 | let index = xyz_to_index(&lod, x as u64, y as u64, z as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:259:68 [INFO] [stderr] | [INFO] [stderr] 259 | let index = xyz_to_index(&lod, x as u64, y as u64, z as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(z)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:262:29 [INFO] [stderr] | [INFO] [stderr] 262 | assert_eq!((x as u64, y as u64, z as u64), (x1, y1, z1)); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:262:39 [INFO] [stderr] | [INFO] [stderr] 262 | assert_eq!((x as u64, y as u64, z as u64), (x1, y1, z1)); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:262:49 [INFO] [stderr] | [INFO] [stderr] 262 | assert_eq!((x as u64, y as u64, z as u64), (x1, y1, z1)); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(z)` [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 u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:271:36 [INFO] [stderr] | [INFO] [stderr] 271 | let m = linear_to_morton_8(i as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::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 u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/location.rs:272:36 [INFO] [stderr] | [INFO] [stderr] 272 | let l = morton_to_linear_8(m as u64); [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(m)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:15:17 [INFO] [stderr] | [INFO] [stderr] 15 | let limit = required_lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(required_lod.limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:43:17 [INFO] [stderr] | [INFO] [stderr] 43 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:75:17 [INFO] [stderr] | [INFO] [stderr] 75 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:104:17 [INFO] [stderr] | [INFO] [stderr] 104 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/voxelizer.rs:132:40 [INFO] [stderr] | [INFO] [stderr] 132 | fn calculate_children_normals(children:&Vec>)->Normal{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[Voxtree]` [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 `children`. [INFO] [stderr] --> src/voxelizer.rs:134:14 [INFO] [stderr] | [INFO] [stderr] 134 | for i in 0..children.len(){ [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] 134 | for in &children{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:173:17 [INFO] [stderr] | [INFO] [stderr] 173 | let limit = lod.limit as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(lod.limit)` [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: the loop variable `j` is used to index `neighbors` [INFO] [stderr] --> src/voxelizer.rs:190:18 [INFO] [stderr] | [INFO] [stderr] 190 | for j in 0..neighbors.len(){ [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] 190 | for (j, ) in neighbors.iter().enumerate(){ [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is used to index `empty_neighbors` [INFO] [stderr] --> src/voxelizer.rs:225:18 [INFO] [stderr] | [INFO] [stderr] 225 | for j in 0..empty_neighbors.len(){ [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] 225 | for (j, ) in empty_neighbors.iter().enumerate(){ [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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/voxelizer.rs:258:24 [INFO] [stderr] | [INFO] [stderr] 258 | fn get_average(vectors:&Vec)->Vector{ [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Vector]` [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 `vectors`. [INFO] [stderr] --> src/voxelizer.rs:263:14 [INFO] [stderr] | [INFO] [stderr] 263 | for i in 0..len{ [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] 263 | for in vectors.iter().take(len){ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:274:17 [INFO] [stderr] | [INFO] [stderr] 274 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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: the loop variable `i` is only used to index `neighbors`. [INFO] [stderr] --> src/voxelizer.rs:315:14 [INFO] [stderr] | [INFO] [stderr] 315 | for i in 0..neighbors.len(){ [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] 315 | for in &neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/voxelizer.rs:331:17 [INFO] [stderr] | [INFO] [stderr] 331 | let limit = lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:58:22 [INFO] [stderr] | [INFO] [stderr] 58 | let view_limit = view_lod.limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(view_lod.limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/renderer.rs:59:42 [INFO] [stderr] | [INFO] [stderr] 59 | let max_limit = cmp::max(view_limit, lod.limit as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(lod.limit)` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/renderer.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | tx.send((start, end, line, durations)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/renderer.rs:109:45 [INFO] [stderr] | [INFO] [stderr] 109 | let (start, end, line, durations) = rx.recv().ok().expect("Could not recieve answer"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ok_expect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/renderer.rs:110:12 [INFO] [stderr] | [INFO] [stderr] 110 | if durations.len() > 0{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!durations.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `pixels`. [INFO] [stderr] --> src/renderer.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | for i in start..end{ [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] 116 | for in pixels.iter_mut().take(end).skip(start){ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the variable `cnt` is used as a loop counter. Consider using `for (cnt, item) in start..end.enumerate()` or similar iterators [INFO] [stderr] --> src/renderer.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | for i in start..end{ [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [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/renderer.rs:127:26 [INFO] [stderr] | [INFO] [stderr] 127 | fn get_average(durations:&Vec)->f64{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[f64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/renderer.rs:148:1 [INFO] [stderr] | [INFO] [stderr] 148 | / pub fn trace_pixel(lod:&LOD, view_lod:&LOD, model:&Model, screen:&Screen, camera:&Camera, x:i64, y:i64, max_distance:u64)->Option{ [INFO] [stderr] 149 | | let pixel_vector = screen.at_pixel(x, y); [INFO] [stderr] 150 | | let pixel_vector = pixel_vector.rotate_at_y(camera.roll); [INFO] [stderr] 151 | | let pixel_vector = pixel_vector.rotate_at_x(camera.pitch); [INFO] [stderr] ... | [INFO] [stderr] 158 | | color [INFO] [stderr] 159 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/renderer.rs:167:18 [INFO] [stderr] | [INFO] [stderr] 167 | let header = format!("P6\n# CREATOR: lee\n"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"P6\n# CREATOR: lee\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `header_bytes`. [INFO] [stderr] --> src/renderer.rs:177:14 [INFO] [stderr] | [INFO] [stderr] 177 | for i in 0..header_bytes.len(){ [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] 177 | for in &header_bytes{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `size_bytes`. [INFO] [stderr] --> src/renderer.rs:180:14 [INFO] [stderr] | [INFO] [stderr] 180 | for j in 0..size_bytes.len(){ [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] 180 | for in &size_bytes{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `p` is only used to index `pixels`. [INFO] [stderr] --> src/renderer.rs:184:14 [INFO] [stderr] | [INFO] [stderr] 184 | for p in 0..pixels.len() { [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] 184 | for in &pixels { [INFO] [stderr] | ^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/renderer.rs:189:5 [INFO] [stderr] | [INFO] [stderr] 189 | file.write_all(&buffer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/screen.rs:48:43 [INFO] [stderr] | [INFO] [stderr] 48 | let lod = (self.width as f64).log(constants::BASE as f64).ceil() as u8;//ceil for best view, round() for better performace [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(constants::BASE)` [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/screen.rs:56:33 [INFO] [stderr] | [INFO] [stderr] 56 | let factor = distance / view_limit as f64 * (self.fov/2.0).tan();//factor will be used to subtract the lod [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(view_limit)` [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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/screen.rs:57:30 [INFO] [stderr] | [INFO] [stderr] 57 | let exp = factor.log(constants::BASE as f64).round(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(constants::BASE)` [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 u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/screen.rs:58:29 [INFO] [stderr] | [INFO] [stderr] 58 | let required_lod = (view_lod as i16 - exp as i16) as i8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i16::from(view_lod)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:40:21 [INFO] [stderr] | [INFO] [stderr] 40 | let limit = lod.limit as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(lod.limit)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:41:26 [INFO] [stderr] | [INFO] [stderr] 41 | let view_limit = view_lod.limit as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(view_lod.limit)` [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 u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:23:22 [INFO] [stderr] | [INFO] [stderr] 23 | let view_limit = view_lod.limit as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(view_lod.limit)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:135:29 [INFO] [stderr] | [INFO] [stderr] 135 | let scale = obj_scale * lod.limit as f64/view_lod.limit as f64; //scale of object to LOD to view lod [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(lod.limit)` [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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:135:46 [INFO] [stderr] | [INFO] [stderr] 135 | let scale = obj_scale * lod.limit as f64/view_lod.limit as f64; //scale of object to LOD to view lod [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(view_lod.limit)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/raytracer.rs:159:28 [INFO] [stderr] | [INFO] [stderr] 159 | fn clamp_location(location:&Vec, view_lod:&LOD)->Vec{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:170:20 [INFO] [stderr] | [INFO] [stderr] 170 | let red = ((color1.r as f32 + color2.r as f32 )/2.0).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f32::from(color1.r)` [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:170:38 [INFO] [stderr] | [INFO] [stderr] 170 | let red = ((color1.r as f32 + color2.r as f32 )/2.0).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f32::from(color2.r)` [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:171:20 [INFO] [stderr] | [INFO] [stderr] 171 | let green = ((color1.g as f32 + color2.g as f32 )/2.0).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f32::from(color1.g)` [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:171:38 [INFO] [stderr] | [INFO] [stderr] 171 | let green = ((color1.g as f32 + color2.g as f32 )/2.0).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f32::from(color2.g)` [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:172:20 [INFO] [stderr] | [INFO] [stderr] 172 | let blue = ((color1.b as f32 + color2.b as f32 )/2.0).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f32::from(color1.b)` [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:172:38 [INFO] [stderr] | [INFO] [stderr] 172 | let blue = ((color1.b as f32 + color2.b as f32 )/2.0).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f32::from(color2.b)` [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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:181:25 [INFO] [stderr] | [INFO] [stderr] 181 | let red = (255.0 * (color.r as f64 / 255.0).powf(gamma)).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(color.r)` [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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:182:27 [INFO] [stderr] | [INFO] [stderr] 182 | let green = (255.0 * (color.g as f64 / 255.0).powf(gamma)).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(color.g)` [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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/raytracer.rs:183:26 [INFO] [stderr] | [INFO] [stderr] 183 | let blue = (255.0 * (color.b as f64 / 255.0).powf(gamma)).round() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(color.b)` [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: useless use of `format!` [INFO] [stderr] --> src/binvox.rs:78:16 [INFO] [stderr] | [INFO] [stderr] 78 | return format!("{}",version); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `version.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/binvox.rs:226:9 [INFO] [stderr] | [INFO] [stderr] 226 | / let mut normals = Voxtree::new(); [INFO] [stderr] 227 | | if constants::PRECALCULATE_NORMALS{ [INFO] [stderr] 228 | | normals = voxelizer::calculate_normals(&root, &lod); [INFO] [stderr] 229 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let normals = if constants::PRECALCULATE_NORMALS { voxelizer::calculate_normals(&root, &lod) } else { Voxtree::new() };` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/binvox.rs:189:9 [INFO] [stderr] | [INFO] [stderr] 189 | reader.read_to_end(&mut buff); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/binvox.rs:195:37 [INFO] [stderr] | [INFO] [stderr] 195 | end_index = index + count as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(count)` [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 u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/binvox.rs:200:44 [INFO] [stderr] | [INFO] [stderr] 200 | if value > 0 {nr_voxels += count as u64;} [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(count)` [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: the variable `index` is used as a loop counter. Consider using `for (index, item) in &linear_voxels.enumerate()` or similar iterators [INFO] [stderr] --> src/binvox.rs:211:22 [INFO] [stderr] | [INFO] [stderr] 211 | for value in &linear_voxels{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/binvox.rs:212:36 [INFO] [stderr] | [INFO] [stderr] 212 | let new_percentage = ((index as f64 / linear_voxels.len() as f64) * 100.0).round() as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(index)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/neighbors.rs:12:77 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn get_neighbors (node:&Voxbit, lod:&LOD, point:&Point, neighbors_dir:&Vec)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Vector]` [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 `neighbors_dir`. [INFO] [stderr] --> src/neighbors.rs:15:14 [INFO] [stderr] | [INFO] [stderr] 15 | for i in 0..neighbors_dir.len(){ [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] 15 | for in &neighbors_dir{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^ [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/neighbors.rs:31:90 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn get_non_occluded_neighbors (node:&Voxbit, lod:&LOD, point:&Point, neighbors_dir:&Vec)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Vector]` [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 `neighbors_dir`. [INFO] [stderr] --> src/neighbors.rs:34:14 [INFO] [stderr] | [INFO] [stderr] 34 | for i in 0..neighbors_dir.len(){ [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] 34 | for in &neighbors_dir{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^ [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/neighbors.rs:52:83 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn get_empty_neighbors (node:&Voxbit, lod:&LOD, point:&Point, neighbors_dir:&Vec)->Vec{ [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Vector]` [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 `neighbors_dir`. [INFO] [stderr] --> src/neighbors.rs:55:14 [INFO] [stderr] | [INFO] [stderr] 55 | for i in 0..neighbors_dir.len(){ [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] 55 | for in &neighbors_dir{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `face_neighbors`. [INFO] [stderr] --> src/neighbors.rs:348:14 [INFO] [stderr] | [INFO] [stderr] 348 | for i in 0..face_neighbors.len(){ [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] 348 | for in &face_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `edge_neighbors`. [INFO] [stderr] --> src/neighbors.rs:354:14 [INFO] [stderr] | [INFO] [stderr] 354 | for j in 0..edge_neighbors.len(){ [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] 354 | for in &edge_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `k` is only used to index `vertex_neighbors`. [INFO] [stderr] --> src/neighbors.rs:360:14 [INFO] [stderr] | [INFO] [stderr] 360 | for k in 0..vertex_neighbors.len(){ [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] 360 | for in &vertex_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/neighbors.rs:371:17 [INFO] [stderr] | [INFO] [stderr] 371 | let limit = lod.limit as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(lod.limit)` [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: the loop variable `i` is only used to index `face_neighbors`. [INFO] [stderr] --> src/neighbors.rs:381:14 [INFO] [stderr] | [INFO] [stderr] 381 | for i in 0..face_neighbors.len(){ [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] 381 | for in &face_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused comparison that must be used [INFO] [stderr] --> src/neighbors.rs:389:17 [INFO] [stderr] | [INFO] [stderr] 389 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/neighbors.rs:389:17 [INFO] [stderr] | [INFO] [stderr] 389 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::no_effect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/neighbors.rs:389:17 [INFO] [stderr] | [INFO] [stderr] 389 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(max_dot - dot).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/neighbors.rs:389:17 [INFO] [stderr] | [INFO] [stderr] 389 | max_dot == dot; [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: the loop variable `j` is only used to index `edge_neighbors`. [INFO] [stderr] --> src/neighbors.rs:395:14 [INFO] [stderr] | [INFO] [stderr] 395 | for j in 0..edge_neighbors.len(){ [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] 395 | for in &edge_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused comparison that must be used [INFO] [stderr] --> src/neighbors.rs:402:17 [INFO] [stderr] | [INFO] [stderr] 402 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/neighbors.rs:402:17 [INFO] [stderr] | [INFO] [stderr] 402 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/neighbors.rs:402:17 [INFO] [stderr] | [INFO] [stderr] 402 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(max_dot - dot).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/neighbors.rs:402:17 [INFO] [stderr] | [INFO] [stderr] 402 | max_dot == dot; [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: the loop variable `k` is only used to index `vertex_neighbors`. [INFO] [stderr] --> src/neighbors.rs:408:14 [INFO] [stderr] | [INFO] [stderr] 408 | for k in 0..vertex_neighbors.len(){ [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] 408 | for in &vertex_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused comparison that must be used [INFO] [stderr] --> src/neighbors.rs:415:17 [INFO] [stderr] | [INFO] [stderr] 415 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> src/neighbors.rs:415:17 [INFO] [stderr] | [INFO] [stderr] 415 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/neighbors.rs:415:17 [INFO] [stderr] | [INFO] [stderr] 415 | max_dot == dot; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(max_dot - dot).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/neighbors.rs:415:17 [INFO] [stderr] | [INFO] [stderr] 415 | max_dot == dot; [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: the loop variable `i` is only used to index `empty_face_neighbors`. [INFO] [stderr] --> src/neighbors.rs:432:14 [INFO] [stderr] | [INFO] [stderr] 432 | for i in 0..empty_face_neighbors.len(){ [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] 432 | for in &empty_face_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/neighbors.rs:432:5 [INFO] [stderr] | [INFO] [stderr] 432 | / for i in 0..empty_face_neighbors.len(){ [INFO] [stderr] 433 | | return Some((&empty_face_neighbors[i]).clone()); [INFO] [stderr] 434 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `empty_edge_neighbors`. [INFO] [stderr] --> src/neighbors.rs:436:14 [INFO] [stderr] | [INFO] [stderr] 436 | for j in 0..empty_edge_neighbors.len(){ [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] 436 | for in &empty_edge_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/neighbors.rs:436:5 [INFO] [stderr] | [INFO] [stderr] 436 | / for j in 0..empty_edge_neighbors.len(){ [INFO] [stderr] 437 | | return Some((&empty_edge_neighbors[j]).clone()); [INFO] [stderr] 438 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: the loop variable `k` is only used to index `empty_vertex_neighbors`. [INFO] [stderr] --> src/neighbors.rs:440:14 [INFO] [stderr] | [INFO] [stderr] 440 | for k in 0..empty_vertex_neighbors.len(){ [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] 440 | for in &empty_vertex_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/neighbors.rs:440:5 [INFO] [stderr] | [INFO] [stderr] 440 | / for k in 0..empty_vertex_neighbors.len(){ [INFO] [stderr] 441 | | return Some((&empty_vertex_neighbors[k]).clone()); [INFO] [stderr] 442 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/neighbors.rs:452:17 [INFO] [stderr] | [INFO] [stderr] 452 | let limit = lod.limit as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(lod.limit)` [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: the loop variable `i` is only used to index `empty_face_neighbors`. [INFO] [stderr] --> src/neighbors.rs:459:14 [INFO] [stderr] | [INFO] [stderr] 459 | for i in 0..empty_face_neighbors.len(){ [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] 459 | for in &empty_face_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `empty_edge_neighbors`. [INFO] [stderr] --> src/neighbors.rs:467:14 [INFO] [stderr] | [INFO] [stderr] 467 | for j in 0..empty_edge_neighbors.len(){ [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] 467 | for in &empty_edge_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `k` is only used to index `empty_vertex_neighbors`. [INFO] [stderr] --> src/neighbors.rs:475:14 [INFO] [stderr] | [INFO] [stderr] 475 | for k in 0..empty_vertex_neighbors.len(){ [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] 475 | for in &empty_vertex_neighbors{ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:19:20 [INFO] [stderr] | [INFO] [stderr] 19 | let base = constants::BASE as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(constants::BASE)` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:20:30 [INFO] [stderr] | [INFO] [stderr] 20 | let limit = base.pow(lod as u32); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(lod)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:21:23 [INFO] [stderr] | [INFO] [stderr] 21 | let volume = limit as u64 * limit as u64 * limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:21:38 [INFO] [stderr] | [INFO] [stderr] 21 | let volume = limit as u64 * limit as u64 * limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:21:53 [INFO] [stderr] | [INFO] [stderr] 21 | let volume = limit as u64 * limit as u64 * limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(limit)` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:27:20 [INFO] [stderr] | [INFO] [stderr] 27 | let base = constants::BASE as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(constants::BASE)` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:28:30 [INFO] [stderr] | [INFO] [stderr] 28 | let limit = base.pow(lod as u32); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(lod)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:30:23 [INFO] [stderr] | [INFO] [stderr] 30 | let volume = limit as u64 * limit as u64 * limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:30:38 [INFO] [stderr] | [INFO] [stderr] 30 | let volume = limit as u64 * limit as u64 * limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(limit)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:30:53 [INFO] [stderr] | [INFO] [stderr] 30 | let volume = limit as u64 * limit as u64 * limit as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(limit)` [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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lod.rs:38:29 [INFO] [stderr] | [INFO] [stderr] 38 | let lod = limit.log(constants::BASE as f64) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(constants::BASE)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/voxel/vox.rs:11:33 [INFO] [stderr] | [INFO] [stderr] 11 | fn get_tree(&self, location:&Vec)->&Self{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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 `location`. [INFO] [stderr] --> src/voxel/vox.rs:15:18 [INFO] [stderr] | [INFO] [stderr] 15 | for i in 0..last{ [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] 15 | for in location.iter().take(last){ [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [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/voxel/vox.rs:65:45 [INFO] [stderr] | [INFO] [stderr] 65 | fn is_location_occupied(&self, location:&Vec)->(usize, bool){ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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 used to index `location` [INFO] [stderr] --> src/voxel/vox.rs:69:18 [INFO] [stderr] | [INFO] [stderr] 69 | for i in 0..location.len(){ [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] 69 | for (i, ) in location.iter().enumerate(){ [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/voxel/vox.rs:106:15 [INFO] [stderr] | [INFO] [stderr] 106 | while stack.len() > 0{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!stack.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `voxel::voxstream::Voxstream` [INFO] [stderr] --> src/voxel/voxstream.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | / pub fn new()->Self{ [INFO] [stderr] 15 | | Voxstream{bitset:Vec::new(), content:Vec::new()} [INFO] [stderr] 16 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 7 | #[derive(Default)] [INFO] [stderr] | [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/voxel/voxstream.rs:19:33 [INFO] [stderr] | [INFO] [stderr] 19 | fn get_tree(&self, location:&Vec)->&Self{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/voxel/voxstream.rs:61:40 [INFO] [stderr] | [INFO] [stderr] 61 | pub fn get_content(&self, location:&Vec)->&T{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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: you should consider deriving a `Default` implementation for `voxel::voxbit::Voxbit` [INFO] [stderr] --> src/voxel/voxbit.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | / pub fn new()->Self{ [INFO] [stderr] 16 | | Voxbit{bitset:0u64, children:Vec::new()} [INFO] [stderr] 17 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 8 | #[derive(Default)] [INFO] [stderr] | [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/voxel/voxbit.rs:19:45 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn set_location(&mut self, location:&Vec){ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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 `location`. [INFO] [stderr] --> src/voxel/voxbit.rs:22:18 [INFO] [stderr] | [INFO] [stderr] 22 | for i in 0..location.len() { [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] 22 | for in &location { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/voxel/voxbit.rs:62:9 [INFO] [stderr] | [INFO] [stderr] 62 | self.bitset = self.bitset | location; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.bitset |= location` [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] error: calls to `std::mem::drop` with a reference instead of an owned value. Dropping a reference does nothing. [INFO] [stderr] --> src/voxel/voxbit.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | drop(self); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::drop_ref)] on by default [INFO] [stderr] note: argument has type &mut voxel::voxbit::Voxbit [INFO] [stderr] --> src/voxel/voxbit.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | drop(self); [INFO] [stderr] | ^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_ref [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `voxel::voxtree::Voxtree` [INFO] [stderr] --> src/voxel/voxtree.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | / pub fn new()->Self{ [INFO] [stderr] 14 | | Voxtree{bitset:0u64, content: None, children:Vec::new()} [INFO] [stderr] 15 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 5 | #[derive(Default)] [INFO] [stderr] | [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/voxel/voxtree.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn get_content(&self, location:&Vec)->&Option{ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/voxel/voxtree.rs:27:44 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn set_content(&mut self, location:&Vec, content:&mut Option){ [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [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 `location`. [INFO] [stderr] --> src/voxel/voxtree.rs:30:18 [INFO] [stderr] | [INFO] [stderr] 30 | for i in 0..location.len() { [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] 30 | for in &location { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/voxel/voxtree.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | self.bitset = self.bitset | location; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.bitset |= location` [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/voxel/voxtree.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | self.bitset = self.bitset | location; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.bitset |= location` [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] error: calls to `std::mem::drop` with a reference instead of an owned value. Dropping a reference does nothing. [INFO] [stderr] --> src/voxel/voxtree.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | drop(self); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: argument has type &mut voxel::voxtree::Voxtree [INFO] [stderr] --> src/voxel/voxtree.rs:84:14 [INFO] [stderr] | [INFO] [stderr] 84 | drop(self); [INFO] [stderr] | ^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_ref [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `3 * i` [INFO] [stderr] --> src/morton.rs:10:33 [INFO] [stderr] | [INFO] [stderr] 10 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `(3 * i)` [INFO] [stderr] --> src/morton.rs:10:48 [INFO] [stderr] | [INFO] [stderr] 10 | x |= ((morton & ( 1 << 3 * i + 0)) >> ((3 * i) + 0)-i); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] error: aborting due to 8 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `balisong`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "08410e63f2e648b14437e592cece3afe57076b953b071b85c8aeaa0bc7adceae"` [INFO] running `"docker" "rm" "-f" "08410e63f2e648b14437e592cece3afe57076b953b071b85c8aeaa0bc7adceae"` [INFO] [stdout] 08410e63f2e648b14437e592cece3afe57076b953b071b85c8aeaa0bc7adceae