fix(ast, codegen, linter): panics in fixers.#5431
Conversation
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
CodSpeed Performance ReportMerging #5431 will not alter performanceComparing Summary
|
Merge activity
|
ecd8730 to
e7d6f8c
Compare
Boshen
left a comment
There was a problem hiding this comment.
Oh wait I forgot to say that we should add some tests. I intend to change how codegen deal with source_text at some point.
I am converting this to draft while I'm trying to find a good way to test it. Do you have any specific approach for testing this in mind? What part should I test? The reason behind the panic was that I assumed The We use source_text when available because the regex pattern loses some of the information from the original input so subsequently in some cases, we can't recreate the exact original input with the |
|
The linter rule tests should have at least one fixer test. We should also have at least one integration test in apps/oxlint/src/lint/mod.rs with the fixture in apps/oxlint/fixtures/linter/debugger.js |
e7d6f8c to
d141a5e
Compare
d141a5e to
7bc7fcc
Compare
It's resolved but the change request prevents Graphite to merge.
1366ee0 to
0df1d9d
Compare
## [0.27.0] - 2024-09-06 - bd820f9 semantic: [**BREAKING**] Remove `SymbolTable::get_symbol_id_from_name` and `SymbolTable::get_scope_id_from_name` (#5480) (overlookmotel) - cba93f5 ast: [**BREAKING**] Add `ThisExpression` variants to `JSXElementName` and `JSXMemberExpressionObject` (#5466) (overlookmotel) - 87c5df2 ast: [**BREAKING**] Rename `Expression::without_parentheses` (#5448) (overlookmotel) ### Features - e8bdd12 allocator: Add `AsMut` impl for `Box` (#5515) (overlookmotel) - 90facd3 ast: Add `ContentHash` trait; remove noop `Hash` implementation from `Span` (#5451) (rzvxa) - 23285f4 ast: Add `ContentEq` trait. (#5427) (rzvxa) - 59abf27 ast, parser: Add `oxc_regular_expression` types to the parser and AST. (#5256) (rzvxa) - 68a1c01 ast_tools: Add dedicated `Derive` trait. (#5278) (rzvxa) - c782916 codegen: Print `type_parameters` in `TaggedTemplateExpression` (#5438) (Dunqing) - 4cb63fe index: Impl rayon related to trait for IndexVec (#5421) (IWANABETHATGUY) - ba4b68c minifier: Remove parenthesized expression for dce (#5439) (Boshen) - ed8ab6d oxc: Conditional expose `oxc_cfg` in `oxc` crate (#5524) (IWANABETHATGUY) - 91b39c4 oxc_diagnostic: Impl DerefMut for OxcDiagnostic (#5474) (IWANABETHATGUY) - 10279f5 parser: Add syntax error for hyphen in `JSXMemberExpression` `<Foo.bar-baz />` (#5440) (Boshen) - 0f50b1e semantic: Check for initializers in ambient `VariableDeclaration`s (#5463) (DonIsaac) - 62f7fff semantic: Check for non-declared, non-abstract object accessors without bodies (#5461) (DonIsaac) - 5407143 semantic: Check for non-declared, non-abstract class accessors without bodies (#5460) (DonIsaac) - 052e94c semantic: Check for parameter properties in constructor overloads (#5459) (DonIsaac) - 32d4bbb transformer: Add `TransformOptions::enable_all` method (#5495) (Boshen) - c59d8b3 transformer: Support all /regex/ to `new RegExp` transforms (#5387) (Dunqing) - cedf7a4 xtask: Impl `as_ast_kind` method for each variant (#5491) (IWANABETHATGUY) ### Bug Fixes - 0df1d9d ast, codegen, linter: Panics in fixers. (#5431) (rzvxa) - fce549e diagnostics: Ignore `Interrupted` and `BrokenPipe` errors while printing (#5526) (Boshen) - ea7a52f napi/transform: Fix test (Boshen) - 9b984b3 regex: Panic on displaying surrogated `UnicodeEscape` characters. (#5469) (rzvxa) - 88b7ddb regular_expression: Handle unterminated character class (#5523) (leaysgur) - 7a797ac semantic: Incorrect reference when `MemberExpression` used in `TSPropertySignature` (#5525) (Dunqing) - d8b9909 semantic: `IdentifierReference` within `TSPropertySignature` cannot reference type-only import binding (#5441) (Dunqing) - 8f9627d transformer: RegExp transform do not transform invalid regexps (#5494) (overlookmotel) - 2060efc transformer: RegExp transform don't transform all RegExps (#5486) (overlookmotel) - cfe5497 transformer: Do not create double reference in JSX transform (#5414) (overlookmotel) - 0617249 transformer/nullish-coalescing-operator: Incorrect reference flags (#5408) (Dunqing) - 0eb32a6 traverse: Invalid variable name generated by `generate_uid_based_on_node` (#5407) (Dunqing)- b96bea4 Add back lifetime (#5507) (IWANABETHATGUY) ### Performance - bfabd8f syntax: Further optimize `is_identifier_name` (#5426) (overlookmotel) - aeda84f syntax: Optimize `is_identifier_name` (#5425) (overlookmotel) - ed8937e transformer: Memoize rope instance (#5518) (Dunqing) - bfab091 transformer: Store needed options only on `RegExp` (#5484) (overlookmotel) - b4765af transformer: Pre-calculate if unsupported patterns in RegExp transform (#5483) (overlookmotel) - 182ab91 transformer: Pre-calculate unsupported flags in RegExp transform (#5482) (overlookmotel) ### Documentation - 64db1b4 ast: Clarify docs for `RegExpPattern` (#5497) (overlookmotel) - 3f204a9 span: Update docs about `ContentEq` `Vec` comparison speed (#5478) (overlookmotel)- 00511fd Use `oxc_index` instead of `index_vec` in doc comments (#5423) (IWANABETHATGUY) ### Refactor - 9f6e0ed ast: Simplify `ContentEq` trait definition. (#5468) (rzvxa) - a43e951 ast: Use loop instead of recursion (#5447) (overlookmotel) - 2224cc4 ast: Renumber `JSXMemberExpressionObject` discriminants (#5464) (overlookmotel) - a952c47 ast: Use loop not recursion (#5449) (overlookmotel) - d9d7e7c ast: Remove `IdentifierName` from `TSThisParameter` (#5327) (overlookmotel) - ccc8a27 ast, ast_tools: Use full method path for generated derives trait calls. (#5462) (rzvxa) - fdb8857 linter: Use "parsed pattern" in `no_div_regex` rule. (#5417) (rzvxa) - e7bd49d regular_expression: Correct typo (#5429) (overlookmotel) - e4ed41d semantic: Change the reference flag to `ReferenceFlags::Type` if it is used within a `TSTypeQuery` (#5444) (Dunqing) - 94a6ac6 span: Use `Hasher` from `std` (#5476) (overlookmotel) - b47aca0 syntax: Use `generate_derive` for `CloneIn` in types outside of `oxc_ast` crate. (#5280) (rzvxa) - a96866d transformer: Re-order imports (#5499) (overlookmotel) - 6abde0a transformer: Clarify match in RegExp transform (#5498) (overlookmotel) - 09c522a transformer: RegExp transform report pattern parsing errors (#5496) (overlookmotel) - dd19823 transformer: RegExp transform do not take ownership of `Pattern` then reallocate it (#5492) (overlookmotel) - 2514cc9 transformer/react: Move all entry points to implementation of Traverse trait (#5473) (Dunqing) - c984219 transformer/typescript: Move all entry points to implementation of Traverse trait (#5422) (Dunqing) ### Styling - 2a43fa4 linter: Introduce the writing style from PR #5491 and reduce the if nesting (#5512) (dalaoshu) ### Testing - 340b535 linter/no-unused-vars: Arrow functions in tagged templates (#5510) (Don Isaac) Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
## [0.9.3] - 2024-09-07 ### Features - be3a432 linter: Implement typescript/no-magic-numbers (#4745) (Alexander S.) - 09aa86d linter/eslint: Implement `sort-vars` rule (#5430) (Jelle van der Waa) - 2ec2f7d linter/eslint: Implement no-alert (#5535) (Edwin Lim) - a786acf linter/import: Add no-dynamic-require rule (#5389) (Jelle van der Waa) - 4473779 linter/node: Implement no-exports-assign (#5370) (dalaoshu) - b846432 linter/oxc: Add fixer for `erasing-op` (#5377) (camc314) - aff2c71 linter/react: Implement `self-closing-comp` (#5415) (Jelle van der Waa) ### Bug Fixes - 0df1d9d ast, codegen, linter: Panics in fixers. (#5431) (rzvxa) - cdd1a91 linter: Typescript/no-magic-numbers: remove double minus for reporting negative bigint numbers (#5565) (Alexander S.) - ff88c1f linter: Don't mark binding rest elements as unused in TS function overloads (#5470) (Cam McHenry) - 088733b linter: Handle loops in `getter-return` rule (#5517) (Cam McHenry) - 82c0a16 linter: `tree_shaking/no_side_effects_in_initialization` handle JSX correctly (#5450) (overlookmotel) - 6285a02 linter: `eslint/radix` rule correctly check for unbound symbols (#5446) (overlookmotel) - c8ab353 linter/tree-shaking: Align JSXMemberExpression's report (#5548) (mysteryven) - 5187f38 linter/tree-shaking: Detect the correct export symbol resolution (#5467) (mysteryven) ### Performance - 8170954 linter/react: Add should_run conditions for react rules (#5402) (Jelle van der Waa) ### Documentation - a540215 linter: Update docs `Examples` for linter rules (#5513) (dalaoshu) - 7414190 linter: Update docs `Example` for linter rules (#5479) (heygsc) ### Refactor - 0ac420d linter: Use meaningful names for diagnostic parameters (#5564) (Don Isaac) - 81a394d linter: Deduplicate code in `oxc/no-async-await` (#5549) (DonIsaac) - 979c16c linter: Reduce nested if statements in eslint/no_this_before_super (#5485) (IWANABETHATGUY) - 1d3e973 linter: Simplify `eslint/radix` rule (#5445) (overlookmotel) - fdb8857 linter: Use "parsed pattern" in `no_div_regex` rule. (#5417) (rzvxa) - 2ccbd93 linter: `react/jsx_no_undef` rule `get_member_ident` do not return Option (#5411) (overlookmotel) ### Styling - 2a43fa4 linter: Introduce the writing style from PR #5491 and reduce the if nesting (#5512) (dalaoshu)- d8b29e7 Add trailing line breaks to JSON files (#5544) (overlookmotel)- 694f032 Add trailing line breaks to `package.json` files (#5542) (overlookmotel) ### Testing - 340b535 linter/no-unused-vars: Arrow functions in tagged templates (#5510) (Don Isaac) - af69393 linter/no-useless-spread: Ensure spreads on identifiers pass (#5561) (DonIsaac)- dc92489 Add trailing line breaks to conformance fixtures (#5541) (overlookmotel) Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>

Closes #5434
https://github.com/oxc-project/oxlint-ecosystem-ci/actions/runs/10685877915/job/29619941099