@@ -56,6 +56,11 @@ abstract class StylesheetParser extends Parser {
56
56
/// Whether the parser is currently within a parenthesized expression.
57
57
var _inParentheses = false ;
58
58
59
+ /// Whether the parser is currently within an expression.
60
+ @protected
61
+ bool get inExpression => _inExpression;
62
+ var _inExpression = false ;
63
+
59
64
/// A map from all variable names that are assigned with `!global` in the
60
65
/// current stylesheet to the nodes where they're defined.
61
66
///
@@ -1686,7 +1691,9 @@ abstract class StylesheetParser extends Parser {
1686
1691
}
1687
1692
1688
1693
var start = scanner.state;
1694
+ var wasInExpression = _inExpression;
1689
1695
var wasInParentheses = _inParentheses;
1696
+ _inExpression = true ;
1690
1697
1691
1698
// We use the convention below of referring to nullable variables that are
1692
1699
// shared across anonymous functions in this method with a trailing
@@ -2039,11 +2046,13 @@ abstract class StylesheetParser extends Parser {
2039
2046
_inParentheses = wasInParentheses;
2040
2047
var singleExpression = singleExpression_;
2041
2048
if (singleExpression != null ) commaExpressions.add (singleExpression);
2049
+ _inExpression = wasInExpression;
2042
2050
return ListExpression (commaExpressions, ListSeparator .comma,
2043
2051
scanner.spanFrom (beforeBracket ?? start),
2044
2052
brackets: bracketList);
2045
2053
} else if (bracketList && spaceExpressions != null ) {
2046
2054
resolveOperations ();
2055
+ _inExpression = wasInExpression;
2047
2056
return ListExpression (spaceExpressions..add (singleExpression_! ),
2048
2057
ListSeparator .space, scanner.spanFrom (beforeBracket! ),
2049
2058
brackets: true );
@@ -2054,6 +2063,7 @@ abstract class StylesheetParser extends Parser {
2054
2063
ListSeparator .undecided, scanner.spanFrom (beforeBracket! ),
2055
2064
brackets: true );
2056
2065
}
2066
+ _inExpression = wasInExpression;
2057
2067
return singleExpression_! ;
2058
2068
}
2059
2069
}
0 commit comments