[INFO] cloning repository https://github.com/Ankushui18/X-Native2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ankushui18/X-Native2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAnkushui18%2FX-Native2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAnkushui18%2FX-Native2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 20b83b1433bf1e3ce63afdb7a6e4a232ea00302b
[INFO] checking Ankushui18/X-Native2 against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAnkushui18%2FX-Native2" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Ankushui18/X-Native2
[INFO] finished tweaking git repo https://github.com/Ankushui18/X-Native2
[INFO] tweaked toml for git repo https://github.com/Ankushui18/X-Native2 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Ankushui18/X-Native2 on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Ankushui18/X-Native2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 53c72cd764e7ff8ae55ef913d9859658daaca54311ec78fe733a3ae213acafc8
[INFO] running `Command { std: "docker" "start" "53c72cd764e7ff8ae55ef913d9859658daaca54311ec78fe733a3ae213acafc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "53c72cd764e7ff8ae55ef913d9859658daaca54311ec78fe733a3ae213acafc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "53c72cd764e7ff8ae55ef913d9859658daaca54311ec78fe733a3ae213acafc8" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "53c72cd764e7ff8ae55ef913d9859658daaca54311ec78fe733a3ae213acafc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "53c72cd764e7ff8ae55ef913d9859658daaca54311ec78fe733a3ae213acafc8" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling ash v0.37.3+1.3.251
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]     Checking gpu-alloc-types v0.3.1
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.2
[INFO] [stderr]     Checking unicode-xid v0.2.6
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking hexf-parse v0.2.1
[INFO] [stderr]     Checking wgpu-types v0.19.2
[INFO] [stderr]     Checking glow v0.13.1
[INFO] [stderr]     Checking font-types v0.4.3
[INFO] [stderr]    Compiling wgpu-hal v0.19.5
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling wgpu-core v0.19.4
[INFO] [stderr]    Compiling wgpu v0.19.4
[INFO] [stderr]     Checking euclid v0.22.14
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking kurbo v0.11.3
[INFO] [stderr]     Checking gpu-alloc v0.6.2
[INFO] [stderr]     Checking svg_fmt v0.4.5
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking unicode-properties v0.1.4
[INFO] [stderr]     Checking unicode-bidi-mirroring v0.2.0
[INFO] [stderr]     Checking unicode-script v0.5.8
[INFO] [stderr]     Checking unicode-ccc v0.2.0
[INFO] [stderr]     Checking read-fonts v0.15.6
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]     Checking ttf-parser v0.19.2
[INFO] [stderr]     Checking unicode-bidi v0.3.18
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking futures-intrusive v0.5.0
[INFO] [stderr]     Checking guillotiere v0.6.2
[INFO] [stderr]     Checking jpeg-encoder v0.7.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]     Checking gpu-descriptor v0.2.4
[INFO] [stderr]     Checking wayland-sys v0.31.11
[INFO] [stderr]    Compiling wayland-scanner v0.31.11
[INFO] [stderr]     Checking wayland-backend v0.3.17
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling smithay-client-toolkit v0.18.1
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking peniko v0.1.1
[INFO] [stderr]     Checking sha1 v0.10.7
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking async-io v2.6.0
[INFO] [stderr]     Checking async-executor v1.14.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking xdg-home v1.3.0
[INFO] [stderr]    Compiling winit v0.29.15
[INFO] [stderr]     Checking blocking v1.7.0
[INFO] [stderr]    Compiling rfd v0.14.1
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking rand v0.8.8
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking async-fs v2.2.0
[INFO] [stderr]     Checking pollster v0.3.0
[INFO] [stderr]     Checking async-net v2.0.0
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking wayland-client v0.31.15
[INFO] [stderr]     Checking wayland-protocols v0.31.2
[INFO] [stderr]     Checking wayland-cursor v0.31.14
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zvariant_utils v2.1.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling zvariant_derive v4.2.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zbus_macros v4.4.0
[INFO] [stderr]     Checking skrifa v0.15.5
[INFO] [stderr]    Compiling bytemuck_derive v1.12.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling serde_repr v0.1.21
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking futures-util v0.3.34
[INFO] [stderr]     Checking naga v0.19.2
[INFO] [stderr]     Checking calloop v0.12.4
[INFO] [stderr]     Checking zerotrie v0.2.5
[INFO] [stderr]     Checking zerovec v0.11.8
[INFO] [stderr]     Checking calloop-wayland-source v0.2.0
[INFO] [stderr]     Checking wayland-protocols-wlr v0.2.0
[INFO] [stderr]     Checking wayland-protocols-plasma v0.2.0
[INFO] [stderr]     Checking bytemuck v1.25.2
[INFO] [stderr]     Checking vello_encoding v0.1.0
[INFO] [stderr]     Checking rustybuzz v0.14.1
[INFO] [stderr]     Checking tiny-skia-path v0.12.0
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking tinystr v0.8.4
[INFO] [stderr]     Checking potential_utf v0.1.6
[INFO] [stderr]     Checking icu_collections v2.3.0
[INFO] [stderr]     Checking icu_locale_core v2.3.0
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking tiny-skia v0.12.0
[INFO] [stderr]     Checking icu_provider v2.3.1
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking icu_normalizer v2.3.0
[INFO] [stderr]     Checking icu_properties v2.3.0
[INFO] [stderr]     Checking sctk-adwaita v0.8.3
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking zvariant v4.2.0
[INFO] [stderr]     Checking zbus_names v3.0.0
[INFO] [stderr]     Checking zbus v4.4.0
[INFO] [stderr]     Checking ashpd v0.8.2
[INFO] [stderr]     Checking vello v0.1.0
[INFO] [stderr]     Checking x-core v0.34.0 (/opt/rustwide/workdir/crates/x-core)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-core/src/auto_layout.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let mut mains: Vec<f64> = flow.iter().map(|&i| {
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking x-text v0.34.0 (/opt/rustwide/workdir/crates/x-text)
[INFO] [stderr]     Checking x-components v0.40.0 (/opt/rustwide/workdir/crates/x-components)
[INFO] [stderr]     Checking x-format v0.34.0 (/opt/rustwide/workdir/crates/x-format)
[INFO] [stderr]     Checking x-editor v0.34.0 (/opt/rustwide/workdir/crates/x-editor)
[INFO] [stdout] warning: unused import: `lower`
[INFO] [stdout]   --> crates/x-format/src/sketch.rs:28:24
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::import_ir::{lower, ImportDoc, ImportKind, ImportNode};
[INFO] [stdout]    |                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Point` and `Rect`
[INFO] [stdout]  --> crates/x-editor/src/commands.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::{Point, Rect};
[INFO] [stdout]   |                    ^^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Point` and `Rect`
[INFO] [stdout]  --> crates/x-editor/src/align.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::{Point, Rect};
[INFO] [stdout]   |                    ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vello::kurbo::Rect`
[INFO] [stdout]  --> crates/x-editor/src/constraints.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::Rect;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-core/src/auto_layout.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let mut mains: Vec<f64> = flow.iter().map(|&i| {
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking x-render v0.34.0 (/opt/rustwide/workdir/crates/x-render)
[INFO] [stderr]     Checking x-ui v0.34.0 (/opt/rustwide/workdir/crates/x-ui)
[INFO] [stdout] warning: unused imports: `Affine`, `Circle`, `Rect`, `RoundedRectRadii`, and `RoundedRect`
[INFO] [stdout]  --> crates/x-render/src/assets.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::{Affine, Circle, Rect, RoundedRect, RoundedRectRadii, Shape};
[INFO] [stdout]   |                    ^^^^^^  ^^^^^^  ^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Brush`, `Color`, `Fill`, `Gradient`, and `Mix`
[INFO] [stdout]  --> crates/x-render/src/assets.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use vello::peniko::{Blob, Brush, Color, Fill, Format, Gradient, Image, Mix};
[INFO] [stdout]   |                           ^^^^^  ^^^^^  ^^^^          ^^^^^^^^         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vello::Scene`
[INFO] [stdout]  --> crates/x-render/src/assets.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use vello::Scene;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x_core::*`
[INFO] [stdout]  --> crates/x-render/src/assets.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use x_core::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Blob`, `Format`, `Gradient`, `Image`, and `Mix`
[INFO] [stdout]  --> crates/x-render/src/scene.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use vello::peniko::{Blob, Brush, Color, Fill, Format, Gradient, Image, Mix};
[INFO] [stdout]   |                     ^^^^                      ^^^^^^  ^^^^^^^^  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/x-render/src/stress.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine`, `Circle`, `Rect`, `RoundedRectRadii`, `RoundedRect`, and `Shape`
[INFO] [stdout]  --> crates/x-render/src/stress.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::{Affine, Circle, Rect, RoundedRect, RoundedRectRadii, Shape};
[INFO] [stdout]   |                    ^^^^^^  ^^^^^^  ^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Blob`, `Brush`, `Fill`, `Format`, `Gradient`, `Image`, and `Mix`
[INFO] [stdout]  --> crates/x-render/src/stress.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use vello::peniko::{Blob, Brush, Color, Fill, Format, Gradient, Image, Mix};
[INFO] [stdout]   |                     ^^^^  ^^^^^         ^^^^  ^^^^^^  ^^^^^^^^  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vello::Scene`
[INFO] [stdout]  --> crates/x-render/src/stress.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use vello::Scene;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/x-render/src/sinks.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RenderCommand` and `RenderTree`
[INFO] [stdout]   --> crates/x-render/src/frame_cache.rs:19:36
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::ir::{build_render_tree, RenderCommand, RenderTree, VelloSink};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine`, `Circle`, `Rect`, `RoundedRectRadii`, and `RoundedRect`
[INFO] [stdout]  --> crates/x-render/src/assets.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::{Affine, Circle, Rect, RoundedRect, RoundedRectRadii, Shape};
[INFO] [stdout]   |                    ^^^^^^  ^^^^^^  ^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Brush`, `Color`, `Fill`, `Gradient`, and `Mix`
[INFO] [stdout]  --> crates/x-render/src/assets.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use vello::peniko::{Blob, Brush, Color, Fill, Format, Gradient, Image, Mix};
[INFO] [stdout]   |                           ^^^^^  ^^^^^  ^^^^          ^^^^^^^^         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vello::Scene`
[INFO] [stdout]  --> crates/x-render/src/assets.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use vello::Scene;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x_core::*`
[INFO] [stdout]  --> crates/x-render/src/assets.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use x_core::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Blob`, `Format`, `Gradient`, `Image`, and `Mix`
[INFO] [stdout]  --> crates/x-render/src/scene.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use vello::peniko::{Blob, Brush, Color, Fill, Format, Gradient, Image, Mix};
[INFO] [stdout]   |                     ^^^^                      ^^^^^^  ^^^^^^^^  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/x-render/src/stress.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine`, `Circle`, `Rect`, `RoundedRectRadii`, `RoundedRect`, and `Shape`
[INFO] [stdout]  --> crates/x-render/src/stress.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::{Affine, Circle, Rect, RoundedRect, RoundedRectRadii, Shape};
[INFO] [stdout]   |                    ^^^^^^  ^^^^^^  ^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Blob`, `Brush`, `Fill`, `Format`, `Gradient`, `Image`, and `Mix`
[INFO] [stdout]  --> crates/x-render/src/stress.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use vello::peniko::{Blob, Brush, Color, Fill, Format, Gradient, Image, Mix};
[INFO] [stdout]   |                     ^^^^  ^^^^^         ^^^^  ^^^^^^  ^^^^^^^^  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vello::Scene`
[INFO] [stdout]  --> crates/x-render/src/stress.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use vello::Scene;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/x-render/src/sinks.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x_core::*`
[INFO] [stdout]    --> crates/x-render/src/sinks.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 435 |     use x_core::*;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x_core::*`
[INFO] [stdout]    --> crates/x-render/src/sinks.rs:490:9
[INFO] [stdout]     |
[INFO] [stdout] 490 |     use x_core::*;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderTree`
[INFO] [stdout]   --> crates/x-render/src/frame_cache.rs:19:51
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::ir::{build_render_tree, RenderCommand, RenderTree, VelloSink};
[INFO] [stdout]    |                                                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine`, `Circle`, `Rect`, `RoundedRectRadii`, `RoundedRect`, and `Shape`
[INFO] [stdout]  --> crates/x-render/src/tests_mod.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::{Affine, Circle, Rect, RoundedRect, RoundedRectRadii, Shape};
[INFO] [stdout]   |                    ^^^^^^  ^^^^^^  ^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Blob`, `Brush`, `Fill`, `Format`, `Gradient`, `Image`, and `Mix`
[INFO] [stdout]  --> crates/x-render/src/tests_mod.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use vello::peniko::{Blob, Brush, Color, Fill, Format, Gradient, Image, Mix};
[INFO] [stdout]   |                     ^^^^  ^^^^^         ^^^^  ^^^^^^  ^^^^^^^^  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vello::Scene`
[INFO] [stdout]  --> crates/x-render/src/tests_mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use vello::Scene;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x_core::*`
[INFO] [stdout]   --> crates/x-render/src/tests_mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     use x_core::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x_core::*`
[INFO] [stdout]    --> crates/x-render/src/tests_mod.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |     use x_core::*;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x_core::*`
[INFO] [stdout]    --> crates/x-render/src/tests_mod.rs:309:9
[INFO] [stdout]     |
[INFO] [stdout] 309 |     use x_core::*;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x_core::*`
[INFO] [stdout]    --> crates/x-render/src/tests_mod.rs:355:9
[INFO] [stdout]     |
[INFO] [stdout] 355 |     use x_core::*;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-format/src/svg_export.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |     let mut tf = if n.transform.skew_x == 0.0 && n.transform.skew_y == 0.0 {
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-format/src/svg_import.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let mut flush = |cmd: char, nums: &mut Vec<f64>, out: &mut Vec<PathCmd>, cx: &mut f64, cy: &mut f64| {
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-format/src/svg_import.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut push_num = |num_buf: &mut String, nums: &mut Vec<f64>| {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `d2` is assigned to, but never used
[INFO] [stdout]    --> crates/x-format/src/v2.rs:267:10
[INFO] [stdout]     |
[INFO] [stdout] 267 |     let (mut d2, mut in_s, mut esc2) = (0i32, false, false);
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_d2` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `d2` is never read
[INFO] [stdout]    --> crates/x-format/src/v2.rs:273:23
[INFO] [stdout]     |
[INFO] [stdout] 273 |             b'{' => { d2 += 1; closers.push('}'); }
[INFO] [stdout]     |                       ^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 274 |             b'[' => { d2 += 1; closers.push(']'); }
[INFO] [stdout]     |                       ------- `d2` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `d2` is never read
[INFO] [stdout]    --> crates/x-format/src/v2.rs:274:23
[INFO] [stdout]     |
[INFO] [stdout] 274 |             b'[' => { d2 += 1; closers.push(']'); }
[INFO] [stdout]     |                       ^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 275 |             b'}' | b']' => { d2 -= 1; closers.pop(); }
[INFO] [stdout]     |                              ------- `d2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `d2` is never read
[INFO] [stdout]    --> crates/x-format/src/v2.rs:275:30
[INFO] [stdout]     |
[INFO] [stdout] 275 |             b'}' | b']' => { d2 -= 1; closers.pop(); }
[INFO] [stdout]     |                              ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `self_text_len` is never used
[INFO] [stdout]    --> crates/x-ui/src/lib.rs:331:4
[INFO] [stdout]     |
[INFO] [stdout] 331 | fn self_text_len(w: &Widget) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `self_text_len` is never used
[INFO] [stdout]    --> crates/x-ui/src/lib.rs:331:4
[INFO] [stdout]     |
[INFO] [stdout] 331 | fn self_text_len(w: &Widget) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> crates/x-format/src/svg_import.rs:33:100
[INFO] [stdout]    |
[INFO] [stdout] 33 | enum XmlTag { Open(String, Vec<(String, String)>), SelfClose(String, Vec<(String, String)>), Close(String), Text(String), Eof }
[INFO] [stdout]    |                                                                                              ----- ^^^^^^
[INFO] [stdout]    |                                                                                              |
[INFO] [stdout]    |                                                                                              field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 33 - enum XmlTag { Open(String, Vec<(String, String)>), SelfClose(String, Vec<(String, String)>), Close(String), Text(String), Eof }
[INFO] [stdout] 33 + enum XmlTag { Open(String, Vec<(String, String)>), SelfClose(String, Vec<(String, String)>), Close(()), Text(String), Eof }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:287:34
[INFO] [stdout]     |
[INFO] [stdout] 287 |     colors.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:289:35
[INFO] [stdout]     |
[INFO] [stdout] 289 |     numbers.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:295:95
[INFO] [stdout]     |
[INFO] [stdout] 295 |     let mut strs: Vec<_> = doc.variables.strings.iter().collect(); strs.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                                                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:298:91
[INFO] [stdout]     |
[INFO] [stdout] 298 |     let mut bls: Vec<_> = doc.variables.bools.iter().collect(); bls.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                                                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:301:99
[INFO] [stdout]     |
[INFO] [stdout] 301 |     let mut cols: Vec<_> = doc.variables.collections.iter().collect(); cols.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                                                                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:304:91
[INFO] [stdout]     |
[INFO] [stdout] 304 |     let mut mds: Vec<_> = doc.variables.modes.iter().collect(); mds.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                                                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:307:89
[INFO] [stdout]     |
[INFO] [stdout] 307 |         let mut entries: Vec<_> = table.iter().collect(); entries.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                                                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]   --> crates/x-format/src/xlib.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 |     colors.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]   --> crates/x-format/src/xlib.rs:27:35
[INFO] [stdout]    |
[INFO] [stdout] 27 |     numbers.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]    |                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Shape`
[INFO] [stdout]  --> crates/x-render/src/assets.rs:2:73
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::{Affine, Circle, Rect, RoundedRect, RoundedRectRadii, Shape};
[INFO] [stdout]   |                                                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-editor/src/booleans.rs:238:9
[INFO] [stdout]     |
[INFO] [stdout] 238 |     let mut add = |a: (i64, i64), b: (i64, i64), edges: &mut Map<(i64, i64), Vec<(i64, i64)>>| {
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-editor/src/clip.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let mut build = |pts: &[Pt], on: &mut Vec<Vec<(f64, usize)>>, id2: &mut Vec<usize>, arena: &mut Vec<V>| -> usize {
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_font`
[INFO] [stdout]    --> crates/x-render/src/scene.rs:228:75
[INFO] [stdout]     |
[INFO] [stdout] 228 |     node: &Node, text: &str, base_color: Color, fm: &x_text::FontManager, default_font: usize,
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_font`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `s_head` is never read
[INFO] [stdout]    --> crates/x-editor/src/clip.rs:144:22
[INFO] [stdout]     |
[INFO] [stdout] 144 |     let mut s_head = usize::MAX;
[INFO] [stdout]     |                      ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 163 |     s_head = build(s, &mut on_s, &mut id2s, &mut arena);
[INFO] [stdout]     |     --------------------------------------------------- `s_head` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WithOffset` and `CenteredInView` are never constructed
[INFO] [stdout]   --> crates/x-editor/src/editor_core.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | enum PasteStrategy {
[INFO] [stdout]    |      ------------- variants in this enum
[INFO] [stdout] 10 |     WithOffset((f64, f64)),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 11 |     InPlace,
[INFO] [stdout] 12 |     CenteredInView,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `brush`
[INFO] [stdout]    --> crates/x-render/src/ir.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |     let brush = || {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_brush`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-render/src/frame_cache.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut include = |r: vello::kurbo::Rect, acc: &mut Option<vello::kurbo::Rect>| {
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/x-render/src/raster.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |         _ => None,
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> crates/x-render/src/raster.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |         Mix::Normal | Mix::Clip => None,
[INFO] [stdout]     |         ----------------------- matches some of the same values
[INFO] [stdout] 113 |         Mix::Multiply => Some(ts::BlendMode::Multiply),
[INFO] [stdout]     |         ------------- matches some of the same values
[INFO] [stdout] 114 |         Mix::Screen => Some(ts::BlendMode::Screen),
[INFO] [stdout]     |         ----------- matches some of the same values
[INFO] [stdout] 115 |         Mix::Overlay => Some(ts::BlendMode::Overlay),
[INFO] [stdout]     |         ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 128 |         _ => None,
[INFO] [stdout]     |         ^ ...and 12 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-render/src/raster.rs:340:9
[INFO] [stdout]     |
[INFO] [stdout] 340 |     let mut enc = jpeg_encoder::Encoder::new(&mut out, quality.min(100));
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-render/src/frame_cache.rs:167:30
[INFO] [stdout]     |
[INFO] [stdout] 167 |     cs.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-render/src/frame_cache.rs:170:30
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ns.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking arco_native v0.34.0 (/opt/rustwide/workdir/crates/x-native)
[INFO] [stdout] warning: unused import: `Shape`
[INFO] [stdout]  --> crates/x-render/src/assets.rs:2:73
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::{Affine, Circle, Rect, RoundedRect, RoundedRectRadii, Shape};
[INFO] [stdout]   |                                                                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default_font`
[INFO] [stdout]    --> crates/x-render/src/scene.rs:228:75
[INFO] [stdout]     |
[INFO] [stdout] 228 |     node: &Node, text: &str, base_color: Color, fm: &x_text::FontManager, default_font: usize,
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_font`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking x-designer v0.34.0 (/opt/rustwide/workdir/apps/x-designer)
[INFO] [stdout] warning: unused variable: `brush`
[INFO] [stdout]    --> crates/x-render/src/ir.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |     let brush = || {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_brush`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathCmd`
[INFO] [stdout]   --> crates/x-native/tests/golden_project.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     PathCmd, RenderCommand, Style, Variables,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `build_render_tree`
[INFO] [stdout]   --> apps/x-designer/src/bin/export_regression.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 |     apply_layout_recursive, build_render_tree, export_pdf_full, svg_text_outliner, Assets,
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Point` and `Rect`
[INFO] [stdout]  --> crates/x-editor/src/commands.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::{Point, Rect};
[INFO] [stdout]   |                    ^^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Point` and `Rect`
[INFO] [stdout]  --> crates/x-editor/src/align.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::{Point, Rect};
[INFO] [stdout]   |                    ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vello::kurbo::Rect`
[INFO] [stdout]  --> crates/x-editor/src/constraints.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::Rect;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/x-editor/src/tests_mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Affine`
[INFO] [stdout]  --> crates/x-editor/src/tests_mod.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use vello::kurbo::{Affine, Point, Rect};
[INFO] [stdout]   |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vello::peniko::Color`
[INFO] [stdout]  --> crates/x-editor/src/tests_mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use vello::peniko::Color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChildConstraints`
[INFO] [stdout]    --> crates/x-editor/src/tests_mod.rs:652:34
[INFO] [stdout]     |
[INFO] [stdout] 652 |         use x_core::{AutoLayout, ChildConstraints, LayoutDirection, Sizing};
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChildConstraints`
[INFO] [stdout]    --> crates/x-editor/src/tests_mod.rs:685:45
[INFO] [stdout]     |
[INFO] [stdout] 685 |         use x_core::{Alignment, AutoLayout, ChildConstraints, LayoutDirection, Sizing};
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-render/src/frame_cache.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut include = |r: vello::kurbo::Rect, acc: &mut Option<vello::kurbo::Rect>| {
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-render/src/frame_cache.rs:432:13
[INFO] [stdout]     |
[INFO] [stdout] 432 |         let mut make = |fill: Color| {
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> apps/x-designer/src/bin/type_proof.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut put = |scene: &mut Scene, spans: &[Span], y: &mut f64, w: f64| {
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/x-render/src/raster.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |         _ => None,
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> crates/x-render/src/raster.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |         Mix::Normal | Mix::Clip => None,
[INFO] [stdout]     |         ----------------------- matches some of the same values
[INFO] [stdout] 113 |         Mix::Multiply => Some(ts::BlendMode::Multiply),
[INFO] [stdout]     |         ------------- matches some of the same values
[INFO] [stdout] 114 |         Mix::Screen => Some(ts::BlendMode::Screen),
[INFO] [stdout]     |         ----------- matches some of the same values
[INFO] [stdout] 115 |         Mix::Overlay => Some(ts::BlendMode::Overlay),
[INFO] [stdout]     |         ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 128 |         _ => None,
[INFO] [stdout]     |         ^ ...and 12 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `build_render_tree`
[INFO] [stdout]   --> apps/x-designer/src/bin/export_regression.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 |     apply_layout_recursive, build_render_tree, export_pdf_full, svg_text_outliner, Assets,
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wgpu::util::DeviceExt as _`
[INFO] [stdout]   --> apps/x-designer/src/bin/render_headless.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use wgpu::util::DeviceExt as _;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-render/src/raster.rs:340:9
[INFO] [stdout]     |
[INFO] [stdout] 340 |     let mut enc = jpeg_encoder::Encoder::new(&mut out, quality.min(100));
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/x-native/tests/asset_manager.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut chunk = |tag: &[u8; 4], data: &[u8], png: &mut Vec<u8>| {
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lower`
[INFO] [stdout]   --> crates/x-format/src/sketch.rs:28:24
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::import_ir::{lower, ImportDoc, ImportKind, ImportNode};
[INFO] [stdout]    |                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-render/src/frame_cache.rs:167:30
[INFO] [stdout]     |
[INFO] [stdout] 167 |     cs.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-render/src/frame_cache.rs:170:30
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ns.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `export_svg`, `load_x_file`, and `save_x_file`
[INFO] [stdout]  --> apps/x-designer/src/bin/x_native_app/main.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use arco_native::fileio::{export_svg, load_x_file, save_x_file};
[INFO] [stdout]   |                           ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PI` and `build_scene`
[INFO] [stdout]   --> apps/x-designer/src/bin/x_native_app/main.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     build_scene, Action, Alignment, Animation, AutoLayout, AutoLayoutWrap, BlendKind, Color,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 10 |     CrossAlign, Document, Effect, ExportSettings, Interaction, LayoutDirection, Node,
[INFO] [stdout] 11 |     Overflow, OverlayPosition, Paint, StrokeAlign, Trigger, Variables, PI,
[INFO] [stdout]    |                                                                        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> apps/x-designer/src/bin/x_native_app/helpers.rs:102:1
[INFO] [stdout]     |
[INFO] [stdout] 102 | / /// Global UI font (shaped real typography for ALL chrome text — the
[INFO] [stdout] 103 | | /// blocky vector font is retired). ShapedTextCache makes this cheap:
[INFO] [stdout] 104 | | /// every distinct label shapes once per (text,size,color).
[INFO] [stdout]     | |_----------------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wgpu::util::DeviceExt as _`
[INFO] [stdout]   --> apps/x-designer/src/bin/render_headless.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use wgpu::util::DeviceExt as _;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> apps/x-designer/src/bin/type_proof.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut put = |scene: &mut Scene, spans: &[Span], y: &mut f64, w: f64| {
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `export_svg`, `load_x_file`, and `save_x_file`
[INFO] [stdout]  --> apps/x-designer/src/bin/x_native_app/main.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use arco_native::fileio::{export_svg, load_x_file, save_x_file};
[INFO] [stdout]   |                           ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PI` and `build_scene`
[INFO] [stdout]   --> apps/x-designer/src/bin/x_native_app/main.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     build_scene, Action, Alignment, Animation, AutoLayout, AutoLayoutWrap, BlendKind, Color,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 10 |     CrossAlign, Document, Effect, ExportSettings, Interaction, LayoutDirection, Node,
[INFO] [stdout] 11 |     Overflow, OverlayPosition, Paint, StrokeAlign, Trigger, Variables, PI,
[INFO] [stdout]    |                                                                        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> apps/x-designer/src/bin/x_native_app/helpers.rs:102:1
[INFO] [stdout]     |
[INFO] [stdout] 102 | / /// Global UI font (shaped real typography for ALL chrome text — the
[INFO] [stdout] 103 | | /// blocky vector font is retired). ShapedTextCache makes this cheap:
[INFO] [stdout] 104 | | /// every distinct label shapes once per (text,size,color).
[INFO] [stdout]     | |_----------------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-editor/src/booleans.rs:238:9
[INFO] [stdout]     |
[INFO] [stdout] 238 |     let mut add = |a: (i64, i64), b: (i64, i64), edges: &mut Map<(i64, i64), Vec<(i64, i64)>>| {
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-editor/src/clip.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let mut build = |pts: &[Pt], on: &mut Vec<Vec<(f64, usize)>>, id2: &mut Vec<usize>, arena: &mut Vec<V>| -> usize {
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `s_head` is never read
[INFO] [stdout]    --> crates/x-editor/src/clip.rs:144:22
[INFO] [stdout]     |
[INFO] [stdout] 144 |     let mut s_head = usize::MAX;
[INFO] [stdout]     |                      ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 163 |     s_head = build(s, &mut on_s, &mut id2s, &mut arena);
[INFO] [stdout]     |     --------------------------------------------------- `s_head` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-format/src/svg_export.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |     let mut tf = if n.transform.skew_x == 0.0 && n.transform.skew_y == 0.0 {
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-format/src/svg_import.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let mut flush = |cmd: char, nums: &mut Vec<f64>, out: &mut Vec<PathCmd>, cx: &mut f64, cy: &mut f64| {
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/x-format/src/svg_import.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut push_num = |num_buf: &mut String, nums: &mut Vec<f64>| {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `d2` is assigned to, but never used
[INFO] [stdout]    --> crates/x-format/src/v2.rs:267:10
[INFO] [stdout]     |
[INFO] [stdout] 267 |     let (mut d2, mut in_s, mut esc2) = (0i32, false, false);
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_d2` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `d2` is never read
[INFO] [stdout]    --> crates/x-format/src/v2.rs:273:23
[INFO] [stdout]     |
[INFO] [stdout] 273 |             b'{' => { d2 += 1; closers.push('}'); }
[INFO] [stdout]     |                       ^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 274 |             b'[' => { d2 += 1; closers.push(']'); }
[INFO] [stdout]     |                       ------- `d2` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `d2` is never read
[INFO] [stdout]    --> crates/x-format/src/v2.rs:274:23
[INFO] [stdout]     |
[INFO] [stdout] 274 |             b'[' => { d2 += 1; closers.push(']'); }
[INFO] [stdout]     |                       ^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 275 |             b'}' | b']' => { d2 -= 1; closers.pop(); }
[INFO] [stdout]     |                              ------- `d2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `d2` is never read
[INFO] [stdout]    --> crates/x-format/src/v2.rs:275:30
[INFO] [stdout]     |
[INFO] [stdout] 275 |             b'}' | b']' => { d2 -= 1; closers.pop(); }
[INFO] [stdout]     |                              ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WithOffset` and `CenteredInView` are never constructed
[INFO] [stdout]   --> crates/x-editor/src/editor_core.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | enum PasteStrategy {
[INFO] [stdout]    |      ------------- variants in this enum
[INFO] [stdout] 10 |     WithOffset((f64, f64)),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 11 |     InPlace,
[INFO] [stdout] 12 |     CenteredInView,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> crates/x-format/src/svg_import.rs:33:100
[INFO] [stdout]    |
[INFO] [stdout] 33 | enum XmlTag { Open(String, Vec<(String, String)>), SelfClose(String, Vec<(String, String)>), Close(String), Text(String), Eof }
[INFO] [stdout]    |                                                                                              ----- ^^^^^^
[INFO] [stdout]    |                                                                                              |
[INFO] [stdout]    |                                                                                              field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 33 - enum XmlTag { Open(String, Vec<(String, String)>), SelfClose(String, Vec<(String, String)>), Close(String), Text(String), Eof }
[INFO] [stdout] 33 + enum XmlTag { Open(String, Vec<(String, String)>), SelfClose(String, Vec<(String, String)>), Close(()), Text(String), Eof }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:287:34
[INFO] [stdout]     |
[INFO] [stdout] 287 |     colors.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:289:35
[INFO] [stdout]     |
[INFO] [stdout] 289 |     numbers.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:295:95
[INFO] [stdout]     |
[INFO] [stdout] 295 |     let mut strs: Vec<_> = doc.variables.strings.iter().collect(); strs.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                                                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:298:91
[INFO] [stdout]     |
[INFO] [stdout] 298 |     let mut bls: Vec<_> = doc.variables.bools.iter().collect(); bls.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                                                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:301:99
[INFO] [stdout]     |
[INFO] [stdout] 301 |     let mut cols: Vec<_> = doc.variables.collections.iter().collect(); cols.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                                                                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:304:91
[INFO] [stdout]     |
[INFO] [stdout] 304 |     let mut mds: Vec<_> = doc.variables.modes.iter().collect(); mds.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                                                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]    --> crates/x-format/src/serialize.rs:307:89
[INFO] [stdout]     |
[INFO] [stdout] 307 |         let mut entries: Vec<_> = table.iter().collect(); entries.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]     |                                                                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]   --> crates/x-format/src/xlib.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 |     colors.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]   --> crates/x-format/src/xlib.rs:27:35
[INFO] [stdout]    |
[INFO] [stdout] 27 |     numbers.sort_by_key(|(k, _)| k.clone());
[INFO] [stdout]    |                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]     --> apps/x-designer/src/bin/x_native_app/app.rs:1592:25
[INFO] [stdout]      |
[INFO] [stdout] 1592 |             if let Some(f) = arco_native::editor::find(&self.pages[idx], &fid) {
[INFO] [stdout]      |                         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]     --> apps/x-designer/src/bin/x_native_app/app.rs:1601:37
[INFO] [stdout]      |
[INFO] [stdout] 1601 |     pub fn present_click(&mut self, p: Point) {
[INFO] [stdout]      |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bh`
[INFO] [stdout]     --> apps/x-designer/src/bin/x_native_app/app.rs:1818:17
[INFO] [stdout]      |
[INFO] [stdout] 1818 |             let bh = 4.0;
[INFO] [stdout]      |                 ^^ help: if this is intentional, prefix it with an underscore: `_bh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `overlay`
[INFO] [stdout]     --> apps/x-designer/src/bin/x_native_app/app.rs:3505:46
[INFO] [stdout]      |
[INFO] [stdout] 3505 |                 if let Action::OpenOverlay { overlay, position } = &mut i.action {
[INFO] [stdout]      |                                              ^^^^^^^ help: try ignoring the field: `overlay: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]     --> apps/x-designer/src/bin/x_native_app/app.rs:1592:25
[INFO] [stdout]      |
[INFO] [stdout] 1592 |             if let Some(f) = arco_native::editor::find(&self.pages[idx], &fid) {
[INFO] [stdout]      |                         ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]     --> apps/x-designer/src/bin/x_native_app/app.rs:1601:37
[INFO] [stdout]      |
[INFO] [stdout] 1601 |     pub fn present_click(&mut self, p: Point) {
[INFO] [stdout]      |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bh`
[INFO] [stdout]     --> apps/x-designer/src/bin/x_native_app/app.rs:1818:17
[INFO] [stdout]      |
[INFO] [stdout] 1818 |             let bh = 4.0;
[INFO] [stdout]      |                 ^^ help: if this is intentional, prefix it with an underscore: `_bh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> apps/x-designer/src/bin/x_native_app/app.rs:4530:29
[INFO] [stdout]      |
[INFO] [stdout] 4530 |                         let mut edit = |app: &mut Self, f: &dyn Fn(&mut arco_native::ImagePlacement), what: &str| {
[INFO] [stdout]      |                             ----^^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vals`
[INFO] [stdout]     --> apps/x-designer/src/bin/x_native_app/app.rs:4170:17
[INFO] [stdout]      |
[INFO] [stdout] 4170 |             let vals = [n.transform.x, n.transform.y, n.w, n.h];
[INFO] [stdout]      |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_vals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `overlay`
[INFO] [stdout]     --> apps/x-designer/src/bin/x_native_app/app.rs:3505:46
[INFO] [stdout]      |
[INFO] [stdout] 3505 |                 if let Action::OpenOverlay { overlay, position } = &mut i.action {
[INFO] [stdout]      |                                              ^^^^^^^ help: try ignoring the field: `overlay: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> apps/x-designer/src/bin/x_native_app/app.rs:4530:29
[INFO] [stdout]      |
[INFO] [stdout] 4530 |                         let mut edit = |app: &mut Self, f: &dyn Fn(&mut arco_native::ImagePlacement), what: &str| {
[INFO] [stdout]      |                             ----^^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vals`
[INFO] [stdout]     --> apps/x-designer/src/bin/x_native_app/app.rs:4170:17
[INFO] [stdout]      |
[INFO] [stdout] 4170 |             let vals = [n.transform.x, n.transform.y, n.w, n.h];
[INFO] [stdout]      |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_vals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> apps/x-designer/src/bin/x_native_app/chrome.rs:226:29
[INFO] [stdout]     |
[INFO] [stdout] 226 |                         let mut draw_meas = |ui: &mut Scene, gap: f64, p0: (f64, f64), p1: (f64, f64)| {
[INFO] [stdout]     |                             ----^^^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> apps/x-designer/src/bin/x_native_app/chrome.rs:226:29
[INFO] [stdout]     |
[INFO] [stdout] 226 |                         let mut draw_meas = |ui: &mut Scene, gap: f64, p0: (f64, f64), p1: (f64, f64)| {
[INFO] [stdout]     |                             ----^^^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `x-core`
[INFO] [stderr]   --> crates/x-text/Cargo.toml:10:1
[INFO] [stderr]    |
[INFO] [stderr] 10 | x-core = { path = "../x-core" }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `x-core`
[INFO] [stderr] warning: `x-text` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `x-text`
[INFO] [stderr]  --> crates/x-ui/Cargo.toml:7:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | x-text = { path = "../x-text" }
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `x-text`
[INFO] [stderr] warning: `x-ui` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 23s
[INFO] running `Command { std: "docker" "inspect" "53c72cd764e7ff8ae55ef913d9859658daaca54311ec78fe733a3ae213acafc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "53c72cd764e7ff8ae55ef913d9859658daaca54311ec78fe733a3ae213acafc8", kill_on_drop: false }`
[INFO] [stdout] 53c72cd764e7ff8ae55ef913d9859658daaca54311ec78fe733a3ae213acafc8
