@@ -932,14 +932,8 @@ abstract class StylesheetParser extends Parser {
932932 span: scanner.spanFrom (beforeName),
933933 ));
934934 } else if (equalsIgnoreCase (name, 'type' )) {
935- warnings.add ((
936- deprecation: Deprecation .typeFunction,
937- message: 'Sass @functions named "type" are deprecated for forward-'
938- 'compatibility with the plain CSS type() function.\n '
939- '\n '
940- 'For details, see https://sass-lang.com/d/type-function' ,
941- span: scanner.spanFrom (beforeName),
942- ));
935+ error ('This name is reserved for the plain-CSS function.' ,
936+ scanner.spanFrom (beforeName));
943937 }
944938
945939 whitespace (consumeNewlines: true );
@@ -2966,35 +2960,40 @@ abstract class StylesheetParser extends Parser {
29662960 /// [name] .
29672961 @protected
29682962 Expression ? trySpecialFunction (String name, LineScannerState start) {
2969- var normalized = unvendor (name);
2970-
29712963 InterpolationBuffer buffer;
2972- switch (normalized) {
2973- case "calc" when normalized != name && scanner.scanChar ($lparen):
2974- case "element" || "expression" when scanner.scanChar ($lparen):
2975- buffer = InterpolationBuffer ()
2976- ..write (name)
2977- ..writeCharCode ($lparen);
2978-
2979- case "progid" when scanner.scanChar ($colon):
2980- buffer = InterpolationBuffer ()
2981- ..write (name)
2982- ..writeCharCode ($colon);
2983- var next = scanner.peekChar ();
2984- while (next != null && (next.isAlphabetic || next == $dot)) {
2985- buffer.writeCharCode (scanner.readChar ());
2986- next = scanner.peekChar ();
2987- }
2988- scanner.expectChar ($lparen);
2989- buffer.writeCharCode ($lparen);
2964+ if (name == "type" && scanner.scanChar ($lparen)) {
2965+ buffer = InterpolationBuffer ()
2966+ ..write (name)
2967+ ..writeCharCode ($lparen);
2968+ } else {
2969+ var normalized = unvendor (name);
2970+ switch (normalized) {
2971+ case "calc" when normalized != name && scanner.scanChar ($lparen):
2972+ case "element" || "expression" when scanner.scanChar ($lparen):
2973+ buffer = InterpolationBuffer ()
2974+ ..write (name)
2975+ ..writeCharCode ($lparen);
2976+
2977+ case "progid" when scanner.scanChar ($colon):
2978+ buffer = InterpolationBuffer ()
2979+ ..write (name)
2980+ ..writeCharCode ($colon);
2981+ var next = scanner.peekChar ();
2982+ while (next != null && (next.isAlphabetic || next == $dot)) {
2983+ buffer.writeCharCode (scanner.readChar ());
2984+ next = scanner.peekChar ();
2985+ }
2986+ scanner.expectChar ($lparen);
2987+ buffer.writeCharCode ($lparen);
29902988
2991- case "url" :
2992- return _tryUrlContents (
2993- start,
2994- ).andThen ((contents) => StringExpression (contents));
2989+ case "url" :
2990+ return _tryUrlContents (
2991+ start,
2992+ ).andThen ((contents) => StringExpression (contents));
29952993
2996- case _:
2997- return null ;
2994+ case _:
2995+ return null ;
2996+ }
29982997 }
29992998
30002999 buffer.addInterpolation (_interpolatedDeclarationValue (allowEmpty: true ));
0 commit comments