fix(css/parser): Fix parser logic related to case insensivity (#3382)

This commit is contained in:
Alexander Akait 2022-01-30 05:59:20 +03:00 committed by GitHub
parent 930a1c2405
commit 3ded88bffc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 4441 additions and 1182 deletions

View File

@ -1,12 +1,3 @@
macro_rules! ident_tok {
($tt:tt) => {
swc_css_ast::Token::Ident {
value: swc_atoms::js_word!($tt),
..
}
};
}
macro_rules! tok {
("num") => {
swc_css_ast::Token::Num { .. }
@ -175,20 +166,4 @@ macro_rules! tok {
("important") => {
ident_tok!("important")
};
("not") => {
ident_tok!("not")
};
("or") => {
ident_tok!("or")
};
("and") => {
ident_tok!("and")
};
("only") => {
ident_tok!("only")
};
}

View File

@ -351,7 +351,7 @@ where
self.input.skip_ws()?;
let supports = if is_one_of!(self, "not", "(") {
let supports = if is_case_insensitive_ident!(self, "not") || is!(self, "(") {
ImportSupportsType::SupportsCondition(self.parse()?)
} else {
ImportSupportsType::Declaration(self.parse()?)
@ -534,7 +534,7 @@ where
let mut last_pos;
let mut conditions = vec![];
if is!(self, "not") {
if is_case_insensitive_ident!(self, "not") {
let not = self.parse()?;
last_pos = self.input.last_pos()?;
@ -549,8 +549,8 @@ where
self.input.skip_ws()?;
if is!(self, "and") {
while is!(self, "and") {
if is_case_insensitive_ident!(self, "and") {
while is_case_insensitive_ident!(self, "and") {
let and = self.parse()?;
last_pos = self.input.last_pos()?;
@ -559,8 +559,8 @@ where
self.input.skip_ws()?;
}
} else if is!(self, "or") {
while is!(self, "or") {
} else if is_case_insensitive_ident!(self, "or") {
while is_case_insensitive_ident!(self, "or") {
let or = self.parse()?;
last_pos = self.input.last_pos()?;
@ -586,7 +586,7 @@ where
fn parse(&mut self) -> PResult<SupportsNot> {
let span = self.input.cur_span()?;
expect!(self, "not");
expect_case_insensitive_ident!(self, "not");
self.input.skip_ws()?;
@ -606,7 +606,7 @@ where
fn parse(&mut self) -> PResult<SupportsAnd> {
let span = self.input.cur_span()?;
expect!(self, "and");
expect_case_insensitive_ident!(self, "and");
self.input.skip_ws()?;
@ -626,7 +626,7 @@ where
fn parse(&mut self) -> PResult<SupportsOr> {
let span = self.input.cur_span()?;
expect!(self, "or");
expect_case_insensitive_ident!(self, "or");
self.input.skip_ws()?;
@ -650,7 +650,7 @@ where
self.input.skip_ws()?;
if !is!(self, "(") && !is!(self, "not") {
if !is!(self, "(") && !is_case_insensitive_ident!(self, "not") {
self.input.reset(&state);
return Ok(SupportsInParens::Feature(self.parse()?));
@ -885,8 +885,7 @@ where
let start_pos = self.input.cur_span()?.lo;
let state = self.input.state();
// TODO uppercase acceptable
let mut modifier = if is!(self, "not") || is!(self, "only") {
let mut modifier = if is_one_of_case_insensitive_ident!(self, "not", "only") {
let modifier = Some(self.parse()?);
self.input.skip_ws()?;
@ -898,7 +897,9 @@ where
let mut last_pos = self.input.last_pos()?;
let media_type = if !is!(self, Ident) || is_one_of!(self, "not", "and", "or", "only") {
let media_type = if !is!(self, Ident)
|| is_one_of_case_insensitive_ident!(self, "not", "and", "or", "only")
{
None
} else {
let media_type = Some(self.parse()?);
@ -911,7 +912,9 @@ where
};
let condition = if media_type.is_some() {
if eat!(self, "and") {
if is_one_of_case_insensitive_ident!(self, "and") {
bump!(self);
self.input.skip_ws()?;
let condition_without_or: MediaConditionWithoutOr = self.parse()?;
@ -954,7 +957,7 @@ where
let mut last_pos;
let mut conditions = vec![];
if is!(self, "not") {
if is_case_insensitive_ident!(self, "not") {
let not = self.parse()?;
last_pos = self.input.last_pos()?;
@ -969,8 +972,8 @@ where
self.input.skip_ws()?;
if is!(self, "and") {
while is!(self, "and") {
if is_case_insensitive_ident!(self, "and") {
while is_case_insensitive_ident!(self, "and") {
let and = self.parse()?;
last_pos = self.input.last_pos()?;
@ -979,8 +982,8 @@ where
self.input.skip_ws()?;
}
} else if is!(self, "or") {
while is!(self, "or") {
} else if is_case_insensitive_ident!(self, "or") {
while is_case_insensitive_ident!(self, "or") {
let or = self.parse()?;
last_pos = self.input.last_pos()?;
@ -1010,7 +1013,7 @@ where
let mut last_pos;
let mut conditions = vec![];
if is!(self, "not") {
if is_case_insensitive_ident!(self, "not") {
let not = self.parse()?;
last_pos = self.input.last_pos()?;
@ -1025,8 +1028,8 @@ where
self.input.skip_ws()?;
if is!(self, "and") {
while is!(self, "and") {
if is_case_insensitive_ident!(self, "and") {
while is_case_insensitive_ident!(self, "and") {
let and = self.parse()?;
last_pos = self.input.last_pos()?;
@ -1052,7 +1055,7 @@ where
fn parse(&mut self) -> PResult<MediaNot> {
let span = self.input.cur_span()?;
expect!(self, "not");
expect_case_insensitive_ident!(self, "not");
self.input.skip_ws()?;
@ -1072,7 +1075,7 @@ where
fn parse(&mut self) -> PResult<MediaAnd> {
let span = self.input.cur_span()?;
expect!(self, "and");
expect_case_insensitive_ident!(self, "and");
self.input.skip_ws()?;
@ -1092,7 +1095,7 @@ where
fn parse(&mut self) -> PResult<MediaOr> {
let span = self.input.cur_span()?;
expect!(self, "or");
expect_case_insensitive_ident!(self, "or");
self.input.skip_ws()?;
@ -1116,7 +1119,7 @@ where
self.input.skip_ws()?;
if !is!(self, "(") && !is!(self, "not") {
if !is!(self, "(") && !is_case_insensitive_ident!(self, "not") {
self.input.reset(&state);
return Ok(MediaInParens::Feature(self.parse()?));

View File

@ -84,6 +84,51 @@ macro_rules! bump {
};
}
macro_rules! is_case_insensitive_ident {
($parser:expr, $tt:tt) => {{
match $parser.input.cur()? {
Some(swc_css_ast::Token::Ident { value, .. })
if &*value.to_ascii_lowercase() == $tt =>
{
true
}
_ => false,
}
}};
}
macro_rules! expect_case_insensitive_ident {
($parser:expr, $tt:tt) => {
if is_case_insensitive_ident!($parser, $tt) {
bump!($parser);
} else {
let span = $parser.input.cur_span()?;
return Err(crate::error::Error::new(
span,
crate::error::ErrorKind::ExpectedButGot(stringify!($tt)),
));
}
};
}
macro_rules! is_one_of_case_insensitive_ident {
($parser:expr, $($tt:tt),+) => {
match $parser.input.cur()? {
Some(swc_css_ast::Token::Ident { value, .. }) => {
let lowercased = &*value.to_ascii_lowercase();
if $(lowercased == $tt)||* {
true
} else {
false
}
}
_ => false,
}
};
}
macro_rules! is {
($parser:expr, EOF) => {{
$parser.input.cur()?.is_none()

View File

@ -44,7 +44,7 @@ test.css
@import url('');
@import url("");
@import url(test.css) screen and (orientation:landscape);
/*@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);*/
@import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
@import url(test.css)screen and (orientation:landscape);
@import url(test.css) screen and ( orientation : landscape ) ;
@import url(test.css) screen and (orientation:landscape);
@ -137,8 +137,8 @@ st.css');
@import url("http://example.com/style.css") supports(display: flex) screen and (min-width: 400px);
@import url("./test.css")layer(default)supports(display: flex)screen and (min-width:400px);
@import url("./test.css")screen and (min-width: 400px);
/*@import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );*/
/*@import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);*/
@import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
@import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
@import url("./test.css") /* Comment */ layer(/* Comment */default/* Comment */) /* Comment */ supports(/* Comment */display/* Comment */:/* Comment */ flex/* Comment */)/* Comment */ screen/* Comment */ and/* Comment */ (/* Comment */min-width/* Comment */: /* Comment */400px/* Comment */);
@import url(test.css) /* Comment */;
@import /* Comment */ url(test.css) /* Comment */;

File diff suppressed because it is too large Load Diff

View File

@ -2453,6 +2453,126 @@ error: Ident
46 | @import url(test.css) screen and (orientation:landscape);
| ^^^^^^^^^
error: Rule
--> $DIR/tests/fixture/at-rule/import/input.css:47:1
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: AtRule
--> $DIR/tests/fixture/at-rule/import/input.css:47:1
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: ImportRule
--> $DIR/tests/fixture/at-rule/import/input.css:47:1
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: ImportHref
--> $DIR/tests/fixture/at-rule/import/input.css:47:9
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^^^
error: Url
--> $DIR/tests/fixture/at-rule/import/input.css:47:9
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:47:9
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^
error: UrlValue
--> $DIR/tests/fixture/at-rule/import/input.css:47:13
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^
error: UrlValueRaw
--> $DIR/tests/fixture/at-rule/import/input.css:47:13
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^
error: MediaQueryList
--> $DIR/tests/fixture/at-rule/import/input.css:47:23
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaQuery
--> $DIR/tests/fixture/at-rule/import/input.css:47:23
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:47:23
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^
error: MediaConditionWithoutOr
--> $DIR/tests/fixture/at-rule/import/input.css:47:34
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaConditionWithoutOrType
--> $DIR/tests/fixture/at-rule/import/input.css:47:34
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaInParens
--> $DIR/tests/fixture/at-rule/import/input.css:47:34
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaFeature
--> $DIR/tests/fixture/at-rule/import/input.css:47:34
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaFeaturePlain
--> $DIR/tests/fixture/at-rule/import/input.css:47:34
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaFeatureName
--> $DIR/tests/fixture/at-rule/import/input.css:47:35
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:47:35
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^^^
error: MediaFeatureValue
--> $DIR/tests/fixture/at-rule/import/input.css:47:48
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:47:48
|
47 | @import url(test.css) SCREEN AND (ORIENTATION: LANDSCAPE);
| ^^^^^^^^^
error: Rule
--> $DIR/tests/fixture/at-rule/import/input.css:48:1
|
@ -7030,6 +7150,402 @@ error: Unit
139 | @import url("./test.css")screen and (min-width: 400px);
| ^^
error: Rule
--> $DIR/tests/fixture/at-rule/import/input.css:140:1
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: AtRule
--> $DIR/tests/fixture/at-rule/import/input.css:140:1
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: ImportRule
--> $DIR/tests/fixture/at-rule/import/input.css:140:1
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: ImportHref
--> $DIR/tests/fixture/at-rule/import/input.css:140:9
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^
error: Url
--> $DIR/tests/fixture/at-rule/import/input.css:140:9
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:140:9
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^
error: UrlValue
--> $DIR/tests/fixture/at-rule/import/input.css:140:13
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^
error: Str
--> $DIR/tests/fixture/at-rule/import/input.css:140:13
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^
error: ImportLayerName
--> $DIR/tests/fixture/at-rule/import/input.css:140:31
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: Function
--> $DIR/tests/fixture/at-rule/import/input.css:140:31
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:140:31
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/import/input.css:140:42
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:140:42
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^
error: ImportSupportsType
--> $DIR/tests/fixture/at-rule/import/input.css:140:74
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^
error: Declaration
--> $DIR/tests/fixture/at-rule/import/input.css:140:74
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^
error: DeclarationProperty
--> $DIR/tests/fixture/at-rule/import/input.css:140:74
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:140:74
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/import/input.css:140:92
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:140:92
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^
error: MediaQueryList
--> $DIR/tests/fixture/at-rule/import/input.css:140:107
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaQuery
--> $DIR/tests/fixture/at-rule/import/input.css:140:107
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:140:107
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^
error: MediaConditionWithoutOr
--> $DIR/tests/fixture/at-rule/import/input.css:140:126
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaConditionWithoutOrType
--> $DIR/tests/fixture/at-rule/import/input.css:140:126
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaInParens
--> $DIR/tests/fixture/at-rule/import/input.css:140:126
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaFeature
--> $DIR/tests/fixture/at-rule/import/input.css:140:126
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaFeaturePlain
--> $DIR/tests/fixture/at-rule/import/input.css:140:126
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaFeatureName
--> $DIR/tests/fixture/at-rule/import/input.css:140:132
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:140:132
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^^^^^
error: MediaFeatureValue
--> $DIR/tests/fixture/at-rule/import/input.css:140:152
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^
error: UnitValue
--> $DIR/tests/fixture/at-rule/import/input.css:140:152
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^^^
error: Number
--> $DIR/tests/fixture/at-rule/import/input.css:140:152
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^^
error: Unit
--> $DIR/tests/fixture/at-rule/import/input.css:140:155
|
140 | @import url("./test.css") layer( default ) supports( display : flex ) screen and ( min-width : 400px );
| ^^
error: Rule
--> $DIR/tests/fixture/at-rule/import/input.css:141:1
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: AtRule
--> $DIR/tests/fixture/at-rule/import/input.css:141:1
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: ImportRule
--> $DIR/tests/fixture/at-rule/import/input.css:141:1
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: ImportHref
--> $DIR/tests/fixture/at-rule/import/input.css:141:9
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^^^^
error: Url
--> $DIR/tests/fixture/at-rule/import/input.css:141:9
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:141:9
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^
error: UrlValue
--> $DIR/tests/fixture/at-rule/import/input.css:141:13
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^
error: Str
--> $DIR/tests/fixture/at-rule/import/input.css:141:13
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^
error: ImportLayerName
--> $DIR/tests/fixture/at-rule/import/input.css:141:27
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^
error: Function
--> $DIR/tests/fixture/at-rule/import/input.css:141:27
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:141:27
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/import/input.css:141:33
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:141:33
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^
error: ImportSupportsType
--> $DIR/tests/fixture/at-rule/import/input.css:141:51
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^
error: Declaration
--> $DIR/tests/fixture/at-rule/import/input.css:141:51
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^
error: DeclarationProperty
--> $DIR/tests/fixture/at-rule/import/input.css:141:51
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:141:51
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/import/input.css:141:60
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:141:60
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^
error: MediaQueryList
--> $DIR/tests/fixture/at-rule/import/input.css:141:66
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaQuery
--> $DIR/tests/fixture/at-rule/import/input.css:141:66
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:141:66
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^
error: MediaConditionWithoutOr
--> $DIR/tests/fixture/at-rule/import/input.css:141:77
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^^^^^
error: MediaConditionWithoutOrType
--> $DIR/tests/fixture/at-rule/import/input.css:141:77
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^^^^^
error: MediaInParens
--> $DIR/tests/fixture/at-rule/import/input.css:141:77
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^^^^^
error: MediaFeature
--> $DIR/tests/fixture/at-rule/import/input.css:141:77
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^^^^^
error: MediaFeaturePlain
--> $DIR/tests/fixture/at-rule/import/input.css:141:77
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^^^^^^^^^^
error: MediaFeatureName
--> $DIR/tests/fixture/at-rule/import/input.css:141:78
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/import/input.css:141:78
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^^^^^
error: MediaFeatureValue
--> $DIR/tests/fixture/at-rule/import/input.css:141:89
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^
error: UnitValue
--> $DIR/tests/fixture/at-rule/import/input.css:141:89
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^^^
error: Number
--> $DIR/tests/fixture/at-rule/import/input.css:141:89
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^^
error: Unit
--> $DIR/tests/fixture/at-rule/import/input.css:141:92
|
141 | @import url("./test.css") LAYER(DEFAULT) SUPPORTS(DISPLAY: FLEX) SCREEN AND (MIN-WIDTH: 400PX);
| ^^
error: Rule
--> $DIR/tests/fixture/at-rule/import/input.css:142:1
|

View File

@ -103,3 +103,8 @@
@media ((min-width: 800px) and (min-width: 800px)) or (min-width: 800px) {}
@media (min-width: 800px) and ((min-width: 800px) or (min-width: 800px)) {}
@media NOT all {}
@media ONLY screen AND (color) {}
@media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
@media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}

View File

@ -2,7 +2,7 @@
"type": "Stylesheet",
"span": {
"start": 0,
"end": 3723,
"end": 3935,
"ctxt": 0
},
"rules": [
@ -9173,6 +9173,529 @@
]
},
"rules": []
},
{
"type": "MediaRule",
"span": {
"start": 3724,
"end": 3748,
"ctxt": 0
},
"media": {
"type": "MediaQueryList",
"span": {
"start": 3734,
"end": 3743,
"ctxt": 0
},
"queries": [
{
"type": "MediaQuery",
"span": {
"start": 3734,
"end": 3743,
"ctxt": 0
},
"modifier": {
"type": "Identifier",
"span": {
"start": 3734,
"end": 3737,
"ctxt": 0
},
"value": "NOT",
"raw": "NOT"
},
"mediaType": {
"type": "Identifier",
"span": {
"start": 3740,
"end": 3743,
"ctxt": 0
},
"value": "all",
"raw": "all"
},
"condition": null
}
]
},
"rules": []
},
{
"type": "MediaRule",
"span": {
"start": 3749,
"end": 3782,
"ctxt": 0
},
"media": {
"type": "MediaQueryList",
"span": {
"start": 3756,
"end": 3779,
"ctxt": 0
},
"queries": [
{
"type": "MediaQuery",
"span": {
"start": 3756,
"end": 3779,
"ctxt": 0
},
"modifier": {
"type": "Identifier",
"span": {
"start": 3756,
"end": 3760,
"ctxt": 0
},
"value": "ONLY",
"raw": "ONLY"
},
"mediaType": {
"type": "Identifier",
"span": {
"start": 3761,
"end": 3767,
"ctxt": 0
},
"value": "screen",
"raw": "screen"
},
"condition": {
"type": "MediaConditionWithoutOr",
"span": {
"start": 3772,
"end": 3779,
"ctxt": 0
},
"conditions": [
{
"type": "MediaFeatureBoolean",
"span": {
"start": 3772,
"end": 3779,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3773,
"end": 3778,
"ctxt": 0
},
"value": "color",
"raw": "color"
}
}
]
}
}
]
},
"rules": []
},
{
"type": "MediaRule",
"span": {
"start": 3783,
"end": 3858,
"ctxt": 0
},
"media": {
"type": "MediaQueryList",
"span": {
"start": 3790,
"end": 3855,
"ctxt": 0
},
"queries": [
{
"type": "MediaQuery",
"span": {
"start": 3790,
"end": 3855,
"ctxt": 0
},
"modifier": null,
"mediaType": null,
"condition": {
"type": "MediaCondition",
"span": {
"start": 3790,
"end": 3855,
"ctxt": 0
},
"conditions": [
{
"type": "MediaCondition",
"span": {
"start": 3791,
"end": 3832,
"ctxt": 0
},
"conditions": [
{
"type": "MediaFeaturePlain",
"span": {
"start": 3791,
"end": 3809,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3792,
"end": 3801,
"ctxt": 0
},
"value": "min-width",
"raw": "min-width"
},
"value": {
"type": "UnitValue",
"span": {
"start": 3803,
"end": 3808,
"ctxt": 0
},
"value": {
"type": "Number",
"span": {
"start": 3803,
"end": 3806,
"ctxt": 0
},
"value": 800.0,
"raw": "800"
},
"unit": {
"span": {
"start": 3806,
"end": 3808,
"ctxt": 0
},
"value": "px",
"raw": "px"
}
}
},
{
"type": "MediaAnd",
"span": {
"start": 3810,
"end": 3832,
"ctxt": 0
},
"condition": {
"type": "MediaFeaturePlain",
"span": {
"start": 3814,
"end": 3832,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3815,
"end": 3824,
"ctxt": 0
},
"value": "min-width",
"raw": "min-width"
},
"value": {
"type": "UnitValue",
"span": {
"start": 3826,
"end": 3831,
"ctxt": 0
},
"value": {
"type": "Number",
"span": {
"start": 3826,
"end": 3829,
"ctxt": 0
},
"value": 800.0,
"raw": "800"
},
"unit": {
"span": {
"start": 3829,
"end": 3831,
"ctxt": 0
},
"value": "px",
"raw": "px"
}
}
}
}
]
},
{
"type": "MediaOr",
"span": {
"start": 3834,
"end": 3855,
"ctxt": 0
},
"condition": {
"type": "MediaFeaturePlain",
"span": {
"start": 3837,
"end": 3855,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3838,
"end": 3847,
"ctxt": 0
},
"value": "min-width",
"raw": "min-width"
},
"value": {
"type": "UnitValue",
"span": {
"start": 3849,
"end": 3854,
"ctxt": 0
},
"value": {
"type": "Number",
"span": {
"start": 3849,
"end": 3852,
"ctxt": 0
},
"value": 800.0,
"raw": "800"
},
"unit": {
"span": {
"start": 3852,
"end": 3854,
"ctxt": 0
},
"value": "px",
"raw": "px"
}
}
}
}
]
}
}
]
},
"rules": []
},
{
"type": "MediaRule",
"span": {
"start": 3859,
"end": 3934,
"ctxt": 0
},
"media": {
"type": "MediaQueryList",
"span": {
"start": 3866,
"end": 3931,
"ctxt": 0
},
"queries": [
{
"type": "MediaQuery",
"span": {
"start": 3866,
"end": 3931,
"ctxt": 0
},
"modifier": null,
"mediaType": null,
"condition": {
"type": "MediaCondition",
"span": {
"start": 3866,
"end": 3931,
"ctxt": 0
},
"conditions": [
{
"type": "MediaFeaturePlain",
"span": {
"start": 3866,
"end": 3884,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3867,
"end": 3876,
"ctxt": 0
},
"value": "min-width",
"raw": "min-width"
},
"value": {
"type": "UnitValue",
"span": {
"start": 3878,
"end": 3883,
"ctxt": 0
},
"value": {
"type": "Number",
"span": {
"start": 3878,
"end": 3881,
"ctxt": 0
},
"value": 800.0,
"raw": "800"
},
"unit": {
"span": {
"start": 3881,
"end": 3883,
"ctxt": 0
},
"value": "px",
"raw": "px"
}
}
},
{
"type": "MediaAnd",
"span": {
"start": 3885,
"end": 3931,
"ctxt": 0
},
"condition": {
"type": "MediaCondition",
"span": {
"start": 3890,
"end": 3930,
"ctxt": 0
},
"conditions": [
{
"type": "MediaFeaturePlain",
"span": {
"start": 3890,
"end": 3908,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3891,
"end": 3900,
"ctxt": 0
},
"value": "min-width",
"raw": "min-width"
},
"value": {
"type": "UnitValue",
"span": {
"start": 3902,
"end": 3907,
"ctxt": 0
},
"value": {
"type": "Number",
"span": {
"start": 3902,
"end": 3905,
"ctxt": 0
},
"value": 800.0,
"raw": "800"
},
"unit": {
"span": {
"start": 3905,
"end": 3907,
"ctxt": 0
},
"value": "px",
"raw": "px"
}
}
},
{
"type": "MediaOr",
"span": {
"start": 3909,
"end": 3930,
"ctxt": 0
},
"condition": {
"type": "MediaFeaturePlain",
"span": {
"start": 3912,
"end": 3930,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 3913,
"end": 3922,
"ctxt": 0
},
"value": "min-width",
"raw": "min-width"
},
"value": {
"type": "UnitValue",
"span": {
"start": 3924,
"end": 3929,
"ctxt": 0
},
"value": {
"type": "Number",
"span": {
"start": 3924,
"end": 3927,
"ctxt": 0
},
"value": 800.0,
"raw": "800"
},
"unit": {
"span": {
"start": 3927,
"end": 3929,
"ctxt": 0
},
"value": "px",
"raw": "px"
}
}
}
}
]
}
}
]
}
}
]
},
"rules": []
}
]
}

View File

@ -6,8 +6,8 @@ error: Stylesheet
3 | |
4 | | @media all {}
... |
104 | | @media ((min-width: 800px) and (min-width: 800px)) or (min-width: 800px) {}
105 | | @media (min-width: 800px) and ((min-width: 800px) or (min-width: 800px)) {}
109 | | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
110 | | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| |____________________________________________________________________________^
error: Rule
@ -10480,3 +10480,621 @@ error: Unit
105 | @media (min-width: 800px) and ((min-width: 800px) or (min-width: 800px)) {}
| ^^
error: Rule
--> $DIR/tests/fixture/at-rule/media/input.css:107:1
|
107 | @media NOT all {}
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: AtRule
--> $DIR/tests/fixture/at-rule/media/input.css:107:1
|
107 | @media NOT all {}
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaRule
--> $DIR/tests/fixture/at-rule/media/input.css:107:1
|
107 | @media NOT all {}
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaQueryList
--> $DIR/tests/fixture/at-rule/media/input.css:107:11
|
107 | @media NOT all {}
| ^^^^^^^^^
error: MediaQuery
--> $DIR/tests/fixture/at-rule/media/input.css:107:11
|
107 | @media NOT all {}
| ^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/media/input.css:107:11
|
107 | @media NOT all {}
| ^^^
error: Ident
--> $DIR/tests/fixture/at-rule/media/input.css:107:17
|
107 | @media NOT all {}
| ^^^
error: Rule
--> $DIR/tests/fixture/at-rule/media/input.css:108:1
|
108 | @media ONLY screen AND (color) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: AtRule
--> $DIR/tests/fixture/at-rule/media/input.css:108:1
|
108 | @media ONLY screen AND (color) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaRule
--> $DIR/tests/fixture/at-rule/media/input.css:108:1
|
108 | @media ONLY screen AND (color) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaQueryList
--> $DIR/tests/fixture/at-rule/media/input.css:108:8
|
108 | @media ONLY screen AND (color) {}
| ^^^^^^^^^^^^^^^^^^^^^^^
error: MediaQuery
--> $DIR/tests/fixture/at-rule/media/input.css:108:8
|
108 | @media ONLY screen AND (color) {}
| ^^^^^^^^^^^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/media/input.css:108:8
|
108 | @media ONLY screen AND (color) {}
| ^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/media/input.css:108:13
|
108 | @media ONLY screen AND (color) {}
| ^^^^^^
error: MediaConditionWithoutOr
--> $DIR/tests/fixture/at-rule/media/input.css:108:24
|
108 | @media ONLY screen AND (color) {}
| ^^^^^^^
error: MediaConditionWithoutOrType
--> $DIR/tests/fixture/at-rule/media/input.css:108:24
|
108 | @media ONLY screen AND (color) {}
| ^^^^^^^
error: MediaInParens
--> $DIR/tests/fixture/at-rule/media/input.css:108:24
|
108 | @media ONLY screen AND (color) {}
| ^^^^^^^
error: MediaFeature
--> $DIR/tests/fixture/at-rule/media/input.css:108:24
|
108 | @media ONLY screen AND (color) {}
| ^^^^^^^
error: MediaFeatureBoolean
--> $DIR/tests/fixture/at-rule/media/input.css:108:24
|
108 | @media ONLY screen AND (color) {}
| ^^^^^^^
error: MediaFeatureName
--> $DIR/tests/fixture/at-rule/media/input.css:108:25
|
108 | @media ONLY screen AND (color) {}
| ^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/media/input.css:108:25
|
108 | @media ONLY screen AND (color) {}
| ^^^^^
error: Rule
--> $DIR/tests/fixture/at-rule/media/input.css:109:1
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: AtRule
--> $DIR/tests/fixture/at-rule/media/input.css:109:1
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaRule
--> $DIR/tests/fixture/at-rule/media/input.css:109:1
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaQueryList
--> $DIR/tests/fixture/at-rule/media/input.css:109:8
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaQuery
--> $DIR/tests/fixture/at-rule/media/input.css:109:8
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaCondition
--> $DIR/tests/fixture/at-rule/media/input.css:109:8
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaConditionAllType
--> $DIR/tests/fixture/at-rule/media/input.css:109:9
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaInParens
--> $DIR/tests/fixture/at-rule/media/input.css:109:9
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaCondition
--> $DIR/tests/fixture/at-rule/media/input.css:109:9
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaConditionAllType
--> $DIR/tests/fixture/at-rule/media/input.css:109:9
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaInParens
--> $DIR/tests/fixture/at-rule/media/input.css:109:9
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeature
--> $DIR/tests/fixture/at-rule/media/input.css:109:9
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeaturePlain
--> $DIR/tests/fixture/at-rule/media/input.css:109:9
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeatureName
--> $DIR/tests/fixture/at-rule/media/input.css:109:10
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/media/input.css:109:10
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^
error: MediaFeatureValue
--> $DIR/tests/fixture/at-rule/media/input.css:109:21
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^
error: UnitValue
--> $DIR/tests/fixture/at-rule/media/input.css:109:21
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^
error: Number
--> $DIR/tests/fixture/at-rule/media/input.css:109:21
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^
error: Unit
--> $DIR/tests/fixture/at-rule/media/input.css:109:24
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^
error: MediaConditionAllType
--> $DIR/tests/fixture/at-rule/media/input.css:109:28
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^^^^^
error: MediaAnd
--> $DIR/tests/fixture/at-rule/media/input.css:109:28
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^^^^^
error: MediaInParens
--> $DIR/tests/fixture/at-rule/media/input.css:109:32
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeature
--> $DIR/tests/fixture/at-rule/media/input.css:109:32
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeaturePlain
--> $DIR/tests/fixture/at-rule/media/input.css:109:32
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeatureName
--> $DIR/tests/fixture/at-rule/media/input.css:109:33
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/media/input.css:109:33
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^
error: MediaFeatureValue
--> $DIR/tests/fixture/at-rule/media/input.css:109:44
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^
error: UnitValue
--> $DIR/tests/fixture/at-rule/media/input.css:109:44
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^
error: Number
--> $DIR/tests/fixture/at-rule/media/input.css:109:44
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^
error: Unit
--> $DIR/tests/fixture/at-rule/media/input.css:109:47
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^
error: MediaConditionAllType
--> $DIR/tests/fixture/at-rule/media/input.css:109:52
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^^^^
error: MediaOr
--> $DIR/tests/fixture/at-rule/media/input.css:109:52
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^^^^
error: MediaInParens
--> $DIR/tests/fixture/at-rule/media/input.css:109:55
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeature
--> $DIR/tests/fixture/at-rule/media/input.css:109:55
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeaturePlain
--> $DIR/tests/fixture/at-rule/media/input.css:109:55
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeatureName
--> $DIR/tests/fixture/at-rule/media/input.css:109:56
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/media/input.css:109:56
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^^^^^
error: MediaFeatureValue
--> $DIR/tests/fixture/at-rule/media/input.css:109:67
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^
error: UnitValue
--> $DIR/tests/fixture/at-rule/media/input.css:109:67
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^^^
error: Number
--> $DIR/tests/fixture/at-rule/media/input.css:109:67
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^^
error: Unit
--> $DIR/tests/fixture/at-rule/media/input.css:109:70
|
109 | @media ((min-width: 800px) AND (min-width: 800px)) OR (min-width: 800px) {}
| ^^
error: Rule
--> $DIR/tests/fixture/at-rule/media/input.css:110:1
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: AtRule
--> $DIR/tests/fixture/at-rule/media/input.css:110:1
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaRule
--> $DIR/tests/fixture/at-rule/media/input.css:110:1
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaQueryList
--> $DIR/tests/fixture/at-rule/media/input.css:110:8
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaQuery
--> $DIR/tests/fixture/at-rule/media/input.css:110:8
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaCondition
--> $DIR/tests/fixture/at-rule/media/input.css:110:8
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaConditionAllType
--> $DIR/tests/fixture/at-rule/media/input.css:110:8
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaInParens
--> $DIR/tests/fixture/at-rule/media/input.css:110:8
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeature
--> $DIR/tests/fixture/at-rule/media/input.css:110:8
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeaturePlain
--> $DIR/tests/fixture/at-rule/media/input.css:110:8
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeatureName
--> $DIR/tests/fixture/at-rule/media/input.css:110:9
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/media/input.css:110:9
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^
error: MediaFeatureValue
--> $DIR/tests/fixture/at-rule/media/input.css:110:20
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^
error: UnitValue
--> $DIR/tests/fixture/at-rule/media/input.css:110:20
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^
error: Number
--> $DIR/tests/fixture/at-rule/media/input.css:110:20
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^
error: Unit
--> $DIR/tests/fixture/at-rule/media/input.css:110:23
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^
error: MediaConditionAllType
--> $DIR/tests/fixture/at-rule/media/input.css:110:27
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaAnd
--> $DIR/tests/fixture/at-rule/media/input.css:110:27
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaInParens
--> $DIR/tests/fixture/at-rule/media/input.css:110:32
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaCondition
--> $DIR/tests/fixture/at-rule/media/input.css:110:32
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: MediaConditionAllType
--> $DIR/tests/fixture/at-rule/media/input.css:110:32
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaInParens
--> $DIR/tests/fixture/at-rule/media/input.css:110:32
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeature
--> $DIR/tests/fixture/at-rule/media/input.css:110:32
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeaturePlain
--> $DIR/tests/fixture/at-rule/media/input.css:110:32
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeatureName
--> $DIR/tests/fixture/at-rule/media/input.css:110:33
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/media/input.css:110:33
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^
error: MediaFeatureValue
--> $DIR/tests/fixture/at-rule/media/input.css:110:44
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^
error: UnitValue
--> $DIR/tests/fixture/at-rule/media/input.css:110:44
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^
error: Number
--> $DIR/tests/fixture/at-rule/media/input.css:110:44
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^
error: Unit
--> $DIR/tests/fixture/at-rule/media/input.css:110:47
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^
error: MediaConditionAllType
--> $DIR/tests/fixture/at-rule/media/input.css:110:51
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^^^^
error: MediaOr
--> $DIR/tests/fixture/at-rule/media/input.css:110:51
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^^^^
error: MediaInParens
--> $DIR/tests/fixture/at-rule/media/input.css:110:54
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeature
--> $DIR/tests/fixture/at-rule/media/input.css:110:54
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeaturePlain
--> $DIR/tests/fixture/at-rule/media/input.css:110:54
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^^^^^^^^^^
error: MediaFeatureName
--> $DIR/tests/fixture/at-rule/media/input.css:110:55
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/media/input.css:110:55
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^^^^^
error: MediaFeatureValue
--> $DIR/tests/fixture/at-rule/media/input.css:110:66
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^
error: UnitValue
--> $DIR/tests/fixture/at-rule/media/input.css:110:66
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^^^
error: Number
--> $DIR/tests/fixture/at-rule/media/input.css:110:66
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^^
error: Unit
--> $DIR/tests/fixture/at-rule/media/input.css:110:69
|
110 | @media (min-width: 800px) AND ((min-width: 800px) OR (min-width: 800px)) {}
| ^^

View File

@ -31,3 +31,7 @@
@supports(transition-property:color)or ((animation-name:foo)and (transform:rotate(10deg))){}
@supports ((display: flex)) {}
@supports (display: flex !important) {}
@supports NOT (display: flex) {}
@supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
@supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
@supports (NOT (display: flex)) {}

View File

@ -2,7 +2,7 @@
"type": "Stylesheet",
"span": {
"start": 0,
"end": 1241,
"end": 1509,
"ctxt": 0
},
"rules": [
@ -2265,6 +2265,482 @@
]
},
"rules": []
},
{
"type": "SupportsRule",
"span": {
"start": 1241,
"end": 1273,
"ctxt": 0
},
"condition": {
"type": "SupportsCondition",
"span": {
"start": 1251,
"end": 1270,
"ctxt": 0
},
"conditions": [
{
"type": "SupportsNot",
"span": {
"start": 1251,
"end": 1270,
"ctxt": 0
},
"condition": {
"type": "Declaration",
"span": {
"start": 1256,
"end": 1269,
"ctxt": 0
},
"property": {
"type": "Identifier",
"span": {
"start": 1256,
"end": 1263,
"ctxt": 0
},
"value": "display",
"raw": "display"
},
"value": [
{
"type": "Identifier",
"span": {
"start": 1265,
"end": 1269,
"ctxt": 0
},
"value": "flex",
"raw": "flex"
}
],
"important": null
}
}
]
},
"rules": []
},
{
"type": "SupportsRule",
"span": {
"start": 1274,
"end": 1373,
"ctxt": 0
},
"condition": {
"type": "SupportsCondition",
"span": {
"start": 1284,
"end": 1370,
"ctxt": 0
},
"conditions": [
{
"type": "SupportsCondition",
"span": {
"start": 1285,
"end": 1338,
"ctxt": 0
},
"conditions": [
{
"type": "Declaration",
"span": {
"start": 1286,
"end": 1312,
"ctxt": 0
},
"property": {
"type": "Identifier",
"span": {
"start": 1286,
"end": 1305,
"ctxt": 0
},
"value": "transition-property",
"raw": "transition-property"
},
"value": [
{
"type": "Identifier",
"span": {
"start": 1307,
"end": 1312,
"ctxt": 0
},
"value": "color",
"raw": "color"
}
],
"important": null
},
{
"type": "SupportsOr",
"span": {
"start": 1314,
"end": 1338,
"ctxt": 0
},
"condition": {
"type": "Declaration",
"span": {
"start": 1318,
"end": 1337,
"ctxt": 0
},
"property": {
"type": "Identifier",
"span": {
"start": 1318,
"end": 1332,
"ctxt": 0
},
"value": "animation-name",
"raw": "animation-name"
},
"value": [
{
"type": "Identifier",
"span": {
"start": 1334,
"end": 1337,
"ctxt": 0
},
"value": "foo",
"raw": "foo"
}
],
"important": null
}
}
]
},
{
"type": "SupportsAnd",
"span": {
"start": 1340,
"end": 1370,
"ctxt": 0
},
"condition": {
"type": "Declaration",
"span": {
"start": 1345,
"end": 1369,
"ctxt": 0
},
"property": {
"type": "Identifier",
"span": {
"start": 1345,
"end": 1354,
"ctxt": 0
},
"value": "transform",
"raw": "transform"
},
"value": [
{
"type": "Function",
"span": {
"start": 1356,
"end": 1369,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1356,
"end": 1362,
"ctxt": 0
},
"value": "rotate",
"raw": "rotate"
},
"value": [
{
"type": "UnitValue",
"span": {
"start": 1363,
"end": 1368,
"ctxt": 0
},
"value": {
"type": "Number",
"span": {
"start": 1363,
"end": 1365,
"ctxt": 0
},
"value": 10.0,
"raw": "10"
},
"unit": {
"span": {
"start": 1365,
"end": 1368,
"ctxt": 0
},
"value": "deg",
"raw": "deg"
}
}
]
}
],
"important": null
}
}
]
},
"rules": []
},
{
"type": "SupportsRule",
"span": {
"start": 1374,
"end": 1473,
"ctxt": 0
},
"condition": {
"type": "SupportsCondition",
"span": {
"start": 1384,
"end": 1470,
"ctxt": 0
},
"conditions": [
{
"type": "Declaration",
"span": {
"start": 1385,
"end": 1411,
"ctxt": 0
},
"property": {
"type": "Identifier",
"span": {
"start": 1385,
"end": 1404,
"ctxt": 0
},
"value": "transition-property",
"raw": "transition-property"
},
"value": [
{
"type": "Identifier",
"span": {
"start": 1406,
"end": 1411,
"ctxt": 0
},
"value": "color",
"raw": "color"
}
],
"important": null
},
{
"type": "SupportsOr",
"span": {
"start": 1413,
"end": 1470,
"ctxt": 0
},
"condition": {
"type": "SupportsCondition",
"span": {
"start": 1417,
"end": 1469,
"ctxt": 0
},
"conditions": [
{
"type": "Declaration",
"span": {
"start": 1418,
"end": 1437,
"ctxt": 0
},
"property": {
"type": "Identifier",
"span": {
"start": 1418,
"end": 1432,
"ctxt": 0
},
"value": "animation-name",
"raw": "animation-name"
},
"value": [
{
"type": "Identifier",
"span": {
"start": 1434,
"end": 1437,
"ctxt": 0
},
"value": "foo",
"raw": "foo"
}
],
"important": null
},
{
"type": "SupportsAnd",
"span": {
"start": 1439,
"end": 1469,
"ctxt": 0
},
"condition": {
"type": "Declaration",
"span": {
"start": 1444,
"end": 1468,
"ctxt": 0
},
"property": {
"type": "Identifier",
"span": {
"start": 1444,
"end": 1453,
"ctxt": 0
},
"value": "transform",
"raw": "transform"
},
"value": [
{
"type": "Function",
"span": {
"start": 1455,
"end": 1468,
"ctxt": 0
},
"name": {
"type": "Identifier",
"span": {
"start": 1455,
"end": 1461,
"ctxt": 0
},
"value": "rotate",
"raw": "rotate"
},
"value": [
{
"type": "UnitValue",
"span": {
"start": 1462,
"end": 1467,
"ctxt": 0
},
"value": {
"type": "Number",
"span": {
"start": 1462,
"end": 1464,
"ctxt": 0
},
"value": 10.0,
"raw": "10"
},
"unit": {
"span": {
"start": 1464,
"end": 1467,
"ctxt": 0
},
"value": "deg",
"raw": "deg"
}
}
]
}
],
"important": null
}
}
]
}
}
]
},
"rules": []
},
{
"type": "SupportsRule",
"span": {
"start": 1474,
"end": 1508,
"ctxt": 0
},
"condition": {
"type": "SupportsCondition",
"span": {
"start": 1484,
"end": 1505,
"ctxt": 0
},
"conditions": [
{
"type": "SupportsCondition",
"span": {
"start": 1485,
"end": 1504,
"ctxt": 0
},
"conditions": [
{
"type": "SupportsNot",
"span": {
"start": 1485,
"end": 1504,
"ctxt": 0
},
"condition": {
"type": "Declaration",
"span": {
"start": 1490,
"end": 1503,
"ctxt": 0
},
"property": {
"type": "Identifier",
"span": {
"start": 1490,
"end": 1497,
"ctxt": 0
},
"value": "display",
"raw": "display"
},
"value": [
{
"type": "Identifier",
"span": {
"start": 1499,
"end": 1503,
"ctxt": 0
},
"value": "flex",
"raw": "flex"
}
],
"important": null
}
}
]
}
]
},
"rules": []
}
]
}

View File

@ -6,9 +6,9 @@ error: Stylesheet
3 | | display: grid;
4 | | }
... |
32 | | @supports ((display: flex)) {}
33 | | @supports (display: flex !important) {}
| |________________________________________^
36 | | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
37 | | @supports (NOT (display: flex)) {}
| |___________________________________^
error: Rule
--> $DIR/tests/fixture/at-rule/supports/input.css:1:1
@ -2834,3 +2834,627 @@ error: Ident
33 | @supports (display: flex !important) {}
| ^^^^
error: Rule
--> $DIR/tests/fixture/at-rule/supports/input.css:34:1
|
34 | @supports NOT (display: flex) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: AtRule
--> $DIR/tests/fixture/at-rule/supports/input.css:34:1
|
34 | @supports NOT (display: flex) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsRule
--> $DIR/tests/fixture/at-rule/supports/input.css:34:1
|
34 | @supports NOT (display: flex) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsCondition
--> $DIR/tests/fixture/at-rule/supports/input.css:34:11
|
34 | @supports NOT (display: flex) {}
| ^^^^^^^^^^^^^^^^^^^
error: SupportsConditionType
--> $DIR/tests/fixture/at-rule/supports/input.css:34:11
|
34 | @supports NOT (display: flex) {}
| ^^^^^^^^^^^^^^^^^^^
error: SupportsNot
--> $DIR/tests/fixture/at-rule/supports/input.css:34:11
|
34 | @supports NOT (display: flex) {}
| ^^^^^^^^^^^^^^^^^^^
error: SupportsInParens
--> $DIR/tests/fixture/at-rule/supports/input.css:34:16
|
34 | @supports NOT (display: flex) {}
| ^^^^^^^^^^^^^
error: SupportsFeature
--> $DIR/tests/fixture/at-rule/supports/input.css:34:16
|
34 | @supports NOT (display: flex) {}
| ^^^^^^^^^^^^^
error: Declaration
--> $DIR/tests/fixture/at-rule/supports/input.css:34:16
|
34 | @supports NOT (display: flex) {}
| ^^^^^^^^^^^^^
error: DeclarationProperty
--> $DIR/tests/fixture/at-rule/supports/input.css:34:16
|
34 | @supports NOT (display: flex) {}
| ^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:34:16
|
34 | @supports NOT (display: flex) {}
| ^^^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/supports/input.css:34:25
|
34 | @supports NOT (display: flex) {}
| ^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:34:25
|
34 | @supports NOT (display: flex) {}
| ^^^^
error: Rule
--> $DIR/tests/fixture/at-rule/supports/input.css:35:1
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: AtRule
--> $DIR/tests/fixture/at-rule/supports/input.css:35:1
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsRule
--> $DIR/tests/fixture/at-rule/supports/input.css:35:1
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsCondition
--> $DIR/tests/fixture/at-rule/supports/input.css:35:11
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsConditionType
--> $DIR/tests/fixture/at-rule/supports/input.css:35:12
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsInParens
--> $DIR/tests/fixture/at-rule/supports/input.css:35:12
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsCondition
--> $DIR/tests/fixture/at-rule/supports/input.css:35:12
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsConditionType
--> $DIR/tests/fixture/at-rule/supports/input.css:35:13
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsInParens
--> $DIR/tests/fixture/at-rule/supports/input.css:35:13
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsFeature
--> $DIR/tests/fixture/at-rule/supports/input.css:35:13
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: Declaration
--> $DIR/tests/fixture/at-rule/supports/input.css:35:13
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: DeclarationProperty
--> $DIR/tests/fixture/at-rule/supports/input.css:35:13
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:35:13
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/supports/input.css:35:34
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:35:34
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^
error: SupportsConditionType
--> $DIR/tests/fixture/at-rule/supports/input.css:35:41
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsOr
--> $DIR/tests/fixture/at-rule/supports/input.css:35:41
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsInParens
--> $DIR/tests/fixture/at-rule/supports/input.css:35:45
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^
error: SupportsFeature
--> $DIR/tests/fixture/at-rule/supports/input.css:35:45
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^
error: Declaration
--> $DIR/tests/fixture/at-rule/supports/input.css:35:45
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^
error: DeclarationProperty
--> $DIR/tests/fixture/at-rule/supports/input.css:35:45
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:35:45
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/supports/input.css:35:61
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:35:61
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^
error: SupportsConditionType
--> $DIR/tests/fixture/at-rule/supports/input.css:35:67
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsAnd
--> $DIR/tests/fixture/at-rule/supports/input.css:35:67
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsInParens
--> $DIR/tests/fixture/at-rule/supports/input.css:35:72
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsFeature
--> $DIR/tests/fixture/at-rule/supports/input.css:35:72
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: Declaration
--> $DIR/tests/fixture/at-rule/supports/input.css:35:72
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: DeclarationProperty
--> $DIR/tests/fixture/at-rule/supports/input.css:35:72
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:35:72
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/supports/input.css:35:83
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^
error: Function
--> $DIR/tests/fixture/at-rule/supports/input.css:35:83
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:35:83
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/supports/input.css:35:90
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^
error: UnitValue
--> $DIR/tests/fixture/at-rule/supports/input.css:35:90
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^^^
error: Number
--> $DIR/tests/fixture/at-rule/supports/input.css:35:90
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^
error: Unit
--> $DIR/tests/fixture/at-rule/supports/input.css:35:92
|
35 | @supports ((transition-property: color) OR (animation-name: foo)) AND (transform: rotate(10deg)) {}
| ^^^
error: Rule
--> $DIR/tests/fixture/at-rule/supports/input.css:36:1
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: AtRule
--> $DIR/tests/fixture/at-rule/supports/input.css:36:1
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsRule
--> $DIR/tests/fixture/at-rule/supports/input.css:36:1
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsCondition
--> $DIR/tests/fixture/at-rule/supports/input.css:36:11
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsConditionType
--> $DIR/tests/fixture/at-rule/supports/input.css:36:12
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsInParens
--> $DIR/tests/fixture/at-rule/supports/input.css:36:12
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsFeature
--> $DIR/tests/fixture/at-rule/supports/input.css:36:12
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: Declaration
--> $DIR/tests/fixture/at-rule/supports/input.css:36:12
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: DeclarationProperty
--> $DIR/tests/fixture/at-rule/supports/input.css:36:12
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:36:12
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/supports/input.css:36:33
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:36:33
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^
error: SupportsConditionType
--> $DIR/tests/fixture/at-rule/supports/input.css:36:40
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsOr
--> $DIR/tests/fixture/at-rule/supports/input.css:36:40
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsInParens
--> $DIR/tests/fixture/at-rule/supports/input.css:36:44
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsCondition
--> $DIR/tests/fixture/at-rule/supports/input.css:36:44
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsConditionType
--> $DIR/tests/fixture/at-rule/supports/input.css:36:45
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^
error: SupportsInParens
--> $DIR/tests/fixture/at-rule/supports/input.css:36:45
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^
error: SupportsFeature
--> $DIR/tests/fixture/at-rule/supports/input.css:36:45
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^
error: Declaration
--> $DIR/tests/fixture/at-rule/supports/input.css:36:45
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^
error: DeclarationProperty
--> $DIR/tests/fixture/at-rule/supports/input.css:36:45
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:36:45
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/supports/input.css:36:61
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:36:61
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^
error: SupportsConditionType
--> $DIR/tests/fixture/at-rule/supports/input.css:36:66
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsAnd
--> $DIR/tests/fixture/at-rule/supports/input.css:36:66
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsInParens
--> $DIR/tests/fixture/at-rule/supports/input.css:36:71
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsFeature
--> $DIR/tests/fixture/at-rule/supports/input.css:36:71
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: Declaration
--> $DIR/tests/fixture/at-rule/supports/input.css:36:71
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^
error: DeclarationProperty
--> $DIR/tests/fixture/at-rule/supports/input.css:36:71
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:36:71
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/supports/input.css:36:82
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^
error: Function
--> $DIR/tests/fixture/at-rule/supports/input.css:36:82
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:36:82
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/supports/input.css:36:89
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^
error: UnitValue
--> $DIR/tests/fixture/at-rule/supports/input.css:36:89
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^^^
error: Number
--> $DIR/tests/fixture/at-rule/supports/input.css:36:89
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^
error: Unit
--> $DIR/tests/fixture/at-rule/supports/input.css:36:91
|
36 | @supports (transition-property: color) OR ((animation-name: foo) AND (transform: rotate(10deg))) {}
| ^^^
error: Rule
--> $DIR/tests/fixture/at-rule/supports/input.css:37:1
|
37 | @supports (NOT (display: flex)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: AtRule
--> $DIR/tests/fixture/at-rule/supports/input.css:37:1
|
37 | @supports (NOT (display: flex)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsRule
--> $DIR/tests/fixture/at-rule/supports/input.css:37:1
|
37 | @supports (NOT (display: flex)) {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: SupportsCondition
--> $DIR/tests/fixture/at-rule/supports/input.css:37:11
|
37 | @supports (NOT (display: flex)) {}
| ^^^^^^^^^^^^^^^^^^^^^
error: SupportsConditionType
--> $DIR/tests/fixture/at-rule/supports/input.css:37:12
|
37 | @supports (NOT (display: flex)) {}
| ^^^^^^^^^^^^^^^^^^^
error: SupportsInParens
--> $DIR/tests/fixture/at-rule/supports/input.css:37:12
|
37 | @supports (NOT (display: flex)) {}
| ^^^^^^^^^^^^^^^^^^^
error: SupportsCondition
--> $DIR/tests/fixture/at-rule/supports/input.css:37:12
|
37 | @supports (NOT (display: flex)) {}
| ^^^^^^^^^^^^^^^^^^^
error: SupportsNot
--> $DIR/tests/fixture/at-rule/supports/input.css:37:12
|
37 | @supports (NOT (display: flex)) {}
| ^^^^^^^^^^^^^^^^^^^
error: SupportsInParens
--> $DIR/tests/fixture/at-rule/supports/input.css:37:17
|
37 | @supports (NOT (display: flex)) {}
| ^^^^^^^^^^^^^
error: SupportsFeature
--> $DIR/tests/fixture/at-rule/supports/input.css:37:17
|
37 | @supports (NOT (display: flex)) {}
| ^^^^^^^^^^^^^
error: Declaration
--> $DIR/tests/fixture/at-rule/supports/input.css:37:17
|
37 | @supports (NOT (display: flex)) {}
| ^^^^^^^^^^^^^
error: DeclarationProperty
--> $DIR/tests/fixture/at-rule/supports/input.css:37:17
|
37 | @supports (NOT (display: flex)) {}
| ^^^^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:37:17
|
37 | @supports (NOT (display: flex)) {}
| ^^^^^^^
error: Value
--> $DIR/tests/fixture/at-rule/supports/input.css:37:26
|
37 | @supports (NOT (display: flex)) {}
| ^^^^
error: Ident
--> $DIR/tests/fixture/at-rule/supports/input.css:37:26
|
37 | @supports (NOT (display: flex)) {}
| ^^^^