From e1a98cd6dcd4ef95e232944fe3574ee31d7bc048 Mon Sep 17 00:00:00 2001 From: Olzhas Suleimen Date: Tue, 19 Mar 2024 21:43:21 +0500 Subject: [PATCH] Update processFont to handle null expressions. (dart-lang/csslib#186) * Update processFont to handle null expressions. * Guidelines. --- pkgs/csslib/CHANGELOG.md | 3 ++- pkgs/csslib/lib/parser.dart | 6 +++--- pkgs/csslib/test/declaration_test.dart | 28 ++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/pkgs/csslib/CHANGELOG.md b/pkgs/csslib/CHANGELOG.md index 071dad01c..39c84cbf8 100644 --- a/pkgs/csslib/CHANGELOG.md +++ b/pkgs/csslib/CHANGELOG.md @@ -1,6 +1,7 @@ ## 1.0.1-wip -- Require Dart 3.0 +- Update `ExpressionsProcessor.processFont` to handle null expressions. +- Require Dart 3.0. ## 1.0.0 diff --git a/pkgs/csslib/lib/parser.dart b/pkgs/csslib/lib/parser.dart index e9780694e..837007d96 100644 --- a/pkgs/csslib/lib/parser.dart +++ b/pkgs/csslib/lib/parser.dart @@ -2836,9 +2836,9 @@ class ExpressionsProcessor { } return FontExpression(_exprs.span, - size: fontSize!.font.size, - lineHeight: fontSize.font.lineHeight, - family: fontFamily!.font.family); + size: fontSize?.font.size, + lineHeight: fontSize?.font.lineHeight, + family: fontFamily?.font.family); } } diff --git a/pkgs/csslib/test/declaration_test.dart b/pkgs/csslib/test/declaration_test.dart index 5dc24f613..6406efdd9 100644 --- a/pkgs/csslib/test/declaration_test.dart +++ b/pkgs/csslib/test/declaration_test.dart @@ -260,6 +260,33 @@ void testUnits() { expect(prettyPrint(stylesheet), generated); } +void testNoValues() { + var errors = []; + final input = r''' +.foo { + color: ; +} +.bar { + font:; + color: blue; +} +'''; + + final generated = r''' +.foo { + color: ; +} +.bar { + font: ; + color: #00f; +}'''; + + var stylesheet = parseCss(input, errors: errors, opts: simpleOptions); + + expect(errors.isEmpty, true, reason: errors.toString()); + expect(prettyPrint(stylesheet), generated); +} + void testUnicode() { var errors = []; final input = r''' @@ -1435,6 +1462,7 @@ void main() { test('Identifiers', testIdentifiers); test('Composites', testComposites); test('Units', testUnits); + test('No Values', testNoValues); test('Unicode', testUnicode); test('Newer CSS', testNewerCss); test('Media Queries', testMediaQueries);