Reject invalid fill angles in JSON arraypolar (#2655)

Found while testing crates/engine/src/cmd/array.rs:380 (run_arraypolar, `fill: f64_or(p, "angle", 360.0)`)

Co-authored-by: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
NetterSilver
2026-11-02 14:26:28 -07:00
committed by GitHub
co-authored by Claude Haiku 5.5
parent c0306b1af3
commit 4a17ee78c2
2 changed files with 22 additions and 1 deletions
+5 -1
View File
@@ -374,10 +374,14 @@ fn run_arraypolar(s: &mut Session, p: &Value) -> Result<Value> {
check_size(s, n.saturating_mul(rows).saturating_mul(levels), hs.len())?;
let base = point_param(p, "base").or_else(|| s.doc().ok().and_then(|d| first_center(d, &hs))).unwrap_or(c);
let row_spacing = f64_or(p, "rowSpacing", 1.0);
let fill = f64_or(p, "angle", 360.0);
if !(fill.abs() >= 1e-9 && fill.abs() <= 360.0 + 1e-9) {
return Err(other("Requires a fill angle between -360 and 360 degrees (not 0)."));
}
let kind = ArrayKind::Polar(PolarArray {
center: c - base,
items: count32(n),
fill: f64_or(p, "angle", 360.0),
fill: fill.clamp(-360.0, 360.0),
rotate: bool_or(p, "rotate", true),
rows: count32(rows),
row_spacing,