[INFO] updating cached repository https://github.com/HalfVoxel/graphica [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"` [INFO] [stderr] From https://github.com/HalfVoxel/graphica [INFO] [stderr] 05d65bc..d569817 master -> master [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] d569817166dbefe51f3ef834e8802b8d36351cef [INFO] testing HalfVoxel/graphica against master#28742a1146f10a4f09369baad027a464acb7a766 for pr-71274 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHalfVoxel%2Fgraphica" "/workspace/builds/worker-4/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-4/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/HalfVoxel/graphica on toolchain 28742a1146f10a4f09369baad027a464acb7a766 [INFO] running `"/workspace/cargo-home/bin/cargo" "+28742a1146f10a4f09369baad027a464acb7a766" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/HalfVoxel/graphica [INFO] finished tweaking git repo https://github.com/HalfVoxel/graphica [INFO] tweaked toml for git repo https://github.com/HalfVoxel/graphica written to /workspace/builds/worker-4/source/Cargo.toml [INFO] crate git repo https://github.com/HalfVoxel/graphica already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+28742a1146f10a4f09369baad027a464acb7a766" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] error: the lock file /workspace/builds/worker-4/source/Cargo.lock needs to be updated but --locked was passed to prevent this [INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag. [INFO] the lockfile is outdated, regenerating it [INFO] running `"/workspace/cargo-home/bin/cargo" "+28742a1146f10a4f09369baad027a464acb7a766" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `"/workspace/cargo-home/bin/cargo" "+28742a1146f10a4f09369baad027a464acb7a766" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+28742a1146f10a4f09369baad027a464acb7a766" "build" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 9e764c06fe6fce720c95f7f5554fc5191b92eea90c39639789241b918bc82949 [INFO] running `"docker" "start" "-a" "9e764c06fe6fce720c95f7f5554fc5191b92eea90c39639789241b918bc82949"` [INFO] [stderr] Compiling libc v0.2.69 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Compiling cc v1.0.52 [INFO] [stderr] Compiling scopeguard v1.1.0 [INFO] [stderr] Compiling proc-macro2 v1.0.10 [INFO] [stderr] Compiling slab v0.4.2 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Compiling unicode-xid v0.2.0 [INFO] [stderr] Compiling getrandom v0.1.14 [INFO] [stderr] Compiling pkg-config v0.3.17 [INFO] [stderr] Compiling unicode-xid v0.1.0 [INFO] [stderr] Compiling xml-rs v0.8.2 [INFO] [stderr] Compiling nix v0.14.1 [INFO] [stderr] Compiling smallvec v1.4.0 [INFO] [stderr] Compiling void v1.0.2 [INFO] [stderr] Compiling ppv-lite86 v0.2.6 [INFO] [stderr] Compiling lazycell v1.2.1 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling adler32 v1.0.4 [INFO] [stderr] Compiling rayon-core v1.7.0 [INFO] [stderr] Compiling downcast-rs v1.1.1 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling crc32fast v1.2.0 [INFO] [stderr] Compiling lzw v0.10.0 [INFO] [stderr] Compiling either v1.5.3 [INFO] [stderr] Compiling xdg v2.2.0 [INFO] [stderr] Compiling regex-syntax v0.6.17 [INFO] [stderr] Compiling packed_simd v0.3.3 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling color_quant v1.0.1 [INFO] [stderr] Compiling futures-io v0.3.4 [INFO] [stderr] Compiling futures-timer v2.0.2 [INFO] [stderr] Compiling instant v0.1.2 [INFO] [stderr] Compiling termcolor v1.1.0 [INFO] [stderr] Compiling scoped_threadpool v0.1.9 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling bytemuck v1.2.0 [INFO] [stderr] Compiling by_address v1.0.4 [INFO] [stderr] Compiling thread_local v1.0.1 [INFO] [stderr] Compiling lock_api v0.3.4 [INFO] [stderr] Compiling kurbo v0.5.11 [INFO] [stderr] Compiling num-traits v0.2.11 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling memoffset v0.5.4 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling num-integer v0.1.42 [INFO] [stderr] Compiling num-iter v0.1.40 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Compiling miniz_oxide v0.3.6 [INFO] [stderr] Compiling inflate v0.4.5 [INFO] [stderr] Compiling walkdir v2.3.1 [INFO] [stderr] Compiling x11 v2.18.2 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stderr] Compiling humantime v1.3.0 [INFO] [stderr] Compiling gif v0.10.3 [INFO] [stderr] Compiling libloading v0.5.2 [INFO] [stderr] Compiling kv-log-macro v1.0.4 [INFO] [stderr] Compiling stb_truetype v0.3.1 [INFO] [stderr] Compiling fxhash v0.2.1 [INFO] [stderr] Compiling deflate v0.8.4 [INFO] [stderr] Compiling tiff v0.4.0 [INFO] [stderr] Compiling quote v1.0.3 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling net2 v0.2.33 [INFO] [stderr] Compiling raw-window-handle v0.3.3 [INFO] [stderr] Compiling parking_lot_core v0.7.2 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling memmap v0.7.0 [INFO] [stderr] Compiling async-task v1.3.1 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Compiling aho-corasick v0.7.10 [INFO] [stderr] Compiling syn v1.0.18 [INFO] [stderr] Compiling png v0.16.3 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling mio v0.6.21 [INFO] [stderr] Compiling gfx-hal v0.5.0 [INFO] [stderr] Compiling parking_lot v0.10.2 [INFO] [stderr] Compiling crossbeam-queue v0.2.1 [INFO] [stderr] Compiling crossbeam-channel v0.4.2 [INFO] [stderr] Compiling wayland-scanner v0.23.6 [INFO] [stderr] Compiling approx v0.3.2 [INFO] [stderr] Compiling euclid v0.20.10 [INFO] [stderr] Compiling ordered-float v1.0.2 [INFO] [stderr] Compiling sid v0.6.1 [INFO] [stderr] Compiling line_drawing v0.7.0 [INFO] [stderr] Compiling dlib v0.4.1 [INFO] [stderr] Compiling ash v0.30.0 [INFO] [stderr] Compiling regex v1.3.7 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling rand_pcg v0.2.1 [INFO] [stderr] Compiling mio-extras v2.0.6 [INFO] [stderr] Compiling mio-uds v0.6.7 [INFO] [stderr] Compiling crossbeam-deque v0.7.3 [INFO] [stderr] Compiling rusttype v0.8.3 [INFO] [stderr] Compiling wayland-sys v0.23.6 [INFO] [stderr] Compiling lyon_geom v0.15.2 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling calloop v0.4.4 [INFO] [stderr] Compiling synstructure v0.12.3 [INFO] [stderr] Compiling async-std v1.5.0 [INFO] [stderr] Compiling env_logger v0.7.1 [INFO] [stderr] Compiling wayland-client v0.23.6 [INFO] [stderr] Compiling wayland-protocols v0.23.6 [INFO] [stderr] Compiling rusttype v0.7.9 [INFO] [stderr] Compiling wayland-commons v0.23.6 [INFO] [stderr] Compiling lyon_path v0.15.2 [INFO] [stderr] Compiling phf_generator v0.8.0 [INFO] [stderr] Compiling rayon v1.3.0 [INFO] [stderr] Compiling gfx-descriptor v0.1.0 [INFO] [stderr] Compiling gfx-backend-empty v0.5.0 [INFO] [stderr] Compiling gfx-memory v0.1.3 [INFO] [stderr] Compiling andrew v0.2.1 [INFO] [stderr] Compiling lyon_tessellation v0.15.6 [INFO] [stderr] Compiling lyon_algorithms v0.15.0 [INFO] [stderr] Compiling phf_codegen v0.8.0 [INFO] [stderr] Compiling lyon v0.15.6 [INFO] [stderr] Compiling peek-poke-derive v0.2.1 [INFO] [stderr] Compiling palette_derive v0.5.0 [INFO] [stderr] Compiling palette v0.5.0 [INFO] [stderr] Compiling jpeg-decoder v0.1.18 [INFO] [stderr] Compiling image v0.23.4 [INFO] [stderr] Compiling peek-poke v0.2.0 [INFO] [stderr] Compiling wgpu-types v0.5.0 [INFO] [stderr] Compiling gfx-backend-vulkan v0.5.2 [INFO] [stderr] Compiling wgpu-core v0.5.3 [INFO] [stderr] Compiling smithay-client-toolkit v0.6.6 [INFO] [stderr] Compiling winit v0.20.0 [INFO] [stderr] Compiling wgpu-native v0.5.0 [INFO] [stderr] Compiling wgpu v0.5.0 [INFO] [stderr] Compiling graphica v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused import: `kurbo::common::GAUSS_LEGENDRE_COEFFS_5` [INFO] [stderr] --> src/geometry_utilities.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use kurbo::common::GAUSS_LEGENDRE_COEFFS_5; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `kurbo::common::GAUSS_LEGENDRE_COEFFS_3` [INFO] [stderr] --> src/geometry_utilities.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use kurbo::common::GAUSS_LEGENDRE_COEFFS_3; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `kurbo::ParamCurveArclen` [INFO] [stderr] --> src/geometry_utilities.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use kurbo::ParamCurveArclen; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Hash` [INFO] [stderr] --> src/path.rs:3:17 [INFO] [stderr] | [INFO] [stderr] 3 | use std::hash::{Hash, Hasher}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `FillTessellator` [INFO] [stderr] --> src/main.rs:6:39 [INFO] [stderr] | [INFO] [stderr] 6 | use lyon::tessellation::{FillOptions, FillTessellator}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `euclid` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use euclid; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HashMap`, `HashSet` [INFO] [stderr] --> src/main.rs:10:24 [INFO] [stderr] | [INFO] [stderr] 10 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `VectorFieldPrimitive`, `VectorField`, `poisson_disc_sampling`, `sqr_distance_bezier_point_binary`, `sqr_distance_bezier_point_lower_bound`, `sqr_distance_bezier_point` [INFO] [stderr] --> src/main.rs:23:33 [INFO] [stderr] | [INFO] [stderr] 23 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive, ParamCurveDistanceEval}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `CapturedClick`, `CircleShape` [INFO] [stderr] --> src/main.rs:24:20 [INFO] [stderr] | [INFO] [stderr] 24 | use crate::input::{CapturedClick, CircleShape, InputManager, KeyCombination}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ControlPointReference`, `MutableReferenceResolver`, `PathReference`, `SelectionReference` [INFO] [stderr] --> src/main.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 28 | VertexReference, PathReference [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `RefCell`, `RefMut`, `Ref` [INFO] [stderr] --> src/main.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | use std::cell::{RefCell, RefMut, Ref}; [INFO] [stderr] | ^^^^^^^ ^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Rem` [INFO] [stderr] --> src/main.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | use std::ops::Rem; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `palette::Srgba` [INFO] [stderr] --> src/main.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | use palette::Srgba; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lyon::math::*` [INFO] [stderr] --> src/brush_editor.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use lyon::math::*; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/brush_editor.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `VectorFieldPrimitive`, `VectorField`, `poisson_disc_sampling`, `sqr_distance_bezier_point_binary`, `sqr_distance_bezier_point_lower_bound`, `sqr_distance_bezier_point` [INFO] [stderr] --> src/brush_editor.rs:8:33 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ControlPointReference`, `MutableReferenceResolver`, `PathCollection`, `ReferenceResolver`, `SelectionReference`, `VertexReference` [INFO] [stderr] --> src/brush_editor.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 11 | VertexReference, PathReference [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HashMap`, `HashSet` [INFO] [stderr] --> src/brush_editor.rs:13:24 [INFO] [stderr] | [INFO] [stderr] 13 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `SeedableRng`, `rngs::StdRng` [INFO] [stderr] --> src/brush_editor.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | use rand::{rngs::StdRng, SeedableRng}; [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sqr_distance_bezier_point` [INFO] [stderr] --> src/path_editor.rs:7:56 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `HashMap` [INFO] [stderr] --> src/path_editor.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lyon::path::builder` [INFO] [stderr] --> src/main.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use lyon::path::builder::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::hash::Hash` [INFO] [stderr] --> src/main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::hash::Hash; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ReferenceResolver` [INFO] [stderr] --> src/main.rs:27:70 [INFO] [stderr] | [INFO] [stderr] 27 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t3` [INFO] [stderr] --> src/geometry_utilities.rs:302:9 [INFO] [stderr] | [INFO] [stderr] 302 | let t3 = t1 * t1 * t1; [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t3` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `clearance` [INFO] [stderr] --> src/geometry_utilities.rs:812:64 [INFO] [stderr] | [INFO] [stderr] 812 | pub fn trace_with_clearance(&self, mut point: CanvasPoint, clearance: f32) -> Vec { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clearance` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `point` [INFO] [stderr] --> src/geometry_utilities.rs:849:12 [INFO] [stderr] | [INFO] [stderr] 849 | fn add(point: ImmutablePathPoint<'a>) { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_point` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index` [INFO] [stderr] --> src/path.rs:386:37 [INFO] [stderr] | [INFO] [stderr] 386 | pub fn remove<'a>(&'a mut self, index: usize) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t0` [INFO] [stderr] --> src/main.rs:1066:13 [INFO] [stderr] | [INFO] [stderr] 1066 | let t0 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t0` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t1` [INFO] [stderr] --> src/main.rs:1119:13 [INFO] [stderr] | [INFO] [stderr] 1119 | let t1 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t3` [INFO] [stderr] --> src/main.rs:1128:13 [INFO] [stderr] | [INFO] [stderr] 1128 | let t3 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t3` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `num_instances` [INFO] [stderr] --> src/main.rs:469:9 [INFO] [stderr] | [INFO] [stderr] 469 | let num_instances: u32 = PRIM_BUFFER_LEN as u32 - 1; [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_instances` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tolerance` [INFO] [stderr] --> src/main.rs:470:9 [INFO] [stderr] | [INFO] [stderr] 470 | let tolerance = 0.02; [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tolerance` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `render_pipeline_clone_brush` [INFO] [stderr] --> src/main.rs:907:9 [INFO] [stderr] | [INFO] [stderr] 907 | let render_pipeline_clone_brush = Rc::new(device.create_render_pipeline(&render_pipeline_descriptor_clone_brush)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_render_pipeline_clone_brush` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `render_pipeline_clone_brush_blit` [INFO] [stderr] --> src/main.rs:981:9 [INFO] [stderr] | [INFO] [stderr] 981 | let render_pipeline_clone_brush_blit = Rc::new(device.create_render_pipeline(&render_pipeline_descriptor_clone_brush_blit)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_render_pipeline_clone_brush_blit` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/main.rs:237:36 [INFO] [stderr] | [INFO] [stderr] 237 | fn new(brush_data: &BrushData, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder, bind_group_layout: &wgpu::BindGroupLayout, scene_ubo: &Buffer, scene_ubo_size: u64, render_pipeline_brush: &Rc, texture: &Texture) -> BrushRenderer { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/main.rs:321:26 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `device` [INFO] [stderr] --> src/main.rs:321:45 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `encoder` [INFO] [stderr] --> src/main.rs:321:62 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vbo_size` [INFO] [stderr] --> src/main.rs:363:19 [INFO] [stderr] | [INFO] [stderr] 363 | let (vbo, vbo_size) = create_buffer_via_transfer(device, encoder, &geometry.vertices, wgpu::BufferUsage::VERTEX, "Document VBO"); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vbo_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ibo_size` [INFO] [stderr] --> src/main.rs:377:19 [INFO] [stderr] | [INFO] [stderr] 377 | let (ibo, ibo_size) = create_buffer_via_transfer(device, encoder, &indices, wgpu::BufferUsage::INDEX, "Document IBO"); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ibo_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/gui.rs:346:26 [INFO] [stderr] | [INFO] [stderr] 346 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) {} [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/gui.rs:346:54 [INFO] [stderr] | [INFO] [stderr] 346 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) {} [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/gui.rs:347:25 [INFO] [stderr] | [INFO] [stderr] 347 | fn input(&mut self, context: &mut WidgetContext, input: &mut InputManager) {} [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `input` [INFO] [stderr] --> src/gui.rs:347:60 [INFO] [stderr] | [INFO] [stderr] 347 | fn input(&mut self, context: &mut WidgetContext, input: &mut InputManager) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `root` [INFO] [stderr] --> src/gui.rs:31:26 [INFO] [stderr] | [INFO] [stderr] 31 | fn render(&mut self, root: &mut RootWrapper, document: &mut Document, view: &CanvasView) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_root` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/gui.rs:310:29 [INFO] [stderr] | [INFO] [stderr] 310 | pub fn input(&mut self, ui_document: &mut Document, input: &mut InputManager) { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/brush_editor.rs:37:30 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn update(&mut self, ui_document: &mut Document, document: &mut Document, view: &CanvasView, input: &mut InputManager, tool: &ToolType) { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `next` [INFO] [stderr] --> src/path_editor.rs:149:34 [INFO] [stderr] | [INFO] [stderr] 149 | .filter(|next| point_set.contains(&vertex_ref2)) [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_next` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/path_editor.rs:486:18 [INFO] [stderr] | [INFO] [stderr] 486 | for (i, &p) in samples.iter().enumerate() { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:83:34 [INFO] [stderr] | [INFO] [stderr] 83 | fn on_change_tool(&mut self, context: &mut WidgetContext, ev: &ToolSelected) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:117:25 [INFO] [stderr] | [INFO] [stderr] 117 | fn mount(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/toolbar.rs:120:54 [INFO] [stderr] | [INFO] [stderr] 120 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:133:26 [INFO] [stderr] | [INFO] [stderr] 133 | fn update(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:184:26 [INFO] [stderr] | [INFO] [stderr] 184 | fn update(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/geometry_utilities.rs:231:5 [INFO] [stderr] | [INFO] [stderr] 231 | mut distance: f32, [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: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:538:18 [INFO] [stderr] | [INFO] [stderr] 538 | let (device, mut queue) = task::block_on(adapter.request_device(&wgpu::DeviceDescriptor { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `point_at_distance_binary_search` [INFO] [stderr] --> src/geometry_utilities.rs:194:4 [INFO] [stderr] | [INFO] [stderr] 194 | fn point_at_distance_binary_search(c: &CubicBez, distance_from_start: f64, accuracy: f64) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `PathClearanceGrid` [INFO] [stderr] --> src/geometry_utilities.rs:830:8 [INFO] [stderr] | [INFO] [stderr] 830 | struct PathClearanceGrid<'a, U> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/geometry_utilities.rs:837:5 [INFO] [stderr] | [INFO] [stderr] 837 | fn new(clearance: f32, bounds: euclid::Rect) -> PathClearanceGrid<'a, U> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add` [INFO] [stderr] --> src/geometry_utilities.rs:849:5 [INFO] [stderr] | [INFO] [stderr] 849 | fn add(point: ImmutablePathPoint<'a>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `primitive_ubo` [INFO] [stderr] --> src/main.rs:138:5 [INFO] [stderr] | [INFO] [stderr] 138 | primitive_ubo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `brush_renderer` [INFO] [stderr] --> src/main.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | brush_renderer: BrushRenderer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `vbo` [INFO] [stderr] --> src/main.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | vbo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `ibo` [INFO] [stderr] --> src/main.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | ibo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `index_buffer_length` [INFO] [stderr] --> src/main.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | index_buffer_length: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `bind_group` [INFO] [stderr] --> src/main.rs:150:5 [INFO] [stderr] | [INFO] [stderr] 150 | bind_group: BindGroup, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `render_pipeline` [INFO] [stderr] --> src/main.rs:151:5 [INFO] [stderr] | [INFO] [stderr] 151 | render_pipeline: Rc, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `dummy` [INFO] [stderr] --> src/main.rs:191:5 [INFO] [stderr] | [INFO] [stderr] 191 | dummy: i32, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `update` [INFO] [stderr] --> src/main.rs:321:5 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `render` [INFO] [stderr] --> src/main.rs:334:5 [INFO] [stderr] | [INFO] [stderr] 334 | fn render<'a>(&'a self, pass: &mut RenderPass<'a>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `buffer` [INFO] [stderr] --> src/main.rs:1258:5 [INFO] [stderr] | [INFO] [stderr] 1258 | buffer: wgpu::Texture, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `PointerEvent` [INFO] [stderr] --> src/gui.rs:43:6 [INFO] [stderr] | [INFO] [stderr] 43 | enum PointerEvent { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `version` [INFO] [stderr] --> src/gui.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | version: u32, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BrushVertexAttrs` [INFO] [stderr] --> src/brush_editor.rs:80:8 [INFO] [stderr] | [INFO] [stderr] 80 | struct BrushVertexAttrs { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BrushSubpathAttrs` [INFO] [stderr] --> src/brush_editor.rs:85:8 [INFO] [stderr] | [INFO] [stderr] 85 | struct BrushSubpathAttrs { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `ClosestInSelection` [INFO] [stderr] --> src/path_editor.rs:49:12 [INFO] [stderr] | [INFO] [stderr] 49 | pub struct ClosestInSelection { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `ClosestItemInSelection` [INFO] [stderr] --> src/path_editor.rs:54:10 [INFO] [stderr] | [INFO] [stderr] 54 | pub enum ClosestItemInSelection { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `move_limit` should have an upper case name [INFO] [stderr] --> src/geometry_utilities.rs:239:11 [INFO] [stderr] | [INFO] [stderr] 239 | const move_limit: f32 = 0.2; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to upper case: `MOVE_LIMIT` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 79 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused import: `graphica::main` [INFO] [stderr] --> src/bin/main.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use graphica::main; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/bin/main.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 6m 15s [INFO] running `"docker" "inspect" "9e764c06fe6fce720c95f7f5554fc5191b92eea90c39639789241b918bc82949"` [INFO] running `"docker" "rm" "-f" "9e764c06fe6fce720c95f7f5554fc5191b92eea90c39639789241b918bc82949"` [INFO] [stdout] 9e764c06fe6fce720c95f7f5554fc5191b92eea90c39639789241b918bc82949 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+28742a1146f10a4f09369baad027a464acb7a766" "test" "--frozen" "--no-run"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 39970ec74a3987270c46fddf28fa9360c5a2751dfb1564a770d41bb2f7550cd8 [INFO] running `"docker" "start" "-a" "39970ec74a3987270c46fddf28fa9360c5a2751dfb1564a770d41bb2f7550cd8"` [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Compiling unicode-width v0.1.7 [INFO] [stderr] Compiling oorandom v11.1.0 [INFO] [stderr] Compiling itertools v0.8.2 [INFO] [stderr] Compiling regex-automata v0.1.9 [INFO] [stderr] Compiling csv-core v0.1.10 [INFO] [stderr] Compiling plotters v0.2.12 [INFO] [stderr] Compiling tinytemplate v1.0.3 [INFO] [stderr] Compiling serde_derive v1.0.106 [INFO] [stderr] Compiling textwrap v0.11.0 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling clap v2.33.0 [INFO] [stderr] Compiling bstr v0.2.12 [INFO] [stderr] warning: unused import: `kurbo::common::GAUSS_LEGENDRE_COEFFS_5` [INFO] [stderr] --> src/geometry_utilities.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use kurbo::common::GAUSS_LEGENDRE_COEFFS_5; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `kurbo::common::GAUSS_LEGENDRE_COEFFS_3` [INFO] [stderr] --> src/geometry_utilities.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use kurbo::common::GAUSS_LEGENDRE_COEFFS_3; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `kurbo::ParamCurveArclen` [INFO] [stderr] --> src/geometry_utilities.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use kurbo::ParamCurveArclen; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Hash` [INFO] [stderr] --> src/path.rs:3:17 [INFO] [stderr] | [INFO] [stderr] 3 | use std::hash::{Hash, Hasher}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `FillTessellator` [INFO] [stderr] --> src/main.rs:6:39 [INFO] [stderr] | [INFO] [stderr] 6 | use lyon::tessellation::{FillOptions, FillTessellator}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `euclid` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use euclid; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HashMap`, `HashSet` [INFO] [stderr] --> src/main.rs:10:24 [INFO] [stderr] | [INFO] [stderr] 10 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `VectorFieldPrimitive`, `VectorField`, `poisson_disc_sampling`, `sqr_distance_bezier_point_binary`, `sqr_distance_bezier_point_lower_bound`, `sqr_distance_bezier_point` [INFO] [stderr] --> src/main.rs:23:33 [INFO] [stderr] | [INFO] [stderr] 23 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive, ParamCurveDistanceEval}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `CapturedClick`, `CircleShape` [INFO] [stderr] --> src/main.rs:24:20 [INFO] [stderr] | [INFO] [stderr] 24 | use crate::input::{CapturedClick, CircleShape, InputManager, KeyCombination}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ControlPointReference`, `MutableReferenceResolver`, `PathReference`, `SelectionReference` [INFO] [stderr] --> src/main.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 28 | VertexReference, PathReference [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `RefCell`, `RefMut`, `Ref` [INFO] [stderr] --> src/main.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | use std::cell::{RefCell, RefMut, Ref}; [INFO] [stderr] | ^^^^^^^ ^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Rem` [INFO] [stderr] --> src/main.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | use std::ops::Rem; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `palette::Srgba` [INFO] [stderr] --> src/main.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | use palette::Srgba; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lyon::math::*` [INFO] [stderr] --> src/brush_editor.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use lyon::math::*; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/brush_editor.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `VectorFieldPrimitive`, `VectorField`, `poisson_disc_sampling`, `sqr_distance_bezier_point_binary`, `sqr_distance_bezier_point_lower_bound`, `sqr_distance_bezier_point` [INFO] [stderr] --> src/brush_editor.rs:8:33 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ControlPointReference`, `MutableReferenceResolver`, `PathCollection`, `ReferenceResolver`, `SelectionReference`, `VertexReference` [INFO] [stderr] --> src/brush_editor.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 11 | VertexReference, PathReference [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HashMap`, `HashSet` [INFO] [stderr] --> src/brush_editor.rs:13:24 [INFO] [stderr] | [INFO] [stderr] 13 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `SeedableRng`, `rngs::StdRng` [INFO] [stderr] --> src/brush_editor.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | use rand::{rngs::StdRng, SeedableRng}; [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sqr_distance_bezier_point` [INFO] [stderr] --> src/path_editor.rs:7:56 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `HashMap` [INFO] [stderr] --> src/path_editor.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lyon::path::builder` [INFO] [stderr] --> src/main.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use lyon::path::builder::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::hash::Hash` [INFO] [stderr] --> src/main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::hash::Hash; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ReferenceResolver` [INFO] [stderr] --> src/main.rs:27:70 [INFO] [stderr] | [INFO] [stderr] 27 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t3` [INFO] [stderr] --> src/geometry_utilities.rs:302:9 [INFO] [stderr] | [INFO] [stderr] 302 | let t3 = t1 * t1 * t1; [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t3` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `clearance` [INFO] [stderr] --> src/geometry_utilities.rs:812:64 [INFO] [stderr] | [INFO] [stderr] 812 | pub fn trace_with_clearance(&self, mut point: CanvasPoint, clearance: f32) -> Vec { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clearance` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `point` [INFO] [stderr] --> src/geometry_utilities.rs:849:12 [INFO] [stderr] | [INFO] [stderr] 849 | fn add(point: ImmutablePathPoint<'a>) { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_point` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index` [INFO] [stderr] --> src/path.rs:386:37 [INFO] [stderr] | [INFO] [stderr] 386 | pub fn remove<'a>(&'a mut self, index: usize) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t0` [INFO] [stderr] --> src/main.rs:1066:13 [INFO] [stderr] | [INFO] [stderr] 1066 | let t0 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t0` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t1` [INFO] [stderr] --> src/main.rs:1119:13 [INFO] [stderr] | [INFO] [stderr] 1119 | let t1 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t3` [INFO] [stderr] --> src/main.rs:1128:13 [INFO] [stderr] | [INFO] [stderr] 1128 | let t3 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t3` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `num_instances` [INFO] [stderr] --> src/main.rs:469:9 [INFO] [stderr] | [INFO] [stderr] 469 | let num_instances: u32 = PRIM_BUFFER_LEN as u32 - 1; [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_instances` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tolerance` [INFO] [stderr] --> src/main.rs:470:9 [INFO] [stderr] | [INFO] [stderr] 470 | let tolerance = 0.02; [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tolerance` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `render_pipeline_clone_brush` [INFO] [stderr] --> src/main.rs:907:9 [INFO] [stderr] | [INFO] [stderr] 907 | let render_pipeline_clone_brush = Rc::new(device.create_render_pipeline(&render_pipeline_descriptor_clone_brush)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_render_pipeline_clone_brush` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `render_pipeline_clone_brush_blit` [INFO] [stderr] --> src/main.rs:981:9 [INFO] [stderr] | [INFO] [stderr] 981 | let render_pipeline_clone_brush_blit = Rc::new(device.create_render_pipeline(&render_pipeline_descriptor_clone_brush_blit)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_render_pipeline_clone_brush_blit` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/main.rs:237:36 [INFO] [stderr] | [INFO] [stderr] 237 | fn new(brush_data: &BrushData, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder, bind_group_layout: &wgpu::BindGroupLayout, scene_ubo: &Buffer, scene_ubo_size: u64, render_pipeline_brush: &Rc, texture: &Texture) -> BrushRenderer { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/main.rs:321:26 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `device` [INFO] [stderr] --> src/main.rs:321:45 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `encoder` [INFO] [stderr] --> src/main.rs:321:62 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vbo_size` [INFO] [stderr] --> src/main.rs:363:19 [INFO] [stderr] | [INFO] [stderr] 363 | let (vbo, vbo_size) = create_buffer_via_transfer(device, encoder, &geometry.vertices, wgpu::BufferUsage::VERTEX, "Document VBO"); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vbo_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ibo_size` [INFO] [stderr] --> src/main.rs:377:19 [INFO] [stderr] | [INFO] [stderr] 377 | let (ibo, ibo_size) = create_buffer_via_transfer(device, encoder, &indices, wgpu::BufferUsage::INDEX, "Document IBO"); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ibo_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/gui.rs:346:26 [INFO] [stderr] | [INFO] [stderr] 346 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) {} [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/gui.rs:346:54 [INFO] [stderr] | [INFO] [stderr] 346 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) {} [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/gui.rs:347:25 [INFO] [stderr] | [INFO] [stderr] 347 | fn input(&mut self, context: &mut WidgetContext, input: &mut InputManager) {} [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `input` [INFO] [stderr] --> src/gui.rs:347:60 [INFO] [stderr] | [INFO] [stderr] 347 | fn input(&mut self, context: &mut WidgetContext, input: &mut InputManager) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `root` [INFO] [stderr] --> src/gui.rs:31:26 [INFO] [stderr] | [INFO] [stderr] 31 | fn render(&mut self, root: &mut RootWrapper, document: &mut Document, view: &CanvasView) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_root` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/gui.rs:310:29 [INFO] [stderr] | [INFO] [stderr] 310 | pub fn input(&mut self, ui_document: &mut Document, input: &mut InputManager) { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/brush_editor.rs:37:30 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn update(&mut self, ui_document: &mut Document, document: &mut Document, view: &CanvasView, input: &mut InputManager, tool: &ToolType) { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `next` [INFO] [stderr] --> src/path_editor.rs:149:34 [INFO] [stderr] | [INFO] [stderr] 149 | .filter(|next| point_set.contains(&vertex_ref2)) [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_next` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/path_editor.rs:486:18 [INFO] [stderr] | [INFO] [stderr] 486 | for (i, &p) in samples.iter().enumerate() { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:83:34 [INFO] [stderr] | [INFO] [stderr] 83 | fn on_change_tool(&mut self, context: &mut WidgetContext, ev: &ToolSelected) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:117:25 [INFO] [stderr] | [INFO] [stderr] 117 | fn mount(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/toolbar.rs:120:54 [INFO] [stderr] | [INFO] [stderr] 120 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:133:26 [INFO] [stderr] | [INFO] [stderr] 133 | fn update(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:184:26 [INFO] [stderr] | [INFO] [stderr] 184 | fn update(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/geometry_utilities.rs:231:5 [INFO] [stderr] | [INFO] [stderr] 231 | mut distance: f32, [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: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:538:18 [INFO] [stderr] | [INFO] [stderr] 538 | let (device, mut queue) = task::block_on(adapter.request_device(&wgpu::DeviceDescriptor { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `point_at_distance_binary_search` [INFO] [stderr] --> src/geometry_utilities.rs:194:4 [INFO] [stderr] | [INFO] [stderr] 194 | fn point_at_distance_binary_search(c: &CubicBez, distance_from_start: f64, accuracy: f64) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `PathClearanceGrid` [INFO] [stderr] --> src/geometry_utilities.rs:830:8 [INFO] [stderr] | [INFO] [stderr] 830 | struct PathClearanceGrid<'a, U> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/geometry_utilities.rs:837:5 [INFO] [stderr] | [INFO] [stderr] 837 | fn new(clearance: f32, bounds: euclid::Rect) -> PathClearanceGrid<'a, U> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add` [INFO] [stderr] --> src/geometry_utilities.rs:849:5 [INFO] [stderr] | [INFO] [stderr] 849 | fn add(point: ImmutablePathPoint<'a>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `primitive_ubo` [INFO] [stderr] --> src/main.rs:138:5 [INFO] [stderr] | [INFO] [stderr] 138 | primitive_ubo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `brush_renderer` [INFO] [stderr] --> src/main.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | brush_renderer: BrushRenderer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `vbo` [INFO] [stderr] --> src/main.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | vbo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `ibo` [INFO] [stderr] --> src/main.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | ibo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `index_buffer_length` [INFO] [stderr] --> src/main.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | index_buffer_length: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `bind_group` [INFO] [stderr] --> src/main.rs:150:5 [INFO] [stderr] | [INFO] [stderr] 150 | bind_group: BindGroup, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `render_pipeline` [INFO] [stderr] --> src/main.rs:151:5 [INFO] [stderr] | [INFO] [stderr] 151 | render_pipeline: Rc, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `dummy` [INFO] [stderr] --> src/main.rs:191:5 [INFO] [stderr] | [INFO] [stderr] 191 | dummy: i32, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `update` [INFO] [stderr] --> src/main.rs:321:5 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `render` [INFO] [stderr] --> src/main.rs:334:5 [INFO] [stderr] | [INFO] [stderr] 334 | fn render<'a>(&'a self, pass: &mut RenderPass<'a>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `buffer` [INFO] [stderr] --> src/main.rs:1258:5 [INFO] [stderr] | [INFO] [stderr] 1258 | buffer: wgpu::Texture, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `PointerEvent` [INFO] [stderr] --> src/gui.rs:43:6 [INFO] [stderr] | [INFO] [stderr] 43 | enum PointerEvent { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `version` [INFO] [stderr] --> src/gui.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | version: u32, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BrushVertexAttrs` [INFO] [stderr] --> src/brush_editor.rs:80:8 [INFO] [stderr] | [INFO] [stderr] 80 | struct BrushVertexAttrs { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BrushSubpathAttrs` [INFO] [stderr] --> src/brush_editor.rs:85:8 [INFO] [stderr] | [INFO] [stderr] 85 | struct BrushSubpathAttrs { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `ClosestInSelection` [INFO] [stderr] --> src/path_editor.rs:49:12 [INFO] [stderr] | [INFO] [stderr] 49 | pub struct ClosestInSelection { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `ClosestItemInSelection` [INFO] [stderr] --> src/path_editor.rs:54:10 [INFO] [stderr] | [INFO] [stderr] 54 | pub enum ClosestItemInSelection { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `move_limit` should have an upper case name [INFO] [stderr] --> src/geometry_utilities.rs:239:11 [INFO] [stderr] | [INFO] [stderr] 239 | const move_limit: f32 = 0.2; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to upper case: `MOVE_LIMIT` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 79 warnings emitted [INFO] [stderr] [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling cast v0.2.3 [INFO] [stderr] Compiling csv v1.1.3 [INFO] [stderr] Compiling criterion-plot v0.4.1 [INFO] [stderr] Compiling criterion v0.3.1 [INFO] [stderr] Compiling graphica v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused import: `graphica::main` [INFO] [stderr] --> src/bin/main.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use graphica::main; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/bin/main.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `kurbo::common::GAUSS_LEGENDRE_COEFFS_5` [INFO] [stderr] --> src/geometry_utilities.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use kurbo::common::GAUSS_LEGENDRE_COEFFS_5; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `kurbo::common::GAUSS_LEGENDRE_COEFFS_3` [INFO] [stderr] --> src/geometry_utilities.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use kurbo::common::GAUSS_LEGENDRE_COEFFS_3; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Hash` [INFO] [stderr] --> src/path.rs:3:17 [INFO] [stderr] | [INFO] [stderr] 3 | use std::hash::{Hash, Hasher}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `FillTessellator` [INFO] [stderr] --> src/main.rs:6:39 [INFO] [stderr] | [INFO] [stderr] 6 | use lyon::tessellation::{FillOptions, FillTessellator}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `euclid` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use euclid; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HashMap`, `HashSet` [INFO] [stderr] --> src/main.rs:10:24 [INFO] [stderr] | [INFO] [stderr] 10 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `VectorFieldPrimitive`, `VectorField`, `poisson_disc_sampling`, `sqr_distance_bezier_point_binary`, `sqr_distance_bezier_point_lower_bound`, `sqr_distance_bezier_point` [INFO] [stderr] --> src/main.rs:23:33 [INFO] [stderr] | [INFO] [stderr] 23 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive, ParamCurveDistanceEval}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `CapturedClick`, `CircleShape` [INFO] [stderr] --> src/main.rs:24:20 [INFO] [stderr] | [INFO] [stderr] 24 | use crate::input::{CapturedClick, CircleShape, InputManager, KeyCombination}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ControlPointReference`, `MutableReferenceResolver`, `PathReference`, `SelectionReference` [INFO] [stderr] --> src/main.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 28 | VertexReference, PathReference [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `RefCell`, `RefMut`, `Ref` [INFO] [stderr] --> src/main.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | use std::cell::{RefCell, RefMut, Ref}; [INFO] [stderr] | ^^^^^^^ ^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Rem` [INFO] [stderr] --> src/main.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | use std::ops::Rem; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `palette::Srgba` [INFO] [stderr] --> src/main.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | use palette::Srgba; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lyon::math::*` [INFO] [stderr] --> src/brush_editor.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use lyon::math::*; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/brush_editor.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `VectorFieldPrimitive`, `VectorField`, `poisson_disc_sampling`, `sqr_distance_bezier_point_binary`, `sqr_distance_bezier_point_lower_bound`, `sqr_distance_bezier_point` [INFO] [stderr] --> src/brush_editor.rs:8:33 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ControlPointReference`, `MutableReferenceResolver`, `PathCollection`, `ReferenceResolver`, `SelectionReference`, `VertexReference` [INFO] [stderr] --> src/brush_editor.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 11 | VertexReference, PathReference [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HashMap`, `HashSet` [INFO] [stderr] --> src/brush_editor.rs:13:24 [INFO] [stderr] | [INFO] [stderr] 13 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `SeedableRng`, `rngs::StdRng` [INFO] [stderr] --> src/brush_editor.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | use rand::{rngs::StdRng, SeedableRng}; [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sqr_distance_bezier_point` [INFO] [stderr] --> src/path_editor.rs:7:56 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `HashMap` [INFO] [stderr] --> src/path_editor.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused import: `lyon::path::builder` [INFO] [stderr] --> src/main.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use lyon::path::builder::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::hash::Hash` [INFO] [stderr] --> src/main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::hash::Hash; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ReferenceResolver` [INFO] [stderr] --> src/main.rs:27:70 [INFO] [stderr] | [INFO] [stderr] 27 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t3` [INFO] [stderr] --> src/geometry_utilities.rs:302:9 [INFO] [stderr] | [INFO] [stderr] 302 | let t3 = t1 * t1 * t1; [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t3` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `clearance` [INFO] [stderr] --> src/geometry_utilities.rs:812:64 [INFO] [stderr] | [INFO] [stderr] 812 | pub fn trace_with_clearance(&self, mut point: CanvasPoint, clearance: f32) -> Vec { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clearance` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `point` [INFO] [stderr] --> src/geometry_utilities.rs:849:12 [INFO] [stderr] | [INFO] [stderr] 849 | fn add(point: ImmutablePathPoint<'a>) { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_point` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index` [INFO] [stderr] --> src/path.rs:386:37 [INFO] [stderr] | [INFO] [stderr] 386 | pub fn remove<'a>(&'a mut self, index: usize) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t0` [INFO] [stderr] --> src/main.rs:1066:13 [INFO] [stderr] | [INFO] [stderr] 1066 | let t0 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t0` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t1` [INFO] [stderr] --> src/main.rs:1119:13 [INFO] [stderr] | [INFO] [stderr] 1119 | let t1 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t3` [INFO] [stderr] --> src/main.rs:1128:13 [INFO] [stderr] | [INFO] [stderr] 1128 | let t3 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t3` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `num_instances` [INFO] [stderr] --> src/main.rs:469:9 [INFO] [stderr] | [INFO] [stderr] 469 | let num_instances: u32 = PRIM_BUFFER_LEN as u32 - 1; [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_instances` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tolerance` [INFO] [stderr] --> src/main.rs:470:9 [INFO] [stderr] | [INFO] [stderr] 470 | let tolerance = 0.02; [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tolerance` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `render_pipeline_clone_brush` [INFO] [stderr] --> src/main.rs:907:9 [INFO] [stderr] | [INFO] [stderr] 907 | let render_pipeline_clone_brush = Rc::new(device.create_render_pipeline(&render_pipeline_descriptor_clone_brush)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_render_pipeline_clone_brush` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `render_pipeline_clone_brush_blit` [INFO] [stderr] --> src/main.rs:981:9 [INFO] [stderr] | [INFO] [stderr] 981 | let render_pipeline_clone_brush_blit = Rc::new(device.create_render_pipeline(&render_pipeline_descriptor_clone_brush_blit)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_render_pipeline_clone_brush_blit` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/main.rs:237:36 [INFO] [stderr] | [INFO] [stderr] 237 | fn new(brush_data: &BrushData, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder, bind_group_layout: &wgpu::BindGroupLayout, scene_ubo: &Buffer, scene_ubo_size: u64, render_pipeline_brush: &Rc, texture: &Texture) -> BrushRenderer { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/main.rs:321:26 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `device` [INFO] [stderr] --> src/main.rs:321:45 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `encoder` [INFO] [stderr] --> src/main.rs:321:62 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vbo_size` [INFO] [stderr] --> src/main.rs:363:19 [INFO] [stderr] | [INFO] [stderr] 363 | let (vbo, vbo_size) = create_buffer_via_transfer(device, encoder, &geometry.vertices, wgpu::BufferUsage::VERTEX, "Document VBO"); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vbo_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ibo_size` [INFO] [stderr] --> src/main.rs:377:19 [INFO] [stderr] | [INFO] [stderr] 377 | let (ibo, ibo_size) = create_buffer_via_transfer(device, encoder, &indices, wgpu::BufferUsage::INDEX, "Document IBO"); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ibo_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/gui.rs:346:26 [INFO] [stderr] | [INFO] [stderr] 346 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) {} [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/gui.rs:346:54 [INFO] [stderr] | [INFO] [stderr] 346 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) {} [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/gui.rs:347:25 [INFO] [stderr] | [INFO] [stderr] 347 | fn input(&mut self, context: &mut WidgetContext, input: &mut InputManager) {} [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `input` [INFO] [stderr] --> src/gui.rs:347:60 [INFO] [stderr] | [INFO] [stderr] 347 | fn input(&mut self, context: &mut WidgetContext, input: &mut InputManager) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `root` [INFO] [stderr] --> src/gui.rs:31:26 [INFO] [stderr] | [INFO] [stderr] 31 | fn render(&mut self, root: &mut RootWrapper, document: &mut Document, view: &CanvasView) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_root` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/gui.rs:310:29 [INFO] [stderr] | [INFO] [stderr] 310 | pub fn input(&mut self, ui_document: &mut Document, input: &mut InputManager) { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/brush_editor.rs:37:30 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn update(&mut self, ui_document: &mut Document, document: &mut Document, view: &CanvasView, input: &mut InputManager, tool: &ToolType) { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `next` [INFO] [stderr] --> src/path_editor.rs:149:34 [INFO] [stderr] | [INFO] [stderr] 149 | .filter(|next| point_set.contains(&vertex_ref2)) [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_next` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/path_editor.rs:486:18 [INFO] [stderr] | [INFO] [stderr] 486 | for (i, &p) in samples.iter().enumerate() { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:83:34 [INFO] [stderr] | [INFO] [stderr] 83 | fn on_change_tool(&mut self, context: &mut WidgetContext, ev: &ToolSelected) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:117:25 [INFO] [stderr] | [INFO] [stderr] 117 | fn mount(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/toolbar.rs:120:54 [INFO] [stderr] | [INFO] [stderr] 120 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:133:26 [INFO] [stderr] | [INFO] [stderr] 133 | fn update(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:184:26 [INFO] [stderr] | [INFO] [stderr] 184 | fn update(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/geometry_utilities.rs:231:5 [INFO] [stderr] | [INFO] [stderr] 231 | mut distance: f32, [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: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:538:18 [INFO] [stderr] | [INFO] [stderr] 538 | let (device, mut queue) = task::block_on(adapter.request_device(&wgpu::DeviceDescriptor { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `point_at_distance_binary_search` [INFO] [stderr] --> src/geometry_utilities.rs:194:4 [INFO] [stderr] | [INFO] [stderr] 194 | fn point_at_distance_binary_search(c: &CubicBez, distance_from_start: f64, accuracy: f64) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `PathClearanceGrid` [INFO] [stderr] --> src/geometry_utilities.rs:830:8 [INFO] [stderr] | [INFO] [stderr] 830 | struct PathClearanceGrid<'a, U> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/geometry_utilities.rs:837:5 [INFO] [stderr] | [INFO] [stderr] 837 | fn new(clearance: f32, bounds: euclid::Rect) -> PathClearanceGrid<'a, U> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add` [INFO] [stderr] --> src/geometry_utilities.rs:849:5 [INFO] [stderr] | [INFO] [stderr] 849 | fn add(point: ImmutablePathPoint<'a>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `primitive_ubo` [INFO] [stderr] --> src/main.rs:138:5 [INFO] [stderr] | [INFO] [stderr] 138 | primitive_ubo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `brush_renderer` [INFO] [stderr] --> src/main.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | brush_renderer: BrushRenderer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `vbo` [INFO] [stderr] --> src/main.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | vbo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `ibo` [INFO] [stderr] --> src/main.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | ibo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `index_buffer_length` [INFO] [stderr] --> src/main.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | index_buffer_length: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `bind_group` [INFO] [stderr] --> src/main.rs:150:5 [INFO] [stderr] | [INFO] [stderr] 150 | bind_group: BindGroup, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `render_pipeline` [INFO] [stderr] --> src/main.rs:151:5 [INFO] [stderr] | [INFO] [stderr] 151 | render_pipeline: Rc, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `dummy` [INFO] [stderr] --> src/main.rs:191:5 [INFO] [stderr] | [INFO] [stderr] 191 | dummy: i32, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `update` [INFO] [stderr] --> src/main.rs:321:5 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `render` [INFO] [stderr] --> src/main.rs:334:5 [INFO] [stderr] | [INFO] [stderr] 334 | fn render<'a>(&'a self, pass: &mut RenderPass<'a>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `buffer` [INFO] [stderr] --> src/main.rs:1258:5 [INFO] [stderr] | [INFO] [stderr] 1258 | buffer: wgpu::Texture, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `PointerEvent` [INFO] [stderr] --> src/gui.rs:43:6 [INFO] [stderr] | [INFO] [stderr] 43 | enum PointerEvent { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `version` [INFO] [stderr] --> src/gui.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | version: u32, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BrushVertexAttrs` [INFO] [stderr] --> src/brush_editor.rs:80:8 [INFO] [stderr] | [INFO] [stderr] 80 | struct BrushVertexAttrs { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BrushSubpathAttrs` [INFO] [stderr] --> src/brush_editor.rs:85:8 [INFO] [stderr] | [INFO] [stderr] 85 | struct BrushSubpathAttrs { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `ClosestInSelection` [INFO] [stderr] --> src/path_editor.rs:49:12 [INFO] [stderr] | [INFO] [stderr] 49 | pub struct ClosestInSelection { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `ClosestItemInSelection` [INFO] [stderr] --> src/path_editor.rs:54:10 [INFO] [stderr] | [INFO] [stderr] 54 | pub enum ClosestItemInSelection { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `move_limit` should have an upper case name [INFO] [stderr] --> src/geometry_utilities.rs:239:11 [INFO] [stderr] | [INFO] [stderr] 239 | const move_limit: f32 = 0.2; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to upper case: `MOVE_LIMIT` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 78 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1m 06s [INFO] running `"docker" "inspect" "39970ec74a3987270c46fddf28fa9360c5a2751dfb1564a770d41bb2f7550cd8"` [INFO] running `"docker" "rm" "-f" "39970ec74a3987270c46fddf28fa9360c5a2751dfb1564a770d41bb2f7550cd8"` [INFO] [stdout] 39970ec74a3987270c46fddf28fa9360c5a2751dfb1564a770d41bb2f7550cd8 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+28742a1146f10a4f09369baad027a464acb7a766" "test" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 5c84a714707c8790b4e69b11f48827902f6fe9c2e276cc5c28c35171de902f56 [INFO] running `"docker" "start" "-a" "5c84a714707c8790b4e69b11f48827902f6fe9c2e276cc5c28c35171de902f56"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] warning: unused import: `kurbo::common::GAUSS_LEGENDRE_COEFFS_5` [INFO] [stderr] --> src/geometry_utilities.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use kurbo::common::GAUSS_LEGENDRE_COEFFS_5; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `kurbo::common::GAUSS_LEGENDRE_COEFFS_3` [INFO] [stderr] --> src/geometry_utilities.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use kurbo::common::GAUSS_LEGENDRE_COEFFS_3; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Hash` [INFO] [stderr] --> src/path.rs:3:17 [INFO] [stderr] | [INFO] [stderr] 3 | use std::hash::{Hash, Hasher}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `FillTessellator` [INFO] [stderr] --> src/main.rs:6:39 [INFO] [stderr] | [INFO] [stderr] 6 | use lyon::tessellation::{FillOptions, FillTessellator}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `euclid` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use euclid; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HashMap`, `HashSet` [INFO] [stderr] --> src/main.rs:10:24 [INFO] [stderr] | [INFO] [stderr] 10 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `VectorFieldPrimitive`, `VectorField`, `poisson_disc_sampling`, `sqr_distance_bezier_point_binary`, `sqr_distance_bezier_point_lower_bound`, `sqr_distance_bezier_point` [INFO] [stderr] --> src/main.rs:23:33 [INFO] [stderr] | [INFO] [stderr] 23 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive, ParamCurveDistanceEval}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `CapturedClick`, `CircleShape` [INFO] [stderr] --> src/main.rs:24:20 [INFO] [stderr] | [INFO] [stderr] 24 | use crate::input::{CapturedClick, CircleShape, InputManager, KeyCombination}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ControlPointReference`, `MutableReferenceResolver`, `PathReference`, `SelectionReference` [INFO] [stderr] --> src/main.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 28 | VertexReference, PathReference [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `RefCell`, `RefMut`, `Ref` [INFO] [stderr] --> src/main.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | use std::cell::{RefCell, RefMut, Ref}; [INFO] [stderr] | ^^^^^^^ ^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Rem` [INFO] [stderr] --> src/main.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | use std::ops::Rem; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `palette::Srgba` [INFO] [stderr] --> src/main.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | use palette::Srgba; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lyon::math::*` [INFO] [stderr] --> src/brush_editor.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use lyon::math::*; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/brush_editor.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `VectorFieldPrimitive`, `VectorField`, `poisson_disc_sampling`, `sqr_distance_bezier_point_binary`, `sqr_distance_bezier_point_lower_bound`, `sqr_distance_bezier_point` [INFO] [stderr] --> src/brush_editor.rs:8:33 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ControlPointReference`, `MutableReferenceResolver`, `PathCollection`, `ReferenceResolver`, `SelectionReference`, `VertexReference` [INFO] [stderr] --> src/brush_editor.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 11 | VertexReference, PathReference [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HashMap`, `HashSet` [INFO] [stderr] --> src/brush_editor.rs:13:24 [INFO] [stderr] | [INFO] [stderr] 13 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `SeedableRng`, `rngs::StdRng` [INFO] [stderr] --> src/brush_editor.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | use rand::{rngs::StdRng, SeedableRng}; [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sqr_distance_bezier_point` [INFO] [stderr] --> src/path_editor.rs:7:56 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `HashMap` [INFO] [stderr] --> src/path_editor.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lyon::path::builder` [INFO] [stderr] --> src/main.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use lyon::path::builder::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::hash::Hash` [INFO] [stderr] --> src/main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::hash::Hash; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ReferenceResolver` [INFO] [stderr] --> src/main.rs:27:70 [INFO] [stderr] | [INFO] [stderr] 27 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t3` [INFO] [stderr] --> src/geometry_utilities.rs:302:9 [INFO] [stderr] | [INFO] [stderr] 302 | let t3 = t1 * t1 * t1; [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t3` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `clearance` [INFO] [stderr] --> src/geometry_utilities.rs:812:64 [INFO] [stderr] | [INFO] [stderr] 812 | pub fn trace_with_clearance(&self, mut point: CanvasPoint, clearance: f32) -> Vec { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clearance` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `point` [INFO] [stderr] --> src/geometry_utilities.rs:849:12 [INFO] [stderr] | [INFO] [stderr] 849 | fn add(point: ImmutablePathPoint<'a>) { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_point` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index` [INFO] [stderr] --> src/path.rs:386:37 [INFO] [stderr] | [INFO] [stderr] 386 | pub fn remove<'a>(&'a mut self, index: usize) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t0` [INFO] [stderr] --> src/main.rs:1066:13 [INFO] [stderr] | [INFO] [stderr] 1066 | let t0 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t0` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t1` [INFO] [stderr] --> src/main.rs:1119:13 [INFO] [stderr] | [INFO] [stderr] 1119 | let t1 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t3` [INFO] [stderr] --> src/main.rs:1128:13 [INFO] [stderr] | [INFO] [stderr] 1128 | let t3 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t3` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `num_instances` [INFO] [stderr] --> src/main.rs:469:9 [INFO] [stderr] | [INFO] [stderr] 469 | let num_instances: u32 = PRIM_BUFFER_LEN as u32 - 1; [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_instances` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tolerance` [INFO] [stderr] --> src/main.rs:470:9 [INFO] [stderr] | [INFO] [stderr] 470 | let tolerance = 0.02; [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tolerance` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `render_pipeline_clone_brush` [INFO] [stderr] --> src/main.rs:907:9 [INFO] [stderr] | [INFO] [stderr] 907 | let render_pipeline_clone_brush = Rc::new(device.create_render_pipeline(&render_pipeline_descriptor_clone_brush)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_render_pipeline_clone_brush` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `render_pipeline_clone_brush_blit` [INFO] [stderr] --> src/main.rs:981:9 [INFO] [stderr] | [INFO] [stderr] 981 | let render_pipeline_clone_brush_blit = Rc::new(device.create_render_pipeline(&render_pipeline_descriptor_clone_brush_blit)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_render_pipeline_clone_brush_blit` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/main.rs:237:36 [INFO] [stderr] | [INFO] [stderr] 237 | fn new(brush_data: &BrushData, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder, bind_group_layout: &wgpu::BindGroupLayout, scene_ubo: &Buffer, scene_ubo_size: u64, render_pipeline_brush: &Rc, texture: &Texture) -> BrushRenderer { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/main.rs:321:26 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused import: `kurbo::common::GAUSS_LEGENDRE_COEFFS_5` [INFO] [stderr] --> src/geometry_utilities.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use kurbo::common::GAUSS_LEGENDRE_COEFFS_5; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `kurbo::common::GAUSS_LEGENDRE_COEFFS_3` [INFO] [stderr] --> src/geometry_utilities.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use kurbo::common::GAUSS_LEGENDRE_COEFFS_3; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `kurbo::ParamCurveArclen` [INFO] [stderr] --> src/geometry_utilities.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use kurbo::ParamCurveArclen; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Hash` [INFO] [stderr] --> src/path.rs:3:17 [INFO] [stderr] | [INFO] [stderr] 3 | use std::hash::{Hash, Hasher}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `FillTessellator` [INFO] [stderr] --> src/main.rs:6:39 [INFO] [stderr] | [INFO] [stderr] 6 | use lyon::tessellation::{FillOptions, FillTessellator}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `euclid` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use euclid; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HashMap`, `HashSet` [INFO] [stderr] --> src/main.rs:10:24 [INFO] [stderr] | [INFO] [stderr] 10 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `VectorFieldPrimitive`, `VectorField`, `poisson_disc_sampling`, `sqr_distance_bezier_point_binary`, `sqr_distance_bezier_point_lower_bound`, `sqr_distance_bezier_point` [INFO] [stderr] --> src/main.rs:23:33 [INFO] [stderr] | [INFO] [stderr] 23 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive, ParamCurveDistanceEval}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `CapturedClick`, `CircleShape` [INFO] [stderr] --> src/main.rs:24:20 [INFO] [stderr] | [INFO] [stderr] 24 | use crate::input::{CapturedClick, CircleShape, InputManager, KeyCombination}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ControlPointReference`, `MutableReferenceResolver`, `PathReference`, `SelectionReference` [INFO] [stderr] --> src/main.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 28 | VertexReference, PathReference [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `RefCell`, `RefMut`, `Ref` [INFO] [stderr] --> src/main.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | use std::cell::{RefCell, RefMut, Ref}; [INFO] [stderr] | ^^^^^^^ ^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Rem` [INFO] [stderr] --> src/main.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | use std::ops::Rem; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `palette::Srgba` [INFO] [stderr] --> src/main.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | use palette::Srgba; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lyon::math::*` [INFO] [stderr] --> src/brush_editor.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use lyon::math::*; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/brush_editor.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `VectorFieldPrimitive`, `VectorField`, `poisson_disc_sampling`, `sqr_distance_bezier_point_binary`, `sqr_distance_bezier_point_lower_bound`, `sqr_distance_bezier_point` [INFO] [stderr] --> src/brush_editor.rs:8:33 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ControlPointReference`, `MutableReferenceResolver`, `PathCollection`, `ReferenceResolver`, `SelectionReference`, `VertexReference` [INFO] [stderr] --> src/brush_editor.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 11 | VertexReference, PathReference [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HashMap`, `HashSet` [INFO] [stderr] --> src/brush_editor.rs:13:24 [INFO] [stderr] | [INFO] [stderr] 13 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `SeedableRng`, `rngs::StdRng` [INFO] [stderr] --> src/brush_editor.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | use rand::{rngs::StdRng, SeedableRng}; [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sqr_distance_bezier_point` [INFO] [stderr] --> src/path_editor.rs:7:56 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::geometry_utilities::{poisson_disc_sampling, sqr_distance_bezier_point, sqr_distance_bezier_point_binary, sqr_distance_bezier_point_lower_bound, VectorField, VectorFieldPrimitive}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `HashMap` [INFO] [stderr] --> src/path_editor.rs:12:24 [INFO] [stderr] | [INFO] [stderr] 12 | use std::collections::{HashMap, HashSet}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lyon::path::builder` [INFO] [stderr] --> src/main.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use lyon::path::builder::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::hash::Hash` [INFO] [stderr] --> src/main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::hash::Hash; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `device` [INFO] [stderr] --> src/main.rs:321:45 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `encoder` [INFO] [stderr] --> src/main.rs:321:62 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vbo_size` [INFO] [stderr] --> src/main.rs:363:19 [INFO] [stderr] | [INFO] [stderr] 363 | let (vbo, vbo_size) = create_buffer_via_transfer(device, encoder, &geometry.vertices, wgpu::BufferUsage::VERTEX, "Document VBO"); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vbo_size` [INFO] [stderr] [INFO] [stderr] warning: unused import: `ReferenceResolver` [INFO] [stderr] --> src/main.rs:27:70 [INFO] [stderr] | [INFO] [stderr] 27 | ControlPointReference, MutableReferenceResolver, PathCollection, ReferenceResolver, SelectionReference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t3` [INFO] [stderr] --> src/geometry_utilities.rs:302:9 [INFO] [stderr] | [INFO] [stderr] 302 | let t3 = t1 * t1 * t1; [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t3` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `clearance` [INFO] [stderr] --> src/geometry_utilities.rs:812:64 [INFO] [stderr] | [INFO] [stderr] 812 | pub fn trace_with_clearance(&self, mut point: CanvasPoint, clearance: f32) -> Vec { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clearance` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `point` [INFO] [stderr] --> src/geometry_utilities.rs:849:12 [INFO] [stderr] | [INFO] [stderr] 849 | fn add(point: ImmutablePathPoint<'a>) { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_point` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ibo_size` [INFO] [stderr] --> src/main.rs:377:19 [INFO] [stderr] | [INFO] [stderr] 377 | let (ibo, ibo_size) = create_buffer_via_transfer(device, encoder, &indices, wgpu::BufferUsage::INDEX, "Document IBO"); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ibo_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/gui.rs:346:26 [INFO] [stderr] | [INFO] [stderr] 346 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) {} [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/gui.rs:346:54 [INFO] [stderr] | [INFO] [stderr] 346 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) {} [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index` [INFO] [stderr] --> src/path.rs:386:37 [INFO] [stderr] | [INFO] [stderr] 386 | pub fn remove<'a>(&'a mut self, index: usize) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t0` [INFO] [stderr] --> src/main.rs:1066:13 [INFO] [stderr] | [INFO] [stderr] 1066 | let t0 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t0` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t1` [INFO] [stderr] --> src/main.rs:1119:13 [INFO] [stderr] | [INFO] [stderr] 1119 | let t1 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/gui.rs:347:25 [INFO] [stderr] | [INFO] [stderr] 347 | fn input(&mut self, context: &mut WidgetContext, input: &mut InputManager) {} [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `input` [INFO] [stderr] --> src/gui.rs:347:60 [INFO] [stderr] | [INFO] [stderr] 347 | fn input(&mut self, context: &mut WidgetContext, input: &mut InputManager) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `root` [INFO] [stderr] --> src/gui.rs:31:26 [INFO] [stderr] | [INFO] [stderr] 31 | fn render(&mut self, root: &mut RootWrapper, document: &mut Document, view: &CanvasView) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_root` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t3` [INFO] [stderr] --> src/main.rs:1128:13 [INFO] [stderr] | [INFO] [stderr] 1128 | let t3 = Instant::now(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t3` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `num_instances` [INFO] [stderr] --> src/main.rs:469:9 [INFO] [stderr] | [INFO] [stderr] 469 | let num_instances: u32 = PRIM_BUFFER_LEN as u32 - 1; [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_instances` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tolerance` [INFO] [stderr] --> src/main.rs:470:9 [INFO] [stderr] | [INFO] [stderr] 470 | let tolerance = 0.02; [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tolerance` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/gui.rs:310:29 [INFO] [stderr] | [INFO] [stderr] 310 | pub fn input(&mut self, ui_document: &mut Document, input: &mut InputManager) { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/brush_editor.rs:37:30 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn update(&mut self, ui_document: &mut Document, document: &mut Document, view: &CanvasView, input: &mut InputManager, tool: &ToolType) { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `next` [INFO] [stderr] --> src/path_editor.rs:149:34 [INFO] [stderr] | [INFO] [stderr] 149 | .filter(|next| point_set.contains(&vertex_ref2)) [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_next` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `render_pipeline_clone_brush` [INFO] [stderr] --> src/main.rs:907:9 [INFO] [stderr] | [INFO] [stderr] 907 | let render_pipeline_clone_brush = Rc::new(device.create_render_pipeline(&render_pipeline_descriptor_clone_brush)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_render_pipeline_clone_brush` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `render_pipeline_clone_brush_blit` [INFO] [stderr] --> src/main.rs:981:9 [INFO] [stderr] | [INFO] [stderr] 981 | let render_pipeline_clone_brush_blit = Rc::new(device.create_render_pipeline(&render_pipeline_descriptor_clone_brush_blit)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_render_pipeline_clone_brush_blit` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/main.rs:237:36 [INFO] [stderr] | [INFO] [stderr] 237 | fn new(brush_data: &BrushData, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder, bind_group_layout: &wgpu::BindGroupLayout, scene_ubo: &Buffer, scene_ubo_size: u64, render_pipeline_brush: &Rc, texture: &Texture) -> BrushRenderer { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/path_editor.rs:486:18 [INFO] [stderr] | [INFO] [stderr] 486 | for (i, &p) in samples.iter().enumerate() { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:83:34 [INFO] [stderr] | [INFO] [stderr] 83 | fn on_change_tool(&mut self, context: &mut WidgetContext, ev: &ToolSelected) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:117:25 [INFO] [stderr] | [INFO] [stderr] 117 | fn mount(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/main.rs:321:26 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/toolbar.rs:120:54 [INFO] [stderr] | [INFO] [stderr] 120 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `device` [INFO] [stderr] --> src/main.rs:321:45 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `encoder` [INFO] [stderr] --> src/main.rs:321:62 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:133:26 [INFO] [stderr] | [INFO] [stderr] 133 | fn update(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:184:26 [INFO] [stderr] | [INFO] [stderr] 184 | fn update(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/geometry_utilities.rs:231:5 [INFO] [stderr] | [INFO] [stderr] 231 | mut distance: f32, [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: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:538:18 [INFO] [stderr] | [INFO] [stderr] 538 | let (device, mut queue) = task::block_on(adapter.request_device(&wgpu::DeviceDescriptor { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vbo_size` [INFO] [stderr] --> src/main.rs:363:19 [INFO] [stderr] | [INFO] [stderr] 363 | let (vbo, vbo_size) = create_buffer_via_transfer(device, encoder, &geometry.vertices, wgpu::BufferUsage::VERTEX, "Document VBO"); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vbo_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ibo_size` [INFO] [stderr] --> src/main.rs:377:19 [INFO] [stderr] | [INFO] [stderr] 377 | let (ibo, ibo_size) = create_buffer_via_transfer(device, encoder, &indices, wgpu::BufferUsage::INDEX, "Document IBO"); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ibo_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/gui.rs:346:26 [INFO] [stderr] | [INFO] [stderr] 346 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) {} [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `point_at_distance_binary_search` [INFO] [stderr] --> src/geometry_utilities.rs:194:4 [INFO] [stderr] | [INFO] [stderr] 194 | fn point_at_distance_binary_search(c: &CubicBez, distance_from_start: f64, accuracy: f64) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/gui.rs:346:54 [INFO] [stderr] | [INFO] [stderr] 346 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) {} [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `PathClearanceGrid` [INFO] [stderr] --> src/geometry_utilities.rs:830:8 [INFO] [stderr] | [INFO] [stderr] 830 | struct PathClearanceGrid<'a, U> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/geometry_utilities.rs:837:5 [INFO] [stderr] | [INFO] [stderr] 837 | fn new(clearance: f32, bounds: euclid::Rect) -> PathClearanceGrid<'a, U> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/gui.rs:347:25 [INFO] [stderr] | [INFO] [stderr] 347 | fn input(&mut self, context: &mut WidgetContext, input: &mut InputManager) {} [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `input` [INFO] [stderr] --> src/gui.rs:347:60 [INFO] [stderr] | [INFO] [stderr] 347 | fn input(&mut self, context: &mut WidgetContext, input: &mut InputManager) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add` [INFO] [stderr] --> src/geometry_utilities.rs:849:5 [INFO] [stderr] | [INFO] [stderr] 849 | fn add(point: ImmutablePathPoint<'a>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `primitive_ubo` [INFO] [stderr] --> src/main.rs:138:5 [INFO] [stderr] | [INFO] [stderr] 138 | primitive_ubo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `brush_renderer` [INFO] [stderr] --> src/main.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | brush_renderer: BrushRenderer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `root` [INFO] [stderr] --> src/gui.rs:31:26 [INFO] [stderr] | [INFO] [stderr] 31 | fn render(&mut self, root: &mut RootWrapper, document: &mut Document, view: &CanvasView) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_root` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/gui.rs:310:29 [INFO] [stderr] | [INFO] [stderr] 310 | pub fn input(&mut self, ui_document: &mut Document, input: &mut InputManager) { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: field is never read: `vbo` [INFO] [stderr] --> src/main.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | vbo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `ibo` [INFO] [stderr] --> src/main.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | ibo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `index_buffer_length` [INFO] [stderr] --> src/main.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | index_buffer_length: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ui_document` [INFO] [stderr] --> src/brush_editor.rs:37:30 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn update(&mut self, ui_document: &mut Document, document: &mut Document, view: &CanvasView, input: &mut InputManager, tool: &ToolType) { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ui_document` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `next` [INFO] [stderr] --> src/path_editor.rs:149:34 [INFO] [stderr] | [INFO] [stderr] 149 | .filter(|next| point_set.contains(&vertex_ref2)) [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_next` [INFO] [stderr] [INFO] [stderr] warning: field is never read: `bind_group` [INFO] [stderr] --> src/main.rs:150:5 [INFO] [stderr] | [INFO] [stderr] 150 | bind_group: BindGroup, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `render_pipeline` [INFO] [stderr] --> src/main.rs:151:5 [INFO] [stderr] | [INFO] [stderr] 151 | render_pipeline: Rc, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `dummy` [INFO] [stderr] --> src/main.rs:191:5 [INFO] [stderr] | [INFO] [stderr] 191 | dummy: i32, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/path_editor.rs:486:18 [INFO] [stderr] | [INFO] [stderr] 486 | for (i, &p) in samples.iter().enumerate() { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:83:34 [INFO] [stderr] | [INFO] [stderr] 83 | fn on_change_tool(&mut self, context: &mut WidgetContext, ev: &ToolSelected) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:117:25 [INFO] [stderr] | [INFO] [stderr] 117 | fn mount(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: method is never used: `update` [INFO] [stderr] --> src/main.rs:321:5 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `render` [INFO] [stderr] --> src/main.rs:334:5 [INFO] [stderr] | [INFO] [stderr] 334 | fn render<'a>(&'a self, pass: &mut RenderPass<'a>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `buffer` [INFO] [stderr] --> src/main.rs:1258:5 [INFO] [stderr] | [INFO] [stderr] 1258 | buffer: wgpu::Texture, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `PointerEvent` [INFO] [stderr] --> src/gui.rs:43:6 [INFO] [stderr] | [INFO] [stderr] 43 | enum PointerEvent { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `view` [INFO] [stderr] --> src/toolbar.rs:120:54 [INFO] [stderr] | [INFO] [stderr] 120 | fn render(&mut self, ui_document: &mut Document, view: &CanvasView) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_view` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:133:26 [INFO] [stderr] | [INFO] [stderr] 133 | fn update(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: field is never read: `version` [INFO] [stderr] --> src/gui.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | version: u32, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BrushVertexAttrs` [INFO] [stderr] --> src/brush_editor.rs:80:8 [INFO] [stderr] | [INFO] [stderr] 80 | struct BrushVertexAttrs { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BrushSubpathAttrs` [INFO] [stderr] --> src/brush_editor.rs:85:8 [INFO] [stderr] | [INFO] [stderr] 85 | struct BrushSubpathAttrs { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `context` [INFO] [stderr] --> src/toolbar.rs:184:26 [INFO] [stderr] | [INFO] [stderr] 184 | fn update(&mut self, context: &mut WidgetContext) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/geometry_utilities.rs:231:5 [INFO] [stderr] | [INFO] [stderr] 231 | mut distance: f32, [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: struct is never constructed: `ClosestInSelection` [INFO] [stderr] --> src/path_editor.rs:49:12 [INFO] [stderr] | [INFO] [stderr] 49 | pub struct ClosestInSelection { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `ClosestItemInSelection` [INFO] [stderr] --> src/path_editor.rs:54:10 [INFO] [stderr] | [INFO] [stderr] 54 | pub enum ClosestItemInSelection { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `move_limit` should have an upper case name [INFO] [stderr] --> src/geometry_utilities.rs:239:11 [INFO] [stderr] | [INFO] [stderr] 239 | const move_limit: f32 = 0.2; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to upper case: `MOVE_LIMIT` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:538:18 [INFO] [stderr] | [INFO] [stderr] 538 | let (device, mut queue) = task::block_on(adapter.request_device(&wgpu::DeviceDescriptor { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `point_at_distance_binary_search` [INFO] [stderr] --> src/geometry_utilities.rs:194:4 [INFO] [stderr] | [INFO] [stderr] 194 | fn point_at_distance_binary_search(c: &CubicBez, distance_from_start: f64, accuracy: f64) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 78 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `PathClearanceGrid` [INFO] [stderr] --> src/geometry_utilities.rs:830:8 [INFO] [stderr] | [INFO] [stderr] 830 | struct PathClearanceGrid<'a, U> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/geometry_utilities.rs:837:5 [INFO] [stderr] | [INFO] [stderr] 837 | fn new(clearance: f32, bounds: euclid::Rect) -> PathClearanceGrid<'a, U> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add` [INFO] [stderr] --> src/geometry_utilities.rs:849:5 [INFO] [stderr] | [INFO] [stderr] 849 | fn add(point: ImmutablePathPoint<'a>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `primitive_ubo` [INFO] [stderr] --> src/main.rs:138:5 [INFO] [stderr] | [INFO] [stderr] 138 | primitive_ubo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `brush_renderer` [INFO] [stderr] --> src/main.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | brush_renderer: BrushRenderer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `vbo` [INFO] [stderr] --> src/main.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | vbo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `ibo` [INFO] [stderr] --> src/main.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | ibo: Buffer, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `index_buffer_length` [INFO] [stderr] --> src/main.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | index_buffer_length: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `bind_group` [INFO] [stderr] --> src/main.rs:150:5 [INFO] [stderr] | [INFO] [stderr] 150 | bind_group: BindGroup, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `render_pipeline` [INFO] [stderr] --> src/main.rs:151:5 [INFO] [stderr] | [INFO] [stderr] 151 | render_pipeline: Rc, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `dummy` [INFO] [stderr] --> src/main.rs:191:5 [INFO] [stderr] | [INFO] [stderr] 191 | dummy: i32, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `update` [INFO] [stderr] --> src/main.rs:321:5 [INFO] [stderr] | [INFO] [stderr] 321 | fn update(&mut self, view: &CanvasView, device: &Device, encoder: &mut CommandEncoder) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `render` [INFO] [stderr] --> src/main.rs:334:5 [INFO] [stderr] | [INFO] [stderr] 334 | fn render<'a>(&'a self, pass: &mut RenderPass<'a>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `buffer` [INFO] [stderr] --> src/main.rs:1258:5 [INFO] [stderr] | [INFO] [stderr] 1258 | buffer: wgpu::Texture, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `PointerEvent` [INFO] [stderr] --> src/gui.rs:43:6 [INFO] [stderr] | [INFO] [stderr] 43 | enum PointerEvent { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `version` [INFO] [stderr] --> src/gui.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | version: u32, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BrushVertexAttrs` [INFO] [stderr] --> src/brush_editor.rs:80:8 [INFO] [stderr] | [INFO] [stderr] 80 | struct BrushVertexAttrs { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `BrushSubpathAttrs` [INFO] [stderr] --> src/brush_editor.rs:85:8 [INFO] [stderr] | [INFO] [stderr] 85 | struct BrushSubpathAttrs { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `ClosestInSelection` [INFO] [stderr] --> src/path_editor.rs:49:12 [INFO] [stderr] | [INFO] [stderr] 49 | pub struct ClosestInSelection { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `ClosestItemInSelection` [INFO] [stderr] --> src/path_editor.rs:54:10 [INFO] [stderr] | [INFO] [stderr] 54 | pub enum ClosestItemInSelection { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `move_limit` should have an upper case name [INFO] [stderr] --> src/geometry_utilities.rs:239:11 [INFO] [stderr] | [INFO] [stderr] 239 | const move_limit: f32 = 0.2; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to upper case: `MOVE_LIMIT` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 79 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused import: `graphica::main` [INFO] [stderr] --> src/bin/main.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use graphica::main; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/bin/main.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.92s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/graphica-1cf24d7da6b99794 [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test path::tests::test_sanity ... ok [INFO] [stdout] test toolbar::test_gui ... ok [INFO] [stdout] test path::tests::test_iter ... ok [INFO] [stdout] test geometry_utilities::test_find_t_at_distance ... ok [INFO] [stderr] Running /opt/rustwide/target/debug/deps/graphica-ec276b1c2cba8fc9 [INFO] [stdout] [INFO] [stderr] Doc-tests graphica [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `"docker" "inspect" "5c84a714707c8790b4e69b11f48827902f6fe9c2e276cc5c28c35171de902f56"` [INFO] running `"docker" "rm" "-f" "5c84a714707c8790b4e69b11f48827902f6fe9c2e276cc5c28c35171de902f56"` [INFO] [stdout] 5c84a714707c8790b4e69b11f48827902f6fe9c2e276cc5c28c35171de902f56