From 1bd774485dfb1b6fc14ebd83cc864ba46d0708e2 Mon Sep 17 00:00:00 2001 From: Natalie Weizenbaum Date: Mon, 18 Jul 2022 17:57:45 -0700 Subject: [PATCH] Deprecate passing non-`deg` units to `hwb()`'s `$hue` argument (#1747) This was overlooked in #1175, because the spec said that `hwb()` should already be throwing an error if non-`deg` units were passed. However, Dart Sass didn't implement the spec correctly and these units were in fact not being checked at all. See #1174 --- CHANGELOG.md | 2 ++ lib/src/functions/color.dart | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d71c1373..2f828ad04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ See https://sass-lang.com/d/bogus-combinators for more details. +* Deprecate passing non-`deg` units to `color.hwb()`'s `$hue` argument. + ### JS API * Add a `charset` option that controls whether or not Sass emits a diff --git a/lib/src/functions/color.dart b/lib/src/functions/color.dart index cd2b2f570..a2fb78194 100644 --- a/lib/src/functions/color.dart +++ b/lib/src/functions/color.dart @@ -121,7 +121,7 @@ final global = UnmodifiableListView([ _function("adjust-hue", r"$color, $degrees", (arguments) { var color = arguments[0].assertColor("color"); var degrees = arguments[1].assertNumber("degrees"); - _checkAngle(degrees); + _checkAngle(degrees, "degrees"); return color.changeHsl(hue: color.hue + degrees.value); }), @@ -635,7 +635,7 @@ Value _hsl(String name, List arguments) { } /// Prints a deprecation warning if [hue] has a unit other than `deg`. -void _checkAngle(SassNumber angle, [String? name]) { +void _checkAngle(SassNumber angle, String name) { if (!angle.hasUnits || angle.hasUnit('deg')) return; var message = StringBuffer() @@ -692,6 +692,7 @@ Value _hwb(List arguments) { var whiteness = arguments[1].assertNumber("whiteness"); var blackness = arguments[2].assertNumber("blackness"); + _checkAngle(hue, "hue"); whiteness.assertUnit("%", "whiteness"); blackness.assertUnit("%", "blackness");