[INFO] cloning repository https://github.com/raphlinus/fast-stroke [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/raphlinus/fast-stroke" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fraphlinus%2Ffast-stroke", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fraphlinus%2Ffast-stroke'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] cc24eaf5efe674139fa07b45cd034e687bbb5cac [INFO] checking raphlinus/fast-stroke/cc24eaf5efe674139fa07b45cd034e687bbb5cac against master#c871d09d1cc32a649f4c5177bb819646260ed120 for pr-149291-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fraphlinus%2Ffast-stroke" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/raphlinus/fast-stroke [INFO] finished tweaking git repo https://github.com/raphlinus/fast-stroke [INFO] tweaked toml for git repo https://github.com/raphlinus/fast-stroke written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/raphlinus/fast-stroke on toolchain c871d09d1cc32a649f4c5177bb819646260ed120 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c871d09d1cc32a649f4c5177bb819646260ed120" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/raphlinus/fast-stroke 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" "+c871d09d1cc32a649f4c5177bb819646260ed120" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Updating git repository `https://github.com/linebender/xilem` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tracing-web v0.1.3 [INFO] [stderr] Downloaded peniko v0.2.0 [INFO] [stderr] Downloaded kurbo v0.11.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+c871d09d1cc32a649f4c5177bb819646260ed120" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d6dba8eeef050b4e0ac3c0cc76142cb1556fe54472e6fc696a922708fa85c011 [INFO] running `Command { std: "docker" "start" "-a" "d6dba8eeef050b4e0ac3c0cc76142cb1556fe54472e6fc696a922708fa85c011", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d6dba8eeef050b4e0ac3c0cc76142cb1556fe54472e6fc696a922708fa85c011", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d6dba8eeef050b4e0ac3c0cc76142cb1556fe54472e6fc696a922708fa85c011", kill_on_drop: false }` [INFO] [stdout] d6dba8eeef050b4e0ac3c0cc76142cb1556fe54472e6fc696a922708fa85c011 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+c871d09d1cc32a649f4c5177bb819646260ed120" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 408b10270a65f371743c98d52b85c85d634f8664bec515cf1e7669b26ab16df5 [INFO] running `Command { std: "docker" "start" "-a" "408b10270a65f371743c98d52b85c85d634f8664bec515cf1e7669b26ab16df5", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.92 [INFO] [stderr] Compiling unicode-ident v1.0.14 [INFO] [stderr] Checking once_cell v1.20.2 [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.99 [INFO] [stderr] Compiling wasm-bindgen v0.2.99 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Checking kurbo v0.11.1 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking peniko v0.2.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling syn v2.0.90 [INFO] [stderr] Checking fast-stroke v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.99 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.99 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking xilem_core v0.1.0 (https://github.com/linebender/xilem?rev=806ee4d#806ee4d1) [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.99 [INFO] [stderr] Checking js-sys v0.3.76 [INFO] [stderr] Checking console_error_panic_hook v0.1.7 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking web-sys v0.3.76 [INFO] [stderr] Checking wasm-bindgen-futures v0.4.49 [INFO] [stderr] Checking xilem_web v0.1.0 (https://github.com/linebender/xilem?rev=806ee4d#806ee4d1) [INFO] [stderr] Checking tracing-web v0.1.3 [INFO] [stderr] Checking interactive v0.1.0 (/opt/rustwide/workdir/interactive) [INFO] [stdout] warning: unused import: `Shape` [INFO] [stdout] --> interactive/src/offset.rs:9:69 [INFO] [stdout] | [INFO] [stdout] 9 | BezPath, CubicBez, ParamCurve, ParamCurveDeriv, Point, QuadBez, Shape, Vec2, [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: `Shape` [INFO] [stdout] --> interactive/src/offset.rs:9:69 [INFO] [stdout] | [INFO] [stdout] 9 | BezPath, CubicBez, ParamCurve, ParamCurveDeriv, Point, QuadBez, Shape, Vec2, [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 variable: `z` [INFO] [stdout] --> interactive/src/midpoint.rs:357:25 [INFO] [stdout] | [INFO] [stdout] 357 | let z = q_approx.cross(dpdu); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_z` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> interactive/src/offset.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | let mut t = 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: unused variable: `t` [INFO] [stdout] --> interactive/src/offset.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | let mut t = 0.0; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `z` [INFO] [stdout] --> interactive/src/midpoint.rs:357:25 [INFO] [stdout] | [INFO] [stdout] 357 | let z = q_approx.cross(dpdu); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_z` [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 `err` is never read [INFO] [stdout] --> interactive/src/perturb.rs:533:19 [INFO] [stdout] | [INFO] [stdout] 533 | let mut err = mid_err; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [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] --> interactive/src/offset.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | let mut t = 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: unused variable: `t` [INFO] [stdout] --> interactive/src/offset.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | let mut t = 0.0; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_min` [INFO] [stdout] --> interactive/src/perturb.rs:783:9 [INFO] [stdout] | [INFO] [stdout] 783 | let err_min = [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_min` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_max` [INFO] [stdout] --> interactive/src/perturb.rs:785:9 [INFO] [stdout] | [INFO] [stdout] 785 | let err_max = a * a * (aa_n + aa_t) [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_max` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `n` is never read [INFO] [stdout] --> interactive/src/perturb.rs:885:17 [INFO] [stdout] | [INFO] [stdout] 885 | let mut n = nm; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `err` is never read [INFO] [stdout] --> interactive/src/perturb.rs:533:19 [INFO] [stdout] | [INFO] [stdout] 533 | let mut err = mid_err; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_min` [INFO] [stdout] --> interactive/src/perturb.rs:1078:13 [INFO] [stdout] | [INFO] [stdout] 1078 | let err_min = err_min / self.d.powi(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_min` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_max` [INFO] [stdout] --> interactive/src/perturb.rs:1085:13 [INFO] [stdout] | [INFO] [stdout] 1085 | let err_max = err_max / self.d.powi(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_max` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_arc` [INFO] [stdout] --> interactive/src/main.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | let path_arc = c_arc.to_path(0.0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_arc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_arc` [INFO] [stdout] --> interactive/src/main.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | let err_arc = perturb::plot_scaled(&perturb::error_by_rays(c, d, c_arc), err_scale); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_arc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_arc_lse` [INFO] [stdout] --> interactive/src/main.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | let path_arc_lse = c_arc_lse.to_path(0.0); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_arc_lse` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_arc_lse_refined` [INFO] [stdout] --> interactive/src/main.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | let err_arc_lse_refined = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_arc_lse_refined` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> interactive/src/main.rs:111:16 [INFO] [stdout] | [INFO] [stdout] 111 | let (a, b, t) = perturb::arc_onept(c, d); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_ao` [INFO] [stdout] --> interactive/src/main.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | let path_ao = c_ao.to_path(0.0); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_ao` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_ao` [INFO] [stdout] --> interactive/src/main.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | let err_ao = perturb::plot_scaled(&perturb::error_by_rays(c, d, c_ao), err_scale); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_ao` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_onept3` [INFO] [stdout] --> interactive/src/main.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | let path_onept3 = c_onept3.to_path(0.0); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_onept3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_onept3` [INFO] [stdout] --> interactive/src/main.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | let err_onept3 = perturb::plot_scaled(&perturb::error_by_rays(c, d, c_onept3), err_scale); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_onept3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `derr_plot` [INFO] [stdout] --> interactive/src/main.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | let derr_plot = perturb::plot(&perturb::onept_err_plot(c, d)); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_derr_plot` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_midpoint_g1` [INFO] [stdout] --> interactive/src/main.rs:167:9 [INFO] [stdout] | [INFO] [stdout] 167 | let path_midpoint_g1 = c_midpoint_g1.to_path(0.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_midpoint_g1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `midpt_line` [INFO] [stdout] --> interactive/src/main.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | let midpt_line = Line::new( [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_midpt_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SCALE` is never used [INFO] [stdout] --> interactive/src/main.rs:124:11 [INFO] [stdout] | [INFO] [stdout] 124 | const SCALE: f64 = 1e-6; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CuspAnalysis` is never constructed [INFO] [stdout] --> interactive/src/cusp.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct CuspAnalysis { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VelMinimum` is never constructed [INFO] [stdout] --> interactive/src/cusp.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | struct VelMinimum { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `get_cusp` are never used [INFO] [stdout] --> interactive/src/cusp.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl CuspAnalysis { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 23 | /// Do cusp analysis based on hodograph of cubic Bezier. [INFO] [stdout] 24 | pub fn new(q: QuadBez) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn get_cusp(&self, range: Range) -> Option<(f64, Vec2)> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CUSP_EPSILON` is never used [INFO] [stdout] --> interactive/src/evolute.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const CUSP_EPSILON: f64 = 1e-12; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_DEPTH` is never used [INFO] [stdout] --> interactive/src/evolute.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const MAX_DEPTH: usize = 8; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `N_LSE` is never used [INFO] [stdout] --> interactive/src/evolute.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const N_LSE: usize = 8; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BLEND` is never used [INFO] [stdout] --> interactive/src/evolute.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const BLEND: f64 = 1e-2; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `c` and `tolerance` are never read [INFO] [stdout] --> interactive/src/evolute.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 16 | struct CubicEvolute { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 17 | c: CubicBez, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 22 | tolerance: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> interactive/src/evolute.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 25 | impl CubicEvolute { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 26 | fn new(c: CubicBez, tolerance: f64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | fn radius(&self, t: f64) -> f64 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | fn radius_deriv(&self, t: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | fn eval(&self, t: f64) -> Point { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | fn apply(&self, rec: &EvoluteRec, a: f64, b: f64) -> CubicBez { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn evolute_rec(&self, rec: &EvoluteRec, path: &mut BezPath) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn subdivide( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | fn eval_err(&self, rec: &EvoluteRec, c_approx: CubicBez, ts: &mut [f64; N_LSE]) -> f64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | fn refine_least_squares( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `evolute_hacky_approx` is never used [INFO] [stdout] --> interactive/src/evolute.rs:226:8 [INFO] [stdout] | [INFO] [stdout] 226 | pub fn evolute_hacky_approx(c: CubicBez) -> BezPath { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `evolute_approx_cubic` is never used [INFO] [stdout] --> interactive/src/evolute.rs:247:8 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn evolute_approx_cubic(c: CubicBez) -> CubicBez { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EvoluteRec` is never constructed [INFO] [stdout] --> interactive/src/evolute.rs:260:8 [INFO] [stdout] | [INFO] [stdout] 260 | struct EvoluteRec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `evolute_approx` is never used [INFO] [stdout] --> interactive/src/evolute.rs:273:8 [INFO] [stdout] | [INFO] [stdout] 273 | pub fn evolute_approx(c: CubicBez, tolerance: f64) -> BezPath { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `turn` is never used [INFO] [stdout] --> interactive/src/evolute.rs:301:4 [INFO] [stdout] | [INFO] [stdout] 301 | fn turn(v: Vec2) -> Vec2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `N` is never used [INFO] [stdout] --> interactive/src/kbound.rs:48:7 [INFO] [stdout] | [INFO] [stdout] 48 | const N: usize = 1; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kbound_refined` is never used [INFO] [stdout] --> interactive/src/kbound.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn kbound_refined(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `q_min_max_refined` is never used [INFO] [stdout] --> interactive/src/kbound.rs:84:4 [INFO] [stdout] | [INFO] [stdout] 84 | fn q_min_max_refined(c0: f64, c1: f64, c2: f64) -> ([f64; N], [f64; N]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `N_LSE` is never used [INFO] [stdout] --> interactive/src/offset.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const N_LSE: usize = 8; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BLEND` is never used [INFO] [stdout] --> interactive/src/offset.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const BLEND: f64 = 1e-2; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CubicOffset` is never constructed [INFO] [stdout] --> interactive/src/offset.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | struct CubicOffset { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OffsetRec` is never constructed [INFO] [stdout] --> interactive/src/offset.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | struct OffsetRec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ErrEval` is never constructed [INFO] [stdout] --> interactive/src/offset.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | struct ErrEval { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SubdivisionPoint` is never constructed [INFO] [stdout] --> interactive/src/offset.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | struct SubdivisionPoint { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CUSP_EPSILON` is never used [INFO] [stdout] --> interactive/src/offset.rs:69:7 [INFO] [stdout] | [INFO] [stdout] 69 | const CUSP_EPSILON: f64 = 1e-12; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_DEPTH` is never used [INFO] [stdout] --> interactive/src/offset.rs:74:7 [INFO] [stdout] | [INFO] [stdout] 74 | const MAX_DEPTH: usize = 8; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `offset_cubic` is never used [INFO] [stdout] --> interactive/src/offset.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn offset_cubic(c: CubicBez, d: f64, tolerance: f64) -> BezPath { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_min` [INFO] [stdout] --> interactive/src/perturb.rs:783:9 [INFO] [stdout] | [INFO] [stdout] 783 | let err_min = [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_min` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_max` [INFO] [stdout] --> interactive/src/perturb.rs:785:9 [INFO] [stdout] | [INFO] [stdout] 785 | let err_max = a * a * (aa_n + aa_t) [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_max` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> interactive/src/offset.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 88 | impl CubicOffset { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 89 | /// Create a new curve from Bézier segment and offset. [INFO] [stdout] 90 | fn new(c: CubicBez, d: f64, tolerance: f64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | fn cusp_sign(&self, t: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | fn cusp_and_utan(&self, tan: Point, y: f64) -> (f64, Vec2) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | fn offset_rec(&self, rec: &OffsetRec, result: &mut BezPath) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | fn subdivide( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 233 | fn apply(&self, rec: &OffsetRec, a: f64, b: f64) -> CubicBez { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | fn least_squares(&self, rec: &OffsetRec) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | fn draw_arc(&self, rec: &OffsetRec) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 316 | fn one_point(&self, rec: &OffsetRec) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 333 | fn eval_err(&self, rec: &OffsetRec, c_approx: CubicBez, ts: &mut [f64; N_LSE]) -> ErrEval { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 380 | fn refine_least_squares(&self, rec: &OffsetRec, a: f64, b: f64, err: &ErrEval) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 409 | fn find_subdivision_point(&self, rec: &OffsetRec) -> SubdivisionPoint { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 454 | fn subdivide_for_tangent( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> interactive/src/offset.rs:496:8 [INFO] [stdout] | [INFO] [stdout] 495 | impl OffsetRec { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 496 | fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `turn` is never used [INFO] [stdout] --> interactive/src/offset.rs:534:4 [INFO] [stdout] | [INFO] [stdout] 534 | fn turn(v: Vec2) -> Vec2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mk_a_weights` is never used [INFO] [stdout] --> interactive/src/offset.rs:538:10 [INFO] [stdout] | [INFO] [stdout] 538 | const fn mk_a_weights(rev: bool) -> [f64; N_LSE] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `A_WEIGHTS` is never used [INFO] [stdout] --> interactive/src/offset.rs:551:7 [INFO] [stdout] | [INFO] [stdout] 551 | const A_WEIGHTS: [f64; N_LSE] = mk_a_weights(false); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `B_WEIGHTS` is never used [INFO] [stdout] --> interactive/src/offset.rs:552:7 [INFO] [stdout] | [INFO] [stdout] 552 | const B_WEIGHTS: [f64; N_LSE] = mk_a_weights(true); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> interactive/src/perturb.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct CurveOffset { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 20 | b01xb12: f64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 21 | b01xb23: f64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 22 | b12xb23: f64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 23 | n0xb01: f64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 24 | n1xb01: f64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | n0xb12: f64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 26 | n1xb12: f64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 27 | n0xb23: f64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 28 | n1xb23: f64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `T1_FOR_OFFSET` is never used [INFO] [stdout] --> interactive/src/perturb.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | const T1_FOR_OFFSET: f64 = 0.2; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OFFSET_TS` is never used [INFO] [stdout] --> interactive/src/perturb.rs:32:7 [INFO] [stdout] | [INFO] [stdout] 32 | const OFFSET_TS: [f64; 3] = [T1_FOR_OFFSET, 0.5, 1. - T1_FOR_OFFSET]; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OffsetSolution` is never constructed [INFO] [stdout] --> interactive/src/perturb.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct OffsetSolution { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `coefs_at`, `error_at`, `deriv_error_at`, and `newton_step_t` are never used [INFO] [stdout] --> interactive/src/perturb.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 56 | impl CurveOffset { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 90 | fn coefs_at(&self, t: f64) -> (f64, f64, f64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | fn error_at(&self, t: f64, a: f64, b: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | fn deriv_error_at(&self, t: f64, a: f64, b: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | fn newton_step_t(&self, a: f64, b: f64, d: f64, t: f64, ta: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `two_point_approx` is never used [INFO] [stdout] --> interactive/src/perturb.rs:167:8 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn two_point_approx(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PLOT_TRANSLATE` is never used [INFO] [stdout] --> interactive/src/perturb.rs:181:7 [INFO] [stdout] | [INFO] [stdout] 181 | const PLOT_TRANSLATE: Vec2 = Vec2::new(100., 200.); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PLOT_SCALE` is never used [INFO] [stdout] --> interactive/src/perturb.rs:182:7 [INFO] [stdout] | [INFO] [stdout] 182 | const PLOT_SCALE: Affine = Affine::scale(500.0); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `plot_error` is never used [INFO] [stdout] --> interactive/src/perturb.rs:184:8 [INFO] [stdout] | [INFO] [stdout] 184 | pub fn plot_error(c: CubicBez, a: f64, b: f64) -> BezPath { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spline_error` is never used [INFO] [stdout] --> interactive/src/perturb.rs:204:8 [INFO] [stdout] | [INFO] [stdout] 204 | pub fn spline_error(c: CubicBez, a: f64, b: f64) -> BezPath { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `est_err_bounds` is never used [INFO] [stdout] --> interactive/src/perturb.rs:231:8 [INFO] [stdout] | [INFO] [stdout] 231 | pub fn est_err_bounds(c: CubicBez, a: f64, b: f64) -> [f64; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scaling_test` is never used [INFO] [stdout] --> interactive/src/perturb.rs:298:8 [INFO] [stdout] | [INFO] [stdout] 298 | pub fn scaling_test(c: CubicBez, d: f64) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `linear_minmax` is never used [INFO] [stdout] --> interactive/src/perturb.rs:320:8 [INFO] [stdout] | [INFO] [stdout] 320 | pub fn linear_minmax(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `n` is never read [INFO] [stdout] --> interactive/src/perturb.rs:885:17 [INFO] [stdout] | [INFO] [stdout] 885 | let mut n = nm; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `one_point` is never used [INFO] [stdout] --> interactive/src/perturb.rs:347:8 [INFO] [stdout] | [INFO] [stdout] 347 | pub fn one_point(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `refine_one_point` is never used [INFO] [stdout] --> interactive/src/perturb.rs:387:8 [INFO] [stdout] | [INFO] [stdout] 387 | pub fn refine_one_point(c: CubicBez, d: f64, t: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TRY_ITP` is never used [INFO] [stdout] --> interactive/src/perturb.rs:476:7 [INFO] [stdout] | [INFO] [stdout] 476 | const TRY_ITP: bool = true; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `brute_midpoint` is never used [INFO] [stdout] --> interactive/src/perturb.rs:606:8 [INFO] [stdout] | [INFO] [stdout] 606 | pub fn brute_midpoint(c: CubicBez, d: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `brute_one_point` is never used [INFO] [stdout] --> interactive/src/perturb.rs:643:8 [INFO] [stdout] | [INFO] [stdout] 643 | pub fn brute_one_point(c: CubicBez, d: f64, t: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `linear_center` is never used [INFO] [stdout] --> interactive/src/perturb.rs:663:8 [INFO] [stdout] | [INFO] [stdout] 663 | pub fn linear_center(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `refine` is never used [INFO] [stdout] --> interactive/src/perturb.rs:682:8 [INFO] [stdout] | [INFO] [stdout] 682 | pub fn refine(c: CubicBez, a: f64, b: f64, d: f64) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `est_err_refined` is never used [INFO] [stdout] --> interactive/src/perturb.rs:697:8 [INFO] [stdout] | [INFO] [stdout] 697 | pub fn est_err_refined(c: CubicBez, a: f64, b: f64, d: f64) -> [f64; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `least_squares` is never used [INFO] [stdout] --> interactive/src/perturb.rs:722:8 [INFO] [stdout] | [INFO] [stdout] 722 | pub fn least_squares(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `arc_onept_linear` is never used [INFO] [stdout] --> interactive/src/perturb.rs:810:8 [INFO] [stdout] | [INFO] [stdout] 810 | pub fn arc_onept_linear(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `arc_onept_quadratic` is never used [INFO] [stdout] --> interactive/src/perturb.rs:836:8 [INFO] [stdout] | [INFO] [stdout] 836 | pub fn arc_onept_quadratic(c: CubicBez, d: f64) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from_a_b`, `apply`, `refine_ts`, and `refine_minmax` are never used [INFO] [stdout] --> interactive/src/perturb.rs:920:12 [INFO] [stdout] | [INFO] [stdout] 919 | impl OffsetSolution { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 920 | pub fn from_a_b(a: f64, b: f64, d: f64) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 925 | pub fn apply(&self, co: &CurveOffset) -> CubicBez { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 936 | pub fn refine_ts(&mut self, co: &CurveOffset) -> [f64; 3] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 956 | pub fn refine_minmax(&mut self, co: &CurveOffset) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `eval_err` is never used [INFO] [stdout] --> interactive/src/perturb.rs:1092:12 [INFO] [stdout] | [INFO] [stdout] 989 | impl OffsetSolutionLse { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 1092 | pub fn eval_err(&mut self, co: &CurveOffset) -> f64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_min` [INFO] [stdout] --> interactive/src/perturb.rs:1078:13 [INFO] [stdout] | [INFO] [stdout] 1078 | let err_min = err_min / self.d.powi(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_min` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_max` [INFO] [stdout] --> interactive/src/perturb.rs:1085:13 [INFO] [stdout] | [INFO] [stdout] 1085 | let err_max = err_max / self.d.powi(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_max` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_arc` [INFO] [stdout] --> interactive/src/main.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | let path_arc = c_arc.to_path(0.0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_arc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_arc` [INFO] [stdout] --> interactive/src/main.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | let err_arc = perturb::plot_scaled(&perturb::error_by_rays(c, d, c_arc), err_scale); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_arc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_arc_lse` [INFO] [stdout] --> interactive/src/main.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | let path_arc_lse = c_arc_lse.to_path(0.0); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_arc_lse` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_arc_lse_refined` [INFO] [stdout] --> interactive/src/main.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | let err_arc_lse_refined = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_arc_lse_refined` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> interactive/src/main.rs:111:16 [INFO] [stdout] | [INFO] [stdout] 111 | let (a, b, t) = perturb::arc_onept(c, d); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_ao` [INFO] [stdout] --> interactive/src/main.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | let path_ao = c_ao.to_path(0.0); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_ao` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_ao` [INFO] [stdout] --> interactive/src/main.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | let err_ao = perturb::plot_scaled(&perturb::error_by_rays(c, d, c_ao), err_scale); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_ao` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_onept3` [INFO] [stdout] --> interactive/src/main.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | let path_onept3 = c_onept3.to_path(0.0); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_onept3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err_onept3` [INFO] [stdout] --> interactive/src/main.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | let err_onept3 = perturb::plot_scaled(&perturb::error_by_rays(c, d, c_onept3), err_scale); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_onept3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `derr_plot` [INFO] [stdout] --> interactive/src/main.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | let derr_plot = perturb::plot(&perturb::onept_err_plot(c, d)); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_derr_plot` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path_midpoint_g1` [INFO] [stdout] --> interactive/src/main.rs:167:9 [INFO] [stdout] | [INFO] [stdout] 167 | let path_midpoint_g1 = c_midpoint_g1.to_path(0.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_midpoint_g1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `midpt_line` [INFO] [stdout] --> interactive/src/main.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | let midpt_line = Line::new( [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_midpt_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SCALE` is never used [INFO] [stdout] --> interactive/src/main.rs:124:11 [INFO] [stdout] | [INFO] [stdout] 124 | const SCALE: f64 = 1e-6; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CuspAnalysis` is never constructed [INFO] [stdout] --> interactive/src/cusp.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct CuspAnalysis { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VelMinimum` is never constructed [INFO] [stdout] --> interactive/src/cusp.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | struct VelMinimum { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `get_cusp` are never used [INFO] [stdout] --> interactive/src/cusp.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl CuspAnalysis { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 23 | /// Do cusp analysis based on hodograph of cubic Bezier. [INFO] [stdout] 24 | pub fn new(q: QuadBez) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn get_cusp(&self, range: Range) -> Option<(f64, Vec2)> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CUSP_EPSILON` is never used [INFO] [stdout] --> interactive/src/evolute.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const CUSP_EPSILON: f64 = 1e-12; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_DEPTH` is never used [INFO] [stdout] --> interactive/src/evolute.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const MAX_DEPTH: usize = 8; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `N_LSE` is never used [INFO] [stdout] --> interactive/src/evolute.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const N_LSE: usize = 8; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BLEND` is never used [INFO] [stdout] --> interactive/src/evolute.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const BLEND: f64 = 1e-2; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `c` and `tolerance` are never read [INFO] [stdout] --> interactive/src/evolute.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 16 | struct CubicEvolute { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 17 | c: CubicBez, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 22 | tolerance: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> interactive/src/evolute.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 25 | impl CubicEvolute { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 26 | fn new(c: CubicBez, tolerance: f64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | fn radius(&self, t: f64) -> f64 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | fn radius_deriv(&self, t: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | fn eval(&self, t: f64) -> Point { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | fn apply(&self, rec: &EvoluteRec, a: f64, b: f64) -> CubicBez { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn evolute_rec(&self, rec: &EvoluteRec, path: &mut BezPath) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn subdivide( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | fn eval_err(&self, rec: &EvoluteRec, c_approx: CubicBez, ts: &mut [f64; N_LSE]) -> f64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | fn refine_least_squares( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `evolute_hacky_approx` is never used [INFO] [stdout] --> interactive/src/evolute.rs:226:8 [INFO] [stdout] | [INFO] [stdout] 226 | pub fn evolute_hacky_approx(c: CubicBez) -> BezPath { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `evolute_approx_cubic` is never used [INFO] [stdout] --> interactive/src/evolute.rs:247:8 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn evolute_approx_cubic(c: CubicBez) -> CubicBez { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EvoluteRec` is never constructed [INFO] [stdout] --> interactive/src/evolute.rs:260:8 [INFO] [stdout] | [INFO] [stdout] 260 | struct EvoluteRec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `evolute_approx` is never used [INFO] [stdout] --> interactive/src/evolute.rs:273:8 [INFO] [stdout] | [INFO] [stdout] 273 | pub fn evolute_approx(c: CubicBez, tolerance: f64) -> BezPath { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `turn` is never used [INFO] [stdout] --> interactive/src/evolute.rs:301:4 [INFO] [stdout] | [INFO] [stdout] 301 | fn turn(v: Vec2) -> Vec2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `N` is never used [INFO] [stdout] --> interactive/src/kbound.rs:48:7 [INFO] [stdout] | [INFO] [stdout] 48 | const N: usize = 1; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kbound_refined` is never used [INFO] [stdout] --> interactive/src/kbound.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn kbound_refined(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `q_min_max_refined` is never used [INFO] [stdout] --> interactive/src/kbound.rs:84:4 [INFO] [stdout] | [INFO] [stdout] 84 | fn q_min_max_refined(c0: f64, c1: f64, c2: f64) -> ([f64; N], [f64; N]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `N_LSE` is never used [INFO] [stdout] --> interactive/src/offset.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const N_LSE: usize = 8; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BLEND` is never used [INFO] [stdout] --> interactive/src/offset.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const BLEND: f64 = 1e-2; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CubicOffset` is never constructed [INFO] [stdout] --> interactive/src/offset.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | struct CubicOffset { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OffsetRec` is never constructed [INFO] [stdout] --> interactive/src/offset.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | struct OffsetRec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ErrEval` is never constructed [INFO] [stdout] --> interactive/src/offset.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | struct ErrEval { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SubdivisionPoint` is never constructed [INFO] [stdout] --> interactive/src/offset.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | struct SubdivisionPoint { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CUSP_EPSILON` is never used [INFO] [stdout] --> interactive/src/offset.rs:69:7 [INFO] [stdout] | [INFO] [stdout] 69 | const CUSP_EPSILON: f64 = 1e-12; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_DEPTH` is never used [INFO] [stdout] --> interactive/src/offset.rs:74:7 [INFO] [stdout] | [INFO] [stdout] 74 | const MAX_DEPTH: usize = 8; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `offset_cubic` is never used [INFO] [stdout] --> interactive/src/offset.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn offset_cubic(c: CubicBez, d: f64, tolerance: f64) -> BezPath { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> interactive/src/offset.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 88 | impl CubicOffset { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 89 | /// Create a new curve from Bézier segment and offset. [INFO] [stdout] 90 | fn new(c: CubicBez, d: f64, tolerance: f64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | fn cusp_sign(&self, t: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | fn cusp_and_utan(&self, tan: Point, y: f64) -> (f64, Vec2) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | fn offset_rec(&self, rec: &OffsetRec, result: &mut BezPath) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | fn subdivide( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 233 | fn apply(&self, rec: &OffsetRec, a: f64, b: f64) -> CubicBez { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | fn least_squares(&self, rec: &OffsetRec) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | fn draw_arc(&self, rec: &OffsetRec) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 316 | fn one_point(&self, rec: &OffsetRec) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 333 | fn eval_err(&self, rec: &OffsetRec, c_approx: CubicBez, ts: &mut [f64; N_LSE]) -> ErrEval { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 380 | fn refine_least_squares(&self, rec: &OffsetRec, a: f64, b: f64, err: &ErrEval) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 409 | fn find_subdivision_point(&self, rec: &OffsetRec) -> SubdivisionPoint { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 454 | fn subdivide_for_tangent( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> interactive/src/offset.rs:496:8 [INFO] [stdout] | [INFO] [stdout] 495 | impl OffsetRec { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 496 | fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `turn` is never used [INFO] [stdout] --> interactive/src/offset.rs:534:4 [INFO] [stdout] | [INFO] [stdout] 534 | fn turn(v: Vec2) -> Vec2 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mk_a_weights` is never used [INFO] [stdout] --> interactive/src/offset.rs:538:10 [INFO] [stdout] | [INFO] [stdout] 538 | const fn mk_a_weights(rev: bool) -> [f64; N_LSE] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `A_WEIGHTS` is never used [INFO] [stdout] --> interactive/src/offset.rs:551:7 [INFO] [stdout] | [INFO] [stdout] 551 | const A_WEIGHTS: [f64; N_LSE] = mk_a_weights(false); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `B_WEIGHTS` is never used [INFO] [stdout] --> interactive/src/offset.rs:552:7 [INFO] [stdout] | [INFO] [stdout] 552 | const B_WEIGHTS: [f64; N_LSE] = mk_a_weights(true); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> interactive/src/perturb.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct CurveOffset { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 20 | b01xb12: f64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 21 | b01xb23: f64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 22 | b12xb23: f64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 23 | n0xb01: f64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 24 | n1xb01: f64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | n0xb12: f64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 26 | n1xb12: f64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 27 | n0xb23: f64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 28 | n1xb23: f64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `T1_FOR_OFFSET` is never used [INFO] [stdout] --> interactive/src/perturb.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | const T1_FOR_OFFSET: f64 = 0.2; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OFFSET_TS` is never used [INFO] [stdout] --> interactive/src/perturb.rs:32:7 [INFO] [stdout] | [INFO] [stdout] 32 | const OFFSET_TS: [f64; 3] = [T1_FOR_OFFSET, 0.5, 1. - T1_FOR_OFFSET]; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OffsetSolution` is never constructed [INFO] [stdout] --> interactive/src/perturb.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct OffsetSolution { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `coefs_at`, `error_at`, `deriv_error_at`, and `newton_step_t` are never used [INFO] [stdout] --> interactive/src/perturb.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 56 | impl CurveOffset { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 90 | fn coefs_at(&self, t: f64) -> (f64, f64, f64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | fn error_at(&self, t: f64, a: f64, b: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | fn deriv_error_at(&self, t: f64, a: f64, b: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | fn newton_step_t(&self, a: f64, b: f64, d: f64, t: f64, ta: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `two_point_approx` is never used [INFO] [stdout] --> interactive/src/perturb.rs:167:8 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn two_point_approx(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PLOT_TRANSLATE` is never used [INFO] [stdout] --> interactive/src/perturb.rs:181:7 [INFO] [stdout] | [INFO] [stdout] 181 | const PLOT_TRANSLATE: Vec2 = Vec2::new(100., 200.); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PLOT_SCALE` is never used [INFO] [stdout] --> interactive/src/perturb.rs:182:7 [INFO] [stdout] | [INFO] [stdout] 182 | const PLOT_SCALE: Affine = Affine::scale(500.0); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `plot_error` is never used [INFO] [stdout] --> interactive/src/perturb.rs:184:8 [INFO] [stdout] | [INFO] [stdout] 184 | pub fn plot_error(c: CubicBez, a: f64, b: f64) -> BezPath { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spline_error` is never used [INFO] [stdout] --> interactive/src/perturb.rs:204:8 [INFO] [stdout] | [INFO] [stdout] 204 | pub fn spline_error(c: CubicBez, a: f64, b: f64) -> BezPath { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `est_err_bounds` is never used [INFO] [stdout] --> interactive/src/perturb.rs:231:8 [INFO] [stdout] | [INFO] [stdout] 231 | pub fn est_err_bounds(c: CubicBez, a: f64, b: f64) -> [f64; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scaling_test` is never used [INFO] [stdout] --> interactive/src/perturb.rs:298:8 [INFO] [stdout] | [INFO] [stdout] 298 | pub fn scaling_test(c: CubicBez, d: f64) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `linear_minmax` is never used [INFO] [stdout] --> interactive/src/perturb.rs:320:8 [INFO] [stdout] | [INFO] [stdout] 320 | pub fn linear_minmax(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `one_point` is never used [INFO] [stdout] --> interactive/src/perturb.rs:347:8 [INFO] [stdout] | [INFO] [stdout] 347 | pub fn one_point(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `refine_one_point` is never used [INFO] [stdout] --> interactive/src/perturb.rs:387:8 [INFO] [stdout] | [INFO] [stdout] 387 | pub fn refine_one_point(c: CubicBez, d: f64, t: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TRY_ITP` is never used [INFO] [stdout] --> interactive/src/perturb.rs:476:7 [INFO] [stdout] | [INFO] [stdout] 476 | const TRY_ITP: bool = true; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `brute_midpoint` is never used [INFO] [stdout] --> interactive/src/perturb.rs:606:8 [INFO] [stdout] | [INFO] [stdout] 606 | pub fn brute_midpoint(c: CubicBez, d: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `brute_one_point` is never used [INFO] [stdout] --> interactive/src/perturb.rs:643:8 [INFO] [stdout] | [INFO] [stdout] 643 | pub fn brute_one_point(c: CubicBez, d: f64, t: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `linear_center` is never used [INFO] [stdout] --> interactive/src/perturb.rs:663:8 [INFO] [stdout] | [INFO] [stdout] 663 | pub fn linear_center(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `refine` is never used [INFO] [stdout] --> interactive/src/perturb.rs:682:8 [INFO] [stdout] | [INFO] [stdout] 682 | pub fn refine(c: CubicBez, a: f64, b: f64, d: f64) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `est_err_refined` is never used [INFO] [stdout] --> interactive/src/perturb.rs:697:8 [INFO] [stdout] | [INFO] [stdout] 697 | pub fn est_err_refined(c: CubicBez, a: f64, b: f64, d: f64) -> [f64; 3] { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `least_squares` is never used [INFO] [stdout] --> interactive/src/perturb.rs:722:8 [INFO] [stdout] | [INFO] [stdout] 722 | pub fn least_squares(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `arc_onept_linear` is never used [INFO] [stdout] --> interactive/src/perturb.rs:810:8 [INFO] [stdout] | [INFO] [stdout] 810 | pub fn arc_onept_linear(c: CubicBez) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `arc_onept_quadratic` is never used [INFO] [stdout] --> interactive/src/perturb.rs:836:8 [INFO] [stdout] | [INFO] [stdout] 836 | pub fn arc_onept_quadratic(c: CubicBez, d: f64) -> (f64, f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from_a_b`, `apply`, `refine_ts`, and `refine_minmax` are never used [INFO] [stdout] --> interactive/src/perturb.rs:920:12 [INFO] [stdout] | [INFO] [stdout] 919 | impl OffsetSolution { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 920 | pub fn from_a_b(a: f64, b: f64, d: f64) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 925 | pub fn apply(&self, co: &CurveOffset) -> CubicBez { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 936 | pub fn refine_ts(&mut self, co: &CurveOffset) -> [f64; 3] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 956 | pub fn refine_minmax(&mut self, co: &CurveOffset) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `eval_err` is never used [INFO] [stdout] --> interactive/src/perturb.rs:1092:12 [INFO] [stdout] | [INFO] [stdout] 989 | impl OffsetSolutionLse { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 1092 | pub fn eval_err(&mut self, co: &CurveOffset) -> f64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.11s [INFO] running `Command { std: "docker" "inspect" "408b10270a65f371743c98d52b85c85d634f8664bec515cf1e7669b26ab16df5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "408b10270a65f371743c98d52b85c85d634f8664bec515cf1e7669b26ab16df5", kill_on_drop: false }` [INFO] [stdout] 408b10270a65f371743c98d52b85c85d634f8664bec515cf1e7669b26ab16df5