[INFO] crate gaia_assetgen 0.3.2 is already in cache [INFO] extracting crate gaia_assetgen 0.3.2 into work/ex/clippy-test-run/sources/stable/reg/gaia_assetgen/0.3.2 [INFO] extracting crate gaia_assetgen 0.3.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/gaia_assetgen/0.3.2 [INFO] validating manifest of gaia_assetgen-0.3.2 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 gaia_assetgen-0.3.2 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 gaia_assetgen-0.3.2 [INFO] finished frobbing gaia_assetgen-0.3.2 [INFO] frobbed toml for gaia_assetgen-0.3.2 written to work/ex/clippy-test-run/sources/stable/reg/gaia_assetgen/0.3.2/Cargo.toml [INFO] started frobbing gaia_assetgen-0.3.2 [INFO] finished frobbing gaia_assetgen-0.3.2 [INFO] frobbed toml for gaia_assetgen-0.3.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/gaia_assetgen/0.3.2/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting gaia_assetgen-0.3.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/gaia_assetgen/0.3.2:/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] e2634b06d60f3ea2ce328ccd4f5755504224554c95183e21ca60381ba8fcd1fd [INFO] running `"docker" "start" "-a" "e2634b06d60f3ea2ce328ccd4f5755504224554c95183e21ca60381ba8fcd1fd"` [INFO] [stderr] Checking geo v0.4.13 [INFO] [stderr] Checking geojson v0.8.1 [INFO] [stderr] Checking gaia_assetgen v0.3.2 (/opt/crater/workdir) [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/imagemagick.rs:126:49 [INFO] [stderr] | [INFO] [stderr] 126 | let output_parts: Vec<_> = output.split(" ").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `PrepareAssetsTask` [INFO] [stderr] --> src/lib.rs:115:5 [INFO] [stderr] | [INFO] [stderr] 115 | / pub fn new() -> PrepareAssetsTask { [INFO] [stderr] 116 | | PrepareAssetsTask { [INFO] [stderr] 117 | | noaa_globe_dir: "".into(), [INFO] [stderr] 118 | | nasa_blue_marble_dir: "".into(), [INFO] [stderr] ... | [INFO] [stderr] 123 | | } [INFO] [stderr] 124 | | } [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] 105 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/lib.rs:179:27 [INFO] [stderr] | [INFO] [stderr] 179 | TempDir::new(&format!("crops")).chain_err(|| "Error creating temporary dir")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"crops".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] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:199:47 [INFO] [stderr] | [INFO] [stderr] 199 | self.create_nasa_max_level_tile("A1", TILES_ACROSS_NASA_TILE * 0, TILES_ACROSS_NASA_TILE)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::erasing_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:200:47 [INFO] [stderr] | [INFO] [stderr] 200 | self.create_nasa_max_level_tile("A2", TILES_ACROSS_NASA_TILE * 0, 0)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `TILES_ACROSS_NASA_TILE` [INFO] [stderr] --> src/lib.rs:201:47 [INFO] [stderr] | [INFO] [stderr] 201 | self.create_nasa_max_level_tile("B1", TILES_ACROSS_NASA_TILE * 1, TILES_ACROSS_NASA_TILE)?; [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 `TILES_ACROSS_NASA_TILE` [INFO] [stderr] --> src/lib.rs:202:47 [INFO] [stderr] | [INFO] [stderr] 202 | self.create_nasa_max_level_tile("B2", TILES_ACROSS_NASA_TILE * 1, 0)?; [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: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:256:13 [INFO] [stderr] | [INFO] [stderr] 256 | 0 * CROPS_ACROSS_NOAA_TILE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `CROPS_ACROSS_NOAA_TILE` [INFO] [stderr] --> src/lib.rs:257:13 [INFO] [stderr] | [INFO] [stderr] 257 | 1 * CROPS_ACROSS_NOAA_TILE, [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 `CROPS_ACROSS_NOAA_TILE` [INFO] [stderr] --> src/lib.rs:264:13 [INFO] [stderr] | [INFO] [stderr] 264 | 1 * CROPS_ACROSS_NOAA_TILE, [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 `CROPS_ACROSS_NOAA_TILE` [INFO] [stderr] --> src/lib.rs:265:13 [INFO] [stderr] | [INFO] [stderr] 265 | 1 * CROPS_ACROSS_NOAA_TILE, [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 `CROPS_ACROSS_NOAA_TILE` [INFO] [stderr] --> src/lib.rs:273:13 [INFO] [stderr] | [INFO] [stderr] 273 | 1 * CROPS_ACROSS_NOAA_TILE, [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 `CROPS_ACROSS_NOAA_TILE` [INFO] [stderr] --> src/lib.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | 1 * CROPS_ACROSS_NOAA_TILE, [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: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:288:13 [INFO] [stderr] | [INFO] [stderr] 288 | 0 * CROPS_ACROSS_NOAA_TILE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:289:13 [INFO] [stderr] | [INFO] [stderr] 289 | 0 * CROPS_ACROSS_NOAA_TILE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `CROPS_ACROSS_NOAA_TILE` [INFO] [stderr] --> src/lib.rs:296:13 [INFO] [stderr] | [INFO] [stderr] 296 | 1 * CROPS_ACROSS_NOAA_TILE, [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: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:297:13 [INFO] [stderr] | [INFO] [stderr] 297 | 0 * CROPS_ACROSS_NOAA_TILE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:305:13 [INFO] [stderr] | [INFO] [stderr] 305 | 0 * CROPS_ACROSS_NOAA_TILE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:313:13 [INFO] [stderr] | [INFO] [stderr] 313 | 0 * CROPS_ACROSS_NOAA_TILE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:374:47 [INFO] [stderr] | [INFO] [stderr] 374 | let tiles_across_width = 2u32.pow(1 + level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:375:44 [INFO] [stderr] | [INFO] [stderr] 375 | let tiles_across_height = 2u32.pow(level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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/lib.rs:420:47 [INFO] [stderr] | [INFO] [stderr] 420 | let tiles_across_width = 2u32.pow(1 + level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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/lib.rs:421:44 [INFO] [stderr] | [INFO] [stderr] 421 | let tiles_across_height = 2u32.pow(level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:487:29 [INFO] [stderr] | [INFO] [stderr] 487 | ((min * u16::max_value() as f32) as u16).saturating_sub(ELEVATION_OFFSET); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(u16::max_value())` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:489:29 [INFO] [stderr] | [INFO] [stderr] 489 | ((max * u16::max_value() as f32) as u16).saturating_sub(ELEVATION_OFFSET); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(u16::max_value())` [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/lib.rs:520:47 [INFO] [stderr] | [INFO] [stderr] 520 | let tiles_across_width = 2u32.pow(1 + level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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/lib.rs:521:44 [INFO] [stderr] | [INFO] [stderr] 521 | let tiles_across_height = 2u32.pow(level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/lib.rs:596:30 [INFO] [stderr] | [INFO] [stderr] 596 | let properties = feature.properties.unwrap_or(serde_json::Map::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `feature.properties.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/lib.rs:634:30 [INFO] [stderr] | [INFO] [stderr] 634 | let properties = feature.properties.unwrap_or(serde_json::Map::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `feature.properties.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/lib.rs:654:22 [INFO] [stderr] | [INFO] [stderr] 654 | for level in 0..MAX_LEVEL + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `0..=MAX_LEVEL` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:667:47 [INFO] [stderr] | [INFO] [stderr] 667 | let tiles_across_width = 2u32.pow(1 + level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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/lib.rs:668:44 [INFO] [stderr] | [INFO] [stderr] 668 | let tiles_across_height = 2u32.pow(level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:709:39 [INFO] [stderr] | [INFO] [stderr] 709 | let polygon_indices = tile_polygons.get(&(x, y)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&tile_polygons[&(x, y)]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:710:37 [INFO] [stderr] | [INFO] [stderr] 710 | let point_indices = tile_points.get(&(x, y)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&tile_points[&(x, y)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/lib.rs:762:30 [INFO] [stderr] | [INFO] [stderr] 762 | let levels = (0..MAX_LEVEL + 1) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `(0..=MAX_LEVEL)` [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/lib.rs:795:30 [INFO] [stderr] | [INFO] [stderr] 795 | let levels = (0..MAX_LEVEL + 1) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `(0..=MAX_LEVEL)` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:800:63 [INFO] [stderr] | [INFO] [stderr] 800 | let tiles_across_width = 2u32.pow(1 + level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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/lib.rs:801:60 [INFO] [stderr] | [INFO] [stderr] 801 | let tiles_across_height = 2u32.pow(level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:828:25 [INFO] [stderr] | [INFO] [stderr] 828 | elevation.saturating_sub(ELEVATION_OFFSET) as f32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(elevation.saturating_sub(ELEVATION_OFFSET))` [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: aborting due to 8 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `gaia_assetgen`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/imagemagick.rs:126:49 [INFO] [stderr] | [INFO] [stderr] 126 | let output_parts: Vec<_> = output.split(" ").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `PrepareAssetsTask` [INFO] [stderr] --> src/lib.rs:115:5 [INFO] [stderr] | [INFO] [stderr] 115 | / pub fn new() -> PrepareAssetsTask { [INFO] [stderr] 116 | | PrepareAssetsTask { [INFO] [stderr] 117 | | noaa_globe_dir: "".into(), [INFO] [stderr] 118 | | nasa_blue_marble_dir: "".into(), [INFO] [stderr] ... | [INFO] [stderr] 123 | | } [INFO] [stderr] 124 | | } [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] 105 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/lib.rs:179:27 [INFO] [stderr] | [INFO] [stderr] 179 | TempDir::new(&format!("crops")).chain_err(|| "Error creating temporary dir")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"crops".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] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:199:47 [INFO] [stderr] | [INFO] [stderr] 199 | self.create_nasa_max_level_tile("A1", TILES_ACROSS_NASA_TILE * 0, TILES_ACROSS_NASA_TILE)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::erasing_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:200:47 [INFO] [stderr] | [INFO] [stderr] 200 | self.create_nasa_max_level_tile("A2", TILES_ACROSS_NASA_TILE * 0, 0)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `TILES_ACROSS_NASA_TILE` [INFO] [stderr] --> src/lib.rs:201:47 [INFO] [stderr] | [INFO] [stderr] 201 | self.create_nasa_max_level_tile("B1", TILES_ACROSS_NASA_TILE * 1, TILES_ACROSS_NASA_TILE)?; [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 `TILES_ACROSS_NASA_TILE` [INFO] [stderr] --> src/lib.rs:202:47 [INFO] [stderr] | [INFO] [stderr] 202 | self.create_nasa_max_level_tile("B2", TILES_ACROSS_NASA_TILE * 1, 0)?; [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: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:256:13 [INFO] [stderr] | [INFO] [stderr] 256 | 0 * CROPS_ACROSS_NOAA_TILE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `CROPS_ACROSS_NOAA_TILE` [INFO] [stderr] --> src/lib.rs:257:13 [INFO] [stderr] | [INFO] [stderr] 257 | 1 * CROPS_ACROSS_NOAA_TILE, [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 `CROPS_ACROSS_NOAA_TILE` [INFO] [stderr] --> src/lib.rs:264:13 [INFO] [stderr] | [INFO] [stderr] 264 | 1 * CROPS_ACROSS_NOAA_TILE, [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 `CROPS_ACROSS_NOAA_TILE` [INFO] [stderr] --> src/lib.rs:265:13 [INFO] [stderr] | [INFO] [stderr] 265 | 1 * CROPS_ACROSS_NOAA_TILE, [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 `CROPS_ACROSS_NOAA_TILE` [INFO] [stderr] --> src/lib.rs:273:13 [INFO] [stderr] | [INFO] [stderr] 273 | 1 * CROPS_ACROSS_NOAA_TILE, [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 `CROPS_ACROSS_NOAA_TILE` [INFO] [stderr] --> src/lib.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | 1 * CROPS_ACROSS_NOAA_TILE, [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: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:288:13 [INFO] [stderr] | [INFO] [stderr] 288 | 0 * CROPS_ACROSS_NOAA_TILE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:289:13 [INFO] [stderr] | [INFO] [stderr] 289 | 0 * CROPS_ACROSS_NOAA_TILE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `CROPS_ACROSS_NOAA_TILE` [INFO] [stderr] --> src/lib.rs:296:13 [INFO] [stderr] | [INFO] [stderr] 296 | 1 * CROPS_ACROSS_NOAA_TILE, [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: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:297:13 [INFO] [stderr] | [INFO] [stderr] 297 | 0 * CROPS_ACROSS_NOAA_TILE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:305:13 [INFO] [stderr] | [INFO] [stderr] 305 | 0 * CROPS_ACROSS_NOAA_TILE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/lib.rs:313:13 [INFO] [stderr] | [INFO] [stderr] 313 | 0 * CROPS_ACROSS_NOAA_TILE, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:374:47 [INFO] [stderr] | [INFO] [stderr] 374 | let tiles_across_width = 2u32.pow(1 + level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:375:44 [INFO] [stderr] | [INFO] [stderr] 375 | let tiles_across_height = 2u32.pow(level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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/lib.rs:420:47 [INFO] [stderr] | [INFO] [stderr] 420 | let tiles_across_width = 2u32.pow(1 + level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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/lib.rs:421:44 [INFO] [stderr] | [INFO] [stderr] 421 | let tiles_across_height = 2u32.pow(level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:487:29 [INFO] [stderr] | [INFO] [stderr] 487 | ((min * u16::max_value() as f32) as u16).saturating_sub(ELEVATION_OFFSET); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(u16::max_value())` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:489:29 [INFO] [stderr] | [INFO] [stderr] 489 | ((max * u16::max_value() as f32) as u16).saturating_sub(ELEVATION_OFFSET); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(u16::max_value())` [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/lib.rs:520:47 [INFO] [stderr] | [INFO] [stderr] 520 | let tiles_across_width = 2u32.pow(1 + level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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/lib.rs:521:44 [INFO] [stderr] | [INFO] [stderr] 521 | let tiles_across_height = 2u32.pow(level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/lib.rs:596:30 [INFO] [stderr] | [INFO] [stderr] 596 | let properties = feature.properties.unwrap_or(serde_json::Map::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `feature.properties.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/lib.rs:634:30 [INFO] [stderr] | [INFO] [stderr] 634 | let properties = feature.properties.unwrap_or(serde_json::Map::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `feature.properties.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/lib.rs:654:22 [INFO] [stderr] | [INFO] [stderr] 654 | for level in 0..MAX_LEVEL + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `0..=MAX_LEVEL` [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:667:47 [INFO] [stderr] | [INFO] [stderr] 667 | let tiles_across_width = 2u32.pow(1 + level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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/lib.rs:668:44 [INFO] [stderr] | [INFO] [stderr] 668 | let tiles_across_height = 2u32.pow(level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:709:39 [INFO] [stderr] | [INFO] [stderr] 709 | let polygon_indices = tile_polygons.get(&(x, y)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&tile_polygons[&(x, y)]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:710:37 [INFO] [stderr] | [INFO] [stderr] 710 | let point_indices = tile_points.get(&(x, y)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&tile_points[&(x, y)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/lib.rs:762:30 [INFO] [stderr] | [INFO] [stderr] 762 | let levels = (0..MAX_LEVEL + 1) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `(0..=MAX_LEVEL)` [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/lib.rs:795:30 [INFO] [stderr] | [INFO] [stderr] 795 | let levels = (0..MAX_LEVEL + 1) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `(0..=MAX_LEVEL)` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:800:63 [INFO] [stderr] | [INFO] [stderr] 800 | let tiles_across_width = 2u32.pow(1 + level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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/lib.rs:801:60 [INFO] [stderr] | [INFO] [stderr] 801 | let tiles_across_height = 2u32.pow(level as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(level)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:828:25 [INFO] [stderr] | [INFO] [stderr] 828 | elevation.saturating_sub(ELEVATION_OFFSET) as f32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(elevation.saturating_sub(ELEVATION_OFFSET))` [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: aborting due to 8 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `gaia_assetgen`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "e2634b06d60f3ea2ce328ccd4f5755504224554c95183e21ca60381ba8fcd1fd"` [INFO] running `"docker" "rm" "-f" "e2634b06d60f3ea2ce328ccd4f5755504224554c95183e21ca60381ba8fcd1fd"` [INFO] [stdout] e2634b06d60f3ea2ce328ccd4f5755504224554c95183e21ca60381ba8fcd1fd