Skip to content

Commit

Permalink
feat(css/parser): Improve error reporting (#6274)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexander-akait committed Oct 28, 2022
1 parent 55f2cdf commit 956d574
Show file tree
Hide file tree
Showing 10 changed files with 527 additions and 143 deletions.
10 changes: 5 additions & 5 deletions crates/swc_css_parser/src/parser/selectors/mod.rs
Expand Up @@ -403,8 +403,8 @@ where
I: ParserInput,
{
fn parse(&mut self) -> PResult<CompoundSelector> {
let span = self.input.cur_span();
let start_pos = span.lo;
let start_span = self.input.cur_span();
let start_pos = start_span.lo;

let mut nesting_selector = None;

Expand Down Expand Up @@ -459,12 +459,12 @@ where
}
}

let span = span!(self, start_pos);

if nesting_selector.is_none() && type_selector.is_none() && subclass_selectors.is_empty() {
return Err(Error::new(span, ErrorKind::InvalidSelector));
return Err(Error::new(start_span, ErrorKind::InvalidSelector));
}

let span = span!(self, start_pos);

Ok(CompoundSelector {
span,
nesting_selector,
Expand Down
3 changes: 0 additions & 3 deletions crates/swc_css_parser/tests/fixture.rs
Expand Up @@ -581,11 +581,8 @@ fn span_visualizer_line_comment(input: PathBuf) {
#[testing::fixture(
"tests/recovery/**/input.css",
exclude(
"at-rule/media/condition/input.css",
"at-rule/media/condition-1/input.css",
"at-rule/page/invalid-nesting/input.css",
"at-rule/page/without-page/input.css",
"at-rule/unknown/input.css",
"function/calc/division/input.css",
"function/calc/space/input.css",
"function/var/input.css",
Expand Down

1 comment on commit 956d574

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: 956d574 Previous: 02f8d31 Ratio
es/full/bugs-1 351173 ns/iter (± 21971) 354161 ns/iter (± 28230) 0.99
es/full/minify/libraries/antd 1974722542 ns/iter (± 56745584) 1865115424 ns/iter (± 63451655) 1.06
es/full/minify/libraries/d3 456567209 ns/iter (± 9231317) 429008668 ns/iter (± 11133572) 1.06
es/full/minify/libraries/echarts 1688225647 ns/iter (± 38123174) 1570650146 ns/iter (± 38899866) 1.07
es/full/minify/libraries/jquery 120712503 ns/iter (± 5159910) 99925110 ns/iter (± 1841293) 1.21
es/full/minify/libraries/lodash 145119092 ns/iter (± 7237146) 113938045 ns/iter (± 8793400) 1.27
es/full/minify/libraries/moment 69265521 ns/iter (± 4378178) 62702625 ns/iter (± 2262337) 1.10
es/full/minify/libraries/react 21896969 ns/iter (± 733659) 20906086 ns/iter (± 983532) 1.05
es/full/minify/libraries/terser 356031188 ns/iter (± 19978424) 335456294 ns/iter (± 7702636) 1.06
es/full/minify/libraries/three 585498327 ns/iter (± 14200213) 576764323 ns/iter (± 13336693) 1.02
es/full/minify/libraries/typescript 3669590252 ns/iter (± 81940161) 3462433450 ns/iter (± 77210381) 1.06
es/full/minify/libraries/victory 897559822 ns/iter (± 34392897) 822593894 ns/iter (± 19122266) 1.09
es/full/minify/libraries/vue 183308548 ns/iter (± 10929151) 165270185 ns/iter (± 7545555) 1.11
es/full/codegen/es3 34453 ns/iter (± 2215) 34581 ns/iter (± 458) 1.00
es/full/codegen/es5 34147 ns/iter (± 3075) 34445 ns/iter (± 1261) 0.99
es/full/codegen/es2015 34521 ns/iter (± 1178) 34563 ns/iter (± 657) 1.00
es/full/codegen/es2016 34382 ns/iter (± 1139) 34421 ns/iter (± 994) 1.00
es/full/codegen/es2017 34197 ns/iter (± 2501) 34017 ns/iter (± 1070) 1.01
es/full/codegen/es2018 34240 ns/iter (± 1842) 34418 ns/iter (± 1711) 0.99
es/full/codegen/es2019 34137 ns/iter (± 2461) 34451 ns/iter (± 1569) 0.99
es/full/codegen/es2020 34410 ns/iter (± 1429) 34519 ns/iter (± 437) 1.00
es/full/all/es3 230720682 ns/iter (± 15514517) 196319736 ns/iter (± 11486928) 1.18
es/full/all/es5 219303837 ns/iter (± 38465480) 183276300 ns/iter (± 10531859) 1.20
es/full/all/es2015 177058610 ns/iter (± 11816327) 147468855 ns/iter (± 5020165) 1.20
es/full/all/es2016 172167049 ns/iter (± 11357839) 144376424 ns/iter (± 14632678) 1.19
es/full/all/es2017 161453457 ns/iter (± 8321840) 148698989 ns/iter (± 7522574) 1.09
es/full/all/es2018 162055643 ns/iter (± 11636701) 140426073 ns/iter (± 5928379) 1.15
es/full/all/es2019 169801773 ns/iter (± 9905999) 149695966 ns/iter (± 10112648) 1.13
es/full/all/es2020 167918539 ns/iter (± 15932387) 138654535 ns/iter (± 6286155) 1.21
es/full/parser 754540 ns/iter (± 74902) 728183 ns/iter (± 90481) 1.04
es/full/base/fixer 26627 ns/iter (± 1444) 26325 ns/iter (± 410) 1.01
es/full/base/resolver_and_hygiene 96495 ns/iter (± 4317) 92630 ns/iter (± 2222) 1.04
serialization of ast node 220 ns/iter (± 19) 214 ns/iter (± 3) 1.03
serialization of serde 222 ns/iter (± 11) 215 ns/iter (± 4) 1.03

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.