fix(css/parser): Fix parsing of escaped characters (#2700)

This commit is contained in:
Alexander Akait 2021-11-10 15:49:32 +03:00 committed by GitHub
parent 3adeb6bf30
commit d8ddb2fb99
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 394 additions and 175 deletions

View File

@ -87,11 +87,6 @@ impl<I> Lexer<I>
where
I: Input,
{
// #[inline]
// fn current_input_code_point(&mut self) -> Option<char> {
// self.input.clone().nth(-1).map(|i| i.1)
// }
fn read_token(&mut self) -> LexResult<Token> {
// Consume comments.
// If the next two input code point are U+002F SOLIDUS (/) followed by a U+002A
@ -540,7 +535,6 @@ where
// Create a <function-token> with its value set to string and return it.
else if self.input.cur() == Some('(') {
self.input.bump();
self.last_pos = Some(self.input.cur_pos());
return Ok(Token::Function {
value: name.0,
@ -587,7 +581,6 @@ where
Some(c) if c == ending_code_point.unwrap() => {
self.input.bump();
raw.push(c);
self.last_pos = Some(self.input.cur_pos());
break;
}
@ -677,8 +670,6 @@ where
// Repeatedly consume the next input code point from the stream:
loop {
self.last_pos = None;
match self.input.cur() {
// U+0029 RIGHT PARENTHESIS ())
// Return the <url-token>.
@ -843,8 +834,6 @@ where
hex = hex * 16 + digit;
}
self.last_pos = Some(self.input.cur_pos());
// If the next input code point is whitespace, consume it as well.
let next = self.input.cur();
@ -1049,7 +1038,6 @@ where
// name code point
// Append the code point to result.
Some(c) if is_name(c) => {
self.last_pos = None;
self.input.bump();
value.push(c);

View File

@ -17,7 +17,7 @@
"type": "SelectorList",
"span": {
"start": 0,
"end": 3,
"end": 4,
"ctxt": 0
},
"children": [
@ -25,7 +25,7 @@
"type": "ComplexSelector",
"span": {
"start": 0,
"end": 3,
"end": 4,
"ctxt": 0
},
"children": [
@ -33,7 +33,7 @@
"type": "CompoundSelector",
"span": {
"start": 0,
"end": 3,
"end": 4,
"ctxt": 0
},
"nestingSelector": null,
@ -41,7 +41,7 @@
"type": "TypeSelector",
"span": {
"start": 0,
"end": 3,
"end": 4,
"ctxt": 0
},
"prefix": null,
@ -49,7 +49,7 @@
"type": "Text",
"span": {
"start": 0,
"end": 3,
"end": 4,
"ctxt": 0
},
"value": "-",

View File

@ -20,31 +20,31 @@ error: SelectorList
--> $DIR/tests/fixture/esbuild/misc/-8o_H6sq86TDAHqF7YO0hg/input.css:1:1
|
1 | \2d {}
| ^^^
| ^^^^
error: ComplexSelector
--> $DIR/tests/fixture/esbuild/misc/-8o_H6sq86TDAHqF7YO0hg/input.css:1:1
|
1 | \2d {}
| ^^^
| ^^^^
error: CompoundSelector
--> $DIR/tests/fixture/esbuild/misc/-8o_H6sq86TDAHqF7YO0hg/input.css:1:1
|
1 | \2d {}
| ^^^
| ^^^^
error: TypeSelector
--> $DIR/tests/fixture/esbuild/misc/-8o_H6sq86TDAHqF7YO0hg/input.css:1:1
|
1 | \2d {}
| ^^^
| ^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/-8o_H6sq86TDAHqF7YO0hg/input.css:1:1
|
1 | \2d {}
| ^^^
| ^^^^
error: Block
--> $DIR/tests/fixture/esbuild/misc/-8o_H6sq86TDAHqF7YO0hg/input.css:1:5

View File

@ -17,7 +17,7 @@
"type": "SelectorList",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"children": [
@ -25,7 +25,7 @@
"type": "ComplexSelector",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"children": [
@ -33,7 +33,7 @@
"type": "CompoundSelector",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"nestingSelector": null,
@ -41,7 +41,7 @@
"type": "TypeSelector",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"prefix": null,
@ -49,7 +49,7 @@
"type": "Text",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"value": "--",

View File

@ -20,31 +20,31 @@ error: SelectorList
--> $DIR/tests/fixture/esbuild/misc/0yo6flt6jo-UA8rUEFjrWA/input.css:1:1
|
1 | -\2d {}
| ^^^^
| ^^^^^
error: ComplexSelector
--> $DIR/tests/fixture/esbuild/misc/0yo6flt6jo-UA8rUEFjrWA/input.css:1:1
|
1 | -\2d {}
| ^^^^
| ^^^^^
error: CompoundSelector
--> $DIR/tests/fixture/esbuild/misc/0yo6flt6jo-UA8rUEFjrWA/input.css:1:1
|
1 | -\2d {}
| ^^^^
| ^^^^^
error: TypeSelector
--> $DIR/tests/fixture/esbuild/misc/0yo6flt6jo-UA8rUEFjrWA/input.css:1:1
|
1 | -\2d {}
| ^^^^
| ^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/0yo6flt6jo-UA8rUEFjrWA/input.css:1:1
|
1 | -\2d {}
| ^^^^
| ^^^^^
error: Block
--> $DIR/tests/fixture/esbuild/misc/0yo6flt6jo-UA8rUEFjrWA/input.css:1:6

View File

@ -17,7 +17,7 @@
"type": "SelectorList",
"span": {
"start": 0,
"end": 5,
"end": 6,
"ctxt": 0
},
"children": [
@ -25,7 +25,7 @@
"type": "ComplexSelector",
"span": {
"start": 0,
"end": 5,
"end": 6,
"ctxt": 0
},
"children": [
@ -33,7 +33,7 @@
"type": "CompoundSelector",
"span": {
"start": 0,
"end": 5,
"end": 6,
"ctxt": 0
},
"nestingSelector": null,
@ -43,14 +43,14 @@
"type": "IdSelector",
"span": {
"start": 0,
"end": 5,
"end": 6,
"ctxt": 0
},
"text": {
"type": "Text",
"span": {
"start": 0,
"end": 5,
"end": 6,
"ctxt": 0
},
"value": "--",

View File

@ -20,37 +20,37 @@ error: SelectorList
--> $DIR/tests/fixture/esbuild/misc/1JQzQJ1QtQJ1onUzZx7BVg/input.css:1:1
|
1 | #-\2d {}
| ^^^^^
| ^^^^^^
error: ComplexSelector
--> $DIR/tests/fixture/esbuild/misc/1JQzQJ1QtQJ1onUzZx7BVg/input.css:1:1
|
1 | #-\2d {}
| ^^^^^
| ^^^^^^
error: CompoundSelector
--> $DIR/tests/fixture/esbuild/misc/1JQzQJ1QtQJ1onUzZx7BVg/input.css:1:1
|
1 | #-\2d {}
| ^^^^^
| ^^^^^^
error: SubclassSelector
--> $DIR/tests/fixture/esbuild/misc/1JQzQJ1QtQJ1onUzZx7BVg/input.css:1:1
|
1 | #-\2d {}
| ^^^^^
| ^^^^^^
error: IdSelector
--> $DIR/tests/fixture/esbuild/misc/1JQzQJ1QtQJ1onUzZx7BVg/input.css:1:1
|
1 | #-\2d {}
| ^^^^^
| ^^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/1JQzQJ1QtQJ1onUzZx7BVg/input.css:1:1
|
1 | #-\2d {}
| ^^^^^
| ^^^^^^
error: Block
--> $DIR/tests/fixture/esbuild/misc/1JQzQJ1QtQJ1onUzZx7BVg/input.css:1:7

View File

@ -74,7 +74,7 @@
"type": "Declaration",
"span": {
"start": 4,
"end": 17,
"end": 18,
"ctxt": 0
},
"property": {
@ -92,14 +92,14 @@
"type": "UnitValue",
"span": {
"start": 11,
"end": 17,
"end": 18,
"ctxt": 0
},
"value": {
"type": "Number",
"span": {
"start": 11,
"end": 12,
"end": 13,
"ctxt": 0
},
"value": 10.0,
@ -107,8 +107,8 @@
},
"unit": {
"span": {
"start": 12,
"end": 17,
"start": 13,
"end": 18,
"ctxt": 0
},
"value": "x,",

View File

@ -56,7 +56,7 @@ error: Declaration
--> $DIR/tests/fixture/esbuild/misc/866Law8W0FQas7QMxFjUbw/input.css:1:5
|
1 | a { value: 10x\2c }
| ^^^^^^^^^^^^^
| ^^^^^^^^^^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/866Law8W0FQas7QMxFjUbw/input.css:1:5
@ -68,22 +68,22 @@ error: Value
--> $DIR/tests/fixture/esbuild/misc/866Law8W0FQas7QMxFjUbw/input.css:1:12
|
1 | a { value: 10x\2c }
| ^^^^^^
| ^^^^^^^
error: UnitValue
--> $DIR/tests/fixture/esbuild/misc/866Law8W0FQas7QMxFjUbw/input.css:1:12
|
1 | a { value: 10x\2c }
| ^^^^^^
| ^^^^^^^
error: Num
--> $DIR/tests/fixture/esbuild/misc/866Law8W0FQas7QMxFjUbw/input.css:1:12
|
1 | a { value: 10x\2c }
| ^
| ^^
error: Unit
--> $DIR/tests/fixture/esbuild/misc/866Law8W0FQas7QMxFjUbw/input.css:1:13
--> $DIR/tests/fixture/esbuild/misc/866Law8W0FQas7QMxFjUbw/input.css:1:14
|
1 | a { value: 10x\2c }
| ^^^^^

View File

@ -74,7 +74,7 @@
"type": "Declaration",
"span": {
"start": 4,
"end": 15,
"end": 16,
"ctxt": 0
},
"property": {
@ -92,7 +92,7 @@
"type": "Text",
"span": {
"start": 11,
"end": 15,
"end": 16,
"ctxt": 0
},
"value": "x,",

View File

@ -56,7 +56,7 @@ error: Declaration
--> $DIR/tests/fixture/esbuild/misc/AwZM5l5vBlyrbgG-Fk0_EQ/input.css:1:5
|
1 | a { value: x\2c }
| ^^^^^^^^^^^
| ^^^^^^^^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/AwZM5l5vBlyrbgG-Fk0_EQ/input.css:1:5
@ -68,11 +68,11 @@ error: Value
--> $DIR/tests/fixture/esbuild/misc/AwZM5l5vBlyrbgG-Fk0_EQ/input.css:1:12
|
1 | a { value: x\2c }
| ^^^^
| ^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/AwZM5l5vBlyrbgG-Fk0_EQ/input.css:1:12
|
1 | a { value: x\2c }
| ^^^^
| ^^^^^

View File

@ -74,7 +74,7 @@
"type": "Declaration",
"span": {
"start": 4,
"end": 14,
"end": 15,
"ctxt": 0
},
"property": {
@ -92,7 +92,7 @@
"type": "Text",
"span": {
"start": 11,
"end": 14,
"end": 15,
"ctxt": 0
},
"value": "x\u0000",

View File

@ -56,7 +56,7 @@ error: Declaration
--> $DIR/tests/fixture/esbuild/misc/D5Oyf1ABeS8lie5Lg-5pqg/input.css:1:5
|
1 | a { value: x\0 }
| ^^^^^^^^^^
| ^^^^^^^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/D5Oyf1ABeS8lie5Lg-5pqg/input.css:1:5
@ -68,11 +68,11 @@ error: Value
--> $DIR/tests/fixture/esbuild/misc/D5Oyf1ABeS8lie5Lg-5pqg/input.css:1:12
|
1 | a { value: x\0 }
| ^^^
| ^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/D5Oyf1ABeS8lie5Lg-5pqg/input.css:1:12
|
1 | a { value: x\0 }
| ^^^
| ^^^^

View File

@ -74,7 +74,7 @@
"type": "Declaration",
"span": {
"start": 4,
"end": 14,
"end": 15,
"ctxt": 0
},
"property": {
@ -92,7 +92,7 @@
"type": "Text",
"span": {
"start": 11,
"end": 14,
"end": 15,
"ctxt": 0
},
"value": "x\u0001",

View File

@ -56,7 +56,7 @@ error: Declaration
--> $DIR/tests/fixture/esbuild/misc/F-AbRDwG_3dGLhE7pzr5aA/input.css:1:5
|
1 | a { value: x\1 }
| ^^^^^^^^^^
| ^^^^^^^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/F-AbRDwG_3dGLhE7pzr5aA/input.css:1:5
@ -68,11 +68,11 @@ error: Value
--> $DIR/tests/fixture/esbuild/misc/F-AbRDwG_3dGLhE7pzr5aA/input.css:1:12
|
1 | a { value: x\1 }
| ^^^
| ^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/F-AbRDwG_3dGLhE7pzr5aA/input.css:1:12
|
1 | a { value: x\1 }
| ^^^
| ^^^^

View File

@ -17,7 +17,7 @@
"type": "SelectorList",
"span": {
"start": 0,
"end": 3,
"end": 4,
"ctxt": 0
},
"children": [
@ -25,7 +25,7 @@
"type": "ComplexSelector",
"span": {
"start": 0,
"end": 3,
"end": 4,
"ctxt": 0
},
"children": [
@ -33,7 +33,7 @@
"type": "CompoundSelector",
"span": {
"start": 0,
"end": 3,
"end": 4,
"ctxt": 0
},
"nestingSelector": null,
@ -41,7 +41,7 @@
"type": "TypeSelector",
"span": {
"start": 0,
"end": 3,
"end": 4,
"ctxt": 0
},
"prefix": null,
@ -49,7 +49,7 @@
"type": "Text",
"span": {
"start": 0,
"end": 3,
"end": 4,
"ctxt": 0
},
"value": "*",

View File

@ -20,31 +20,31 @@ error: SelectorList
--> $DIR/tests/fixture/esbuild/misc/GNiHtd4OPiZDQlN5KGAmRQ/input.css:1:1
|
1 | \2a {}
| ^^^
| ^^^^
error: ComplexSelector
--> $DIR/tests/fixture/esbuild/misc/GNiHtd4OPiZDQlN5KGAmRQ/input.css:1:1
|
1 | \2a {}
| ^^^
| ^^^^
error: CompoundSelector
--> $DIR/tests/fixture/esbuild/misc/GNiHtd4OPiZDQlN5KGAmRQ/input.css:1:1
|
1 | \2a {}
| ^^^
| ^^^^
error: TypeSelector
--> $DIR/tests/fixture/esbuild/misc/GNiHtd4OPiZDQlN5KGAmRQ/input.css:1:1
|
1 | \2a {}
| ^^^
| ^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/GNiHtd4OPiZDQlN5KGAmRQ/input.css:1:1
|
1 | \2a {}
| ^^^
| ^^^^
error: Block
--> $DIR/tests/fixture/esbuild/misc/GNiHtd4OPiZDQlN5KGAmRQ/input.css:1:5

View File

@ -17,7 +17,7 @@
"type": "SelectorList",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"children": [
@ -25,7 +25,7 @@
"type": "ComplexSelector",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"children": [
@ -33,7 +33,7 @@
"type": "CompoundSelector",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"nestingSelector": null,
@ -43,14 +43,14 @@
"type": "IdSelector",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"text": {
"type": "Text",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"value": "-",

View File

@ -20,37 +20,37 @@ error: SelectorList
--> $DIR/tests/fixture/esbuild/misc/PwUHqMTSmtZW7IYn9gsinQ/input.css:1:1
|
1 | #\2d {}
| ^^^^
| ^^^^^
error: ComplexSelector
--> $DIR/tests/fixture/esbuild/misc/PwUHqMTSmtZW7IYn9gsinQ/input.css:1:1
|
1 | #\2d {}
| ^^^^
| ^^^^^
error: CompoundSelector
--> $DIR/tests/fixture/esbuild/misc/PwUHqMTSmtZW7IYn9gsinQ/input.css:1:1
|
1 | #\2d {}
| ^^^^
| ^^^^^
error: SubclassSelector
--> $DIR/tests/fixture/esbuild/misc/PwUHqMTSmtZW7IYn9gsinQ/input.css:1:1
|
1 | #\2d {}
| ^^^^
| ^^^^^
error: IdSelector
--> $DIR/tests/fixture/esbuild/misc/PwUHqMTSmtZW7IYn9gsinQ/input.css:1:1
|
1 | #\2d {}
| ^^^^
| ^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/PwUHqMTSmtZW7IYn9gsinQ/input.css:1:1
|
1 | #\2d {}
| ^^^^
| ^^^^^
error: Block
--> $DIR/tests/fixture/esbuild/misc/PwUHqMTSmtZW7IYn9gsinQ/input.css:1:6

View File

@ -17,7 +17,7 @@
"type": "Text",
"span": {
"start": 7,
"end": 25,
"end": 26,
"ctxt": 0
},
"value": "\u0000screen,screen\t",

View File

@ -26,11 +26,11 @@ error: MediaQuery
--> $DIR/tests/fixture/esbuild/misc/fkG7TT4zrV2k19c3t785gQ/input.css:1:8
|
1 | @media \0screen\,screen\9 {}
| ^^^^^^^^^^^^^^^^^^
| ^^^^^^^^^^^^^^^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/fkG7TT4zrV2k19c3t785gQ/input.css:1:8
|
1 | @media \0screen\,screen\9 {}
| ^^^^^^^^^^^^^^^^^^
| ^^^^^^^^^^^^^^^^^^^

View File

@ -74,7 +74,7 @@
"type": "Declaration",
"span": {
"start": 4,
"end": 16,
"end": 17,
"ctxt": 0
},
"property": {
@ -92,7 +92,7 @@
"type": "HashValue",
"span": {
"start": 11,
"end": 16,
"end": 17,
"ctxt": 0
},
"value": "x,",

View File

@ -56,7 +56,7 @@ error: Declaration
--> $DIR/tests/fixture/esbuild/misc/gxBoWO36fKxIuYwPzrWyKQ/input.css:1:5
|
1 | a { value: #x\2c }
| ^^^^^^^^^^^^
| ^^^^^^^^^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/gxBoWO36fKxIuYwPzrWyKQ/input.css:1:5
@ -68,11 +68,11 @@ error: Value
--> $DIR/tests/fixture/esbuild/misc/gxBoWO36fKxIuYwPzrWyKQ/input.css:1:12
|
1 | a { value: #x\2c }
| ^^^^^
| ^^^^^^
error: HashValue
--> $DIR/tests/fixture/esbuild/misc/gxBoWO36fKxIuYwPzrWyKQ/input.css:1:12
|
1 | a { value: #x\2c }
| ^^^^^
| ^^^^^^

View File

@ -17,7 +17,7 @@
"type": "SelectorList",
"span": {
"start": 0,
"end": 7,
"end": 8,
"ctxt": 0
},
"children": [
@ -25,7 +25,7 @@
"type": "ComplexSelector",
"span": {
"start": 0,
"end": 7,
"end": 8,
"ctxt": 0
},
"children": [
@ -33,7 +33,7 @@
"type": "CompoundSelector",
"span": {
"start": 0,
"end": 7,
"end": 8,
"ctxt": 0
},
"nestingSelector": null,
@ -61,14 +61,14 @@
"type": "IdSelector",
"span": {
"start": 3,
"end": 7,
"end": 8,
"ctxt": 0
},
"text": {
"type": "Text",
"span": {
"start": 3,
"end": 7,
"end": 8,
"ctxt": 0
},
"value": "0",

View File

@ -20,19 +20,19 @@ error: SelectorList
--> $DIR/tests/fixture/esbuild/misc/hfprsTDi2yEOOmPdjb8Cew/input.css:1:1
|
1 | div#\30 {}
| ^^^^^^^
| ^^^^^^^^
error: ComplexSelector
--> $DIR/tests/fixture/esbuild/misc/hfprsTDi2yEOOmPdjb8Cew/input.css:1:1
|
1 | div#\30 {}
| ^^^^^^^
| ^^^^^^^^
error: CompoundSelector
--> $DIR/tests/fixture/esbuild/misc/hfprsTDi2yEOOmPdjb8Cew/input.css:1:1
|
1 | div#\30 {}
| ^^^^^^^
| ^^^^^^^^
error: TypeSelector
--> $DIR/tests/fixture/esbuild/misc/hfprsTDi2yEOOmPdjb8Cew/input.css:1:1
@ -50,19 +50,19 @@ error: SubclassSelector
--> $DIR/tests/fixture/esbuild/misc/hfprsTDi2yEOOmPdjb8Cew/input.css:1:4
|
1 | div#\30 {}
| ^^^^
| ^^^^^
error: IdSelector
--> $DIR/tests/fixture/esbuild/misc/hfprsTDi2yEOOmPdjb8Cew/input.css:1:4
|
1 | div#\30 {}
| ^^^^
| ^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/hfprsTDi2yEOOmPdjb8Cew/input.css:1:4
|
1 | div#\30 {}
| ^^^^
| ^^^^^
error: Block
--> $DIR/tests/fixture/esbuild/misc/hfprsTDi2yEOOmPdjb8Cew/input.css:1:9

View File

@ -17,7 +17,7 @@
"type": "SelectorList",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"children": [
@ -25,7 +25,7 @@
"type": "ComplexSelector",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"children": [
@ -33,7 +33,7 @@
"type": "CompoundSelector",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"nestingSelector": null,
@ -43,14 +43,14 @@
"type": "IdSelector",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"text": {
"type": "Text",
"span": {
"start": 0,
"end": 4,
"end": 5,
"ctxt": 0
},
"value": "0",

View File

@ -20,37 +20,37 @@ error: SelectorList
--> $DIR/tests/fixture/esbuild/misc/wIDDuubF_bj7wmG8T_koVw/input.css:1:1
|
1 | #\30 {}
| ^^^^
| ^^^^^
error: ComplexSelector
--> $DIR/tests/fixture/esbuild/misc/wIDDuubF_bj7wmG8T_koVw/input.css:1:1
|
1 | #\30 {}
| ^^^^
| ^^^^^
error: CompoundSelector
--> $DIR/tests/fixture/esbuild/misc/wIDDuubF_bj7wmG8T_koVw/input.css:1:1
|
1 | #\30 {}
| ^^^^
| ^^^^^
error: SubclassSelector
--> $DIR/tests/fixture/esbuild/misc/wIDDuubF_bj7wmG8T_koVw/input.css:1:1
|
1 | #\30 {}
| ^^^^
| ^^^^^
error: IdSelector
--> $DIR/tests/fixture/esbuild/misc/wIDDuubF_bj7wmG8T_koVw/input.css:1:1
|
1 | #\30 {}
| ^^^^
| ^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/wIDDuubF_bj7wmG8T_koVw/input.css:1:1
|
1 | #\30 {}
| ^^^^
| ^^^^^
error: Block
--> $DIR/tests/fixture/esbuild/misc/wIDDuubF_bj7wmG8T_koVw/input.css:1:6

View File

@ -74,7 +74,7 @@
"type": "Declaration",
"span": {
"start": 4,
"end": 16,
"end": 17,
"ctxt": 0
},
"property": {
@ -92,14 +92,14 @@
"type": "AtTextValue",
"span": {
"start": 11,
"end": 16,
"end": 17,
"ctxt": 0
},
"name": {
"type": "Text",
"span": {
"start": 11,
"end": 16,
"end": 17,
"ctxt": 0
},
"value": "x,",

View File

@ -56,7 +56,7 @@ error: Declaration
--> $DIR/tests/fixture/esbuild/misc/xVWGh0UpWtRUrgqbJEENWA/input.css:1:5
|
1 | a { value: @x\2c }
| ^^^^^^^^^^^^
| ^^^^^^^^^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/xVWGh0UpWtRUrgqbJEENWA/input.css:1:5
@ -68,17 +68,17 @@ error: Value
--> $DIR/tests/fixture/esbuild/misc/xVWGh0UpWtRUrgqbJEENWA/input.css:1:12
|
1 | a { value: @x\2c }
| ^^^^^
| ^^^^^^
error: AtTextValue
--> $DIR/tests/fixture/esbuild/misc/xVWGh0UpWtRUrgqbJEENWA/input.css:1:12
|
1 | a { value: @x\2c }
| ^^^^^
| ^^^^^^
error: Text
--> $DIR/tests/fixture/esbuild/misc/xVWGh0UpWtRUrgqbJEENWA/input.css:1:12
|
1 | a { value: @x\2c }
| ^^^^^
| ^^^^^^

View File

@ -754,7 +754,7 @@
"type": "SelectorList",
"span": {
"start": 115,
"end": 119,
"end": 122,
"ctxt": 0
},
"children": [
@ -762,7 +762,7 @@
"type": "ComplexSelector",
"span": {
"start": 115,
"end": 119,
"end": 122,
"ctxt": 0
},
"children": [
@ -770,7 +770,7 @@
"type": "CompoundSelector",
"span": {
"start": 115,
"end": 119,
"end": 122,
"ctxt": 0
},
"nestingSelector": null,
@ -780,14 +780,14 @@
"type": "ClassSelector",
"span": {
"start": 115,
"end": 119,
"end": 122,
"ctxt": 0
},
"text": {
"type": "Text",
"span": {
"start": 116,
"end": 119,
"end": 122,
"ctxt": 0
},
"value": ":)",
@ -821,7 +821,7 @@
"type": "SelectorList",
"span": {
"start": 126,
"end": 130,
"end": 135,
"ctxt": 0
},
"children": [
@ -829,7 +829,7 @@
"type": "ComplexSelector",
"span": {
"start": 126,
"end": 130,
"end": 135,
"ctxt": 0
},
"children": [
@ -837,7 +837,7 @@
"type": "CompoundSelector",
"span": {
"start": 126,
"end": 130,
"end": 135,
"ctxt": 0
},
"nestingSelector": null,
@ -847,14 +847,14 @@
"type": "ClassSelector",
"span": {
"start": 126,
"end": 130,
"end": 135,
"ctxt": 0
},
"text": {
"type": "Text",
"span": {
"start": 127,
"end": 130,
"end": 135,
"ctxt": 0
},
"value": ":`(",

View File

@ -620,37 +620,37 @@ error: SelectorList
--> $DIR/tests/fixture/selector/class/input.css:12:1
|
12 | .\3A \) {}
| ^^^^
| ^^^^^^^
error: ComplexSelector
--> $DIR/tests/fixture/selector/class/input.css:12:1
|
12 | .\3A \) {}
| ^^^^
| ^^^^^^^
error: CompoundSelector
--> $DIR/tests/fixture/selector/class/input.css:12:1
|
12 | .\3A \) {}
| ^^^^
| ^^^^^^^
error: SubclassSelector
--> $DIR/tests/fixture/selector/class/input.css:12:1
|
12 | .\3A \) {}
| ^^^^
| ^^^^^^^
error: ClassSelector
--> $DIR/tests/fixture/selector/class/input.css:12:1
|
12 | .\3A \) {}
| ^^^^
| ^^^^^^^
error: Text
--> $DIR/tests/fixture/selector/class/input.css:12:2
|
12 | .\3A \) {}
| ^^^
| ^^^^^^
error: Block
--> $DIR/tests/fixture/selector/class/input.css:12:9
@ -674,37 +674,37 @@ error: SelectorList
--> $DIR/tests/fixture/selector/class/input.css:13:1
|
13 | .\3A \`\( {}
| ^^^^
| ^^^^^^^^^
error: ComplexSelector
--> $DIR/tests/fixture/selector/class/input.css:13:1
|
13 | .\3A \`\( {}
| ^^^^
| ^^^^^^^^^
error: CompoundSelector
--> $DIR/tests/fixture/selector/class/input.css:13:1
|
13 | .\3A \`\( {}
| ^^^^
| ^^^^^^^^^
error: SubclassSelector
--> $DIR/tests/fixture/selector/class/input.css:13:1
|
13 | .\3A \`\( {}
| ^^^^
| ^^^^^^^^^
error: ClassSelector
--> $DIR/tests/fixture/selector/class/input.css:13:1
|
13 | .\3A \`\( {}
| ^^^^
| ^^^^^^^^^
error: Text
--> $DIR/tests/fixture/selector/class/input.css:13:2
|
13 | .\3A \`\( {}
| ^^^
| ^^^^^^^^
error: Block
--> $DIR/tests/fixture/selector/class/input.css:13:11

View File

@ -754,7 +754,7 @@
"type": "SelectorList",
"span": {
"start": 112,
"end": 116,
"end": 119,
"ctxt": 0
},
"children": [
@ -762,7 +762,7 @@
"type": "ComplexSelector",
"span": {
"start": 112,
"end": 116,
"end": 119,
"ctxt": 0
},
"children": [
@ -770,7 +770,7 @@
"type": "CompoundSelector",
"span": {
"start": 112,
"end": 116,
"end": 119,
"ctxt": 0
},
"nestingSelector": null,
@ -780,14 +780,14 @@
"type": "IdSelector",
"span": {
"start": 112,
"end": 116,
"end": 119,
"ctxt": 0
},
"text": {
"type": "Text",
"span": {
"start": 112,
"end": 116,
"end": 119,
"ctxt": 0
},
"value": ":)",
@ -821,7 +821,7 @@
"type": "SelectorList",
"span": {
"start": 123,
"end": 127,
"end": 132,
"ctxt": 0
},
"children": [
@ -829,7 +829,7 @@
"type": "ComplexSelector",
"span": {
"start": 123,
"end": 127,
"end": 132,
"ctxt": 0
},
"children": [
@ -837,7 +837,7 @@
"type": "CompoundSelector",
"span": {
"start": 123,
"end": 127,
"end": 132,
"ctxt": 0
},
"nestingSelector": null,
@ -847,14 +847,14 @@
"type": "IdSelector",
"span": {
"start": 123,
"end": 127,
"end": 132,
"ctxt": 0
},
"text": {
"type": "Text",
"span": {
"start": 123,
"end": 127,
"end": 132,
"ctxt": 0
},
"value": ":`(",

View File

@ -620,37 +620,37 @@ error: SelectorList
--> $DIR/tests/fixture/selector/id/input.css:12:1
|
12 | #\3A \) {}
| ^^^^
| ^^^^^^^
error: ComplexSelector
--> $DIR/tests/fixture/selector/id/input.css:12:1
|
12 | #\3A \) {}
| ^^^^
| ^^^^^^^
error: CompoundSelector
--> $DIR/tests/fixture/selector/id/input.css:12:1
|
12 | #\3A \) {}
| ^^^^
| ^^^^^^^
error: SubclassSelector
--> $DIR/tests/fixture/selector/id/input.css:12:1
|
12 | #\3A \) {}
| ^^^^
| ^^^^^^^
error: IdSelector
--> $DIR/tests/fixture/selector/id/input.css:12:1
|
12 | #\3A \) {}
| ^^^^
| ^^^^^^^
error: Text
--> $DIR/tests/fixture/selector/id/input.css:12:1
|
12 | #\3A \) {}
| ^^^^
| ^^^^^^^
error: Block
--> $DIR/tests/fixture/selector/id/input.css:12:9
@ -674,37 +674,37 @@ error: SelectorList
--> $DIR/tests/fixture/selector/id/input.css:13:1
|
13 | #\3A \`\( {}
| ^^^^
| ^^^^^^^^^
error: ComplexSelector
--> $DIR/tests/fixture/selector/id/input.css:13:1
|
13 | #\3A \`\( {}
| ^^^^
| ^^^^^^^^^
error: CompoundSelector
--> $DIR/tests/fixture/selector/id/input.css:13:1
|
13 | #\3A \`\( {}
| ^^^^
| ^^^^^^^^^
error: SubclassSelector
--> $DIR/tests/fixture/selector/id/input.css:13:1
|
13 | #\3A \`\( {}
| ^^^^
| ^^^^^^^^^
error: IdSelector
--> $DIR/tests/fixture/selector/id/input.css:13:1
|
13 | #\3A \`\( {}
| ^^^^
| ^^^^^^^^^
error: Text
--> $DIR/tests/fixture/selector/id/input.css:13:1
|
13 | #\3A \`\( {}
| ^^^^
| ^^^^^^^^^
error: Block
--> $DIR/tests/fixture/selector/id/input.css:13:11

View File

@ -4,3 +4,5 @@ foo|* {}
|h1 {}
*|h1 {}
h1 {}
\2d {}
\2d a {}

View File

@ -2,7 +2,7 @@
"type": "Stylesheet",
"span": {
"start": 0,
"end": 47,
"end": 62,
"ctxt": 0
},
"rules": [
@ -446,6 +446,138 @@
},
"items": []
}
},
{
"type": "StyleRule",
"span": {
"start": 47,
"end": 53,
"ctxt": 0
},
"selectors": {
"type": "SelectorList",
"span": {
"start": 47,
"end": 51,
"ctxt": 0
},
"children": [
{
"type": "ComplexSelector",
"span": {
"start": 47,
"end": 51,
"ctxt": 0
},
"children": [
{
"type": "CompoundSelector",
"span": {
"start": 47,
"end": 51,
"ctxt": 0
},
"nestingSelector": null,
"typeSelector": {
"type": "TypeSelector",
"span": {
"start": 47,
"end": 51,
"ctxt": 0
},
"prefix": null,
"name": {
"type": "Text",
"span": {
"start": 47,
"end": 51,
"ctxt": 0
},
"value": "-",
"raw": "\\2d "
}
},
"subclassSelectors": []
}
]
}
]
},
"block": {
"type": "Block",
"span": {
"start": 51,
"end": 53,
"ctxt": 0
},
"items": []
}
},
{
"type": "StyleRule",
"span": {
"start": 54,
"end": 62,
"ctxt": 0
},
"selectors": {
"type": "SelectorList",
"span": {
"start": 54,
"end": 59,
"ctxt": 0
},
"children": [
{
"type": "ComplexSelector",
"span": {
"start": 54,
"end": 59,
"ctxt": 0
},
"children": [
{
"type": "CompoundSelector",
"span": {
"start": 54,
"end": 59,
"ctxt": 0
},
"nestingSelector": null,
"typeSelector": {
"type": "TypeSelector",
"span": {
"start": 54,
"end": 59,
"ctxt": 0
},
"prefix": null,
"name": {
"type": "Text",
"span": {
"start": 54,
"end": 59,
"ctxt": 0
},
"value": "-a",
"raw": "\\2d a"
}
},
"subclassSelectors": []
}
]
}
]
},
"block": {
"type": "Block",
"span": {
"start": 60,
"end": 62,
"ctxt": 0
},
"items": []
}
}
]
}

View File

@ -5,9 +5,10 @@ error: Stylesheet
2 | | foo|h1 {}
3 | | foo|* {}
4 | | |h1 {}
5 | | *|h1 {}
6 | | h1 {}
| |______^
... |
7 | | \2d {}
8 | | \2d a {}
| |________^
error: Rule
--> $DIR/tests/fixture/selector/type/input.css:1:1
@ -315,3 +316,99 @@ error: Block
6 | h1 {}
| ^^
error: Rule
--> $DIR/tests/fixture/selector/type/input.css:7:1
|
7 | \2d {}
| ^^^^^^
error: StyleRule
--> $DIR/tests/fixture/selector/type/input.css:7:1
|
7 | \2d {}
| ^^^^^^
error: SelectorList
--> $DIR/tests/fixture/selector/type/input.css:7:1
|
7 | \2d {}
| ^^^^
error: ComplexSelector
--> $DIR/tests/fixture/selector/type/input.css:7:1
|
7 | \2d {}
| ^^^^
error: CompoundSelector
--> $DIR/tests/fixture/selector/type/input.css:7:1
|
7 | \2d {}
| ^^^^
error: TypeSelector
--> $DIR/tests/fixture/selector/type/input.css:7:1
|
7 | \2d {}
| ^^^^
error: Text
--> $DIR/tests/fixture/selector/type/input.css:7:1
|
7 | \2d {}
| ^^^^
error: Block
--> $DIR/tests/fixture/selector/type/input.css:7:5
|
7 | \2d {}
| ^^
error: Rule
--> $DIR/tests/fixture/selector/type/input.css:8:1
|
8 | \2d a {}
| ^^^^^^^^
error: StyleRule
--> $DIR/tests/fixture/selector/type/input.css:8:1
|
8 | \2d a {}
| ^^^^^^^^
error: SelectorList
--> $DIR/tests/fixture/selector/type/input.css:8:1
|
8 | \2d a {}
| ^^^^^
error: ComplexSelector
--> $DIR/tests/fixture/selector/type/input.css:8:1
|
8 | \2d a {}
| ^^^^^
error: CompoundSelector
--> $DIR/tests/fixture/selector/type/input.css:8:1
|
8 | \2d a {}
| ^^^^^
error: TypeSelector
--> $DIR/tests/fixture/selector/type/input.css:8:1
|
8 | \2d a {}
| ^^^^^
error: Text
--> $DIR/tests/fixture/selector/type/input.css:8:1
|
8 | \2d a {}
| ^^^^^
error: Block
--> $DIR/tests/fixture/selector/type/input.css:8:7
|
8 | \2d a {}
| ^^