Skip to content

Commit fd84dcc

Browse files
committed
fix(linter/plugins): RuleTester parser catch fatal errors (#16558)
Small bug fix to `RuleTester`. Throw error if parsing has a fatal error.
1 parent da87812 commit fd84dcc

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

apps/oxlint/src/js_plugins/parse.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,11 +137,16 @@ unsafe fn parse_raw_impl(filename: &str, buffer: &mut [u8], source_len: u32) {
137137
.parse();
138138
let program = allocator.alloc(parser_ret.program);
139139

140+
let mut parsing_failed = parser_ret.panicked || !parser_ret.errors.is_empty();
141+
140142
// Check for semantic errors
141-
let semantic_ret = SemanticBuilder::new().with_check_syntax_error(true).build(program);
143+
if !parsing_failed {
144+
let semantic_ret = SemanticBuilder::new().with_check_syntax_error(true).build(program);
145+
parsing_failed = !semantic_ret.errors.is_empty();
146+
}
142147

143-
if !parser_ret.errors.is_empty() || !semantic_ret.errors.is_empty() {
144-
// Parsing failed. Return sentinel value to indicate this.
148+
if parsing_failed {
149+
// Use sentinel value for program offset to indicate that parsing failed
145150
PARSE_FAIL_SENTINEL
146151
} else {
147152
// Convert spans to UTF-16

0 commit comments

Comments
 (0)