Skip to content

Comments

fix(linter): eslint/radix rule correctly check for unbound symbols#5446

Merged
graphite-app[bot] merged 1 commit intomainfrom
09-04-fix_linter_eslint_radix_rule_correctly_check_for_unbound_symbols
Sep 5, 2024
Merged

fix(linter): eslint/radix rule correctly check for unbound symbols#5446
graphite-app[bot] merged 1 commit intomainfrom
09-04-fix_linter_eslint_radix_rule_correctly_check_for_unbound_symbols

Conversation

@overlookmotel
Copy link
Member

@overlookmotel overlookmotel commented Sep 4, 2024

SymbolTable::get_symbol_id_from_name(name).is_none() is not always correct, because it will return false if there is a binding anywhere in the AST with that name, whereas what we actually want to know is whether this IdentifierReference is referring to a global or not.

Instead, look up whether this reference is resolved or not using SymbolTable::is_global_reference.

The 3 test cases added were not working prior to this change.

Copy link
Member Author

overlookmotel commented Sep 4, 2024

@github-actions github-actions bot added the A-linter Area - Linter label Sep 4, 2024
@overlookmotel overlookmotel marked this pull request as ready for review September 4, 2024 16:37
@codspeed-hq
Copy link

codspeed-hq bot commented Sep 4, 2024

CodSpeed Performance Report

Merging #5446 will not alter performance

Comparing 09-04-fix_linter_eslint_radix_rule_correctly_check_for_unbound_symbols (6285a02) with main (2224cc4)

Summary

✅ 29 untouched benchmarks

@DonIsaac DonIsaac changed the base branch from 09-04-refactor_linter_simplify_eslint_radix_rule to graphite-base/5446 September 4, 2024 16:52
@overlookmotel overlookmotel force-pushed the 09-04-fix_linter_eslint_radix_rule_correctly_check_for_unbound_symbols branch from 45ec84a to 59ad46e Compare September 4, 2024 16:52
@DonIsaac DonIsaac changed the base branch from graphite-base/5446 to main September 4, 2024 16:56
@DonIsaac DonIsaac force-pushed the 09-04-fix_linter_eslint_radix_rule_correctly_check_for_unbound_symbols branch from 59ad46e to fcd4955 Compare September 4, 2024 16:56
@Boshen Boshen added the 0-merge Merge with Graphite Merge Queue label Sep 5, 2024
@graphite-app
Copy link
Contributor

graphite-app bot commented Sep 5, 2024

Merge activity

  • Sep 4, 9:17 PM EDT: The merge label 'merge' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.
  • Sep 4, 9:18 PM EDT: Boshen added this pull request to the Graphite merge queue.
  • Sep 4, 9:23 PM EDT: Boshen merged this pull request with the Graphite merge queue.

…5446)

`SymbolTable::get_symbol_id_from_name(name).is_none()` is not always correct, because it will return `false` if there is a binding *anywhere* in the AST with that name, whereas what we actually want to know is whether *this* `IdentifierReference` is referring to a global or not.

Instead, look up whether this reference is resolved or not using `SymbolTable::is_global_reference`.

The 3 test cases added were not working prior to this change.
@Boshen Boshen force-pushed the 09-04-fix_linter_eslint_radix_rule_correctly_check_for_unbound_symbols branch from fcd4955 to 6285a02 Compare September 5, 2024 01:18
@graphite-app graphite-app bot merged commit 6285a02 into main Sep 5, 2024
@graphite-app graphite-app bot deleted the 09-04-fix_linter_eslint_radix_rule_correctly_check_for_unbound_symbols branch September 5, 2024 01:23
@oxc-bot oxc-bot mentioned this pull request Sep 7, 2024
Boshen added a commit that referenced this pull request Sep 7, 2024
## [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 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

0-merge Merge with Graphite Merge Queue A-linter Area - Linter

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants