Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(linter/oxc): improve diagnostic for no-accumulating-spread in loops #5374

Conversation

camc314
Copy link
Contributor

@camc314 camc314 commented Aug 31, 2024

when reporting diagnotics for code such as

let foo = {};
for (let i = 0; i < 10; i++) {
    foo = { ...foo, [i]: i };
}

we do not currently report where the accumulator is defined.
since this is constant for Array.prototype.reduce, it is not necessary.
however for loops, it makes sense to add this span to clearly show the user where the accumator is defined.

Copy link

graphite-app bot commented Aug 31, 2024

Your org has enabled the Graphite merge queue for merging into main

Add the label “merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix.

You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link.

Copy link

codspeed-hq bot commented Aug 31, 2024

CodSpeed Performance Report

Merging #5374 will not alter performance

Comparing c/08-31-refactor_linter_oxc_improve_diagnostic_for_no-accumulating-spread_in_loops (69493d2) with main (db55444)

Summary

✅ 28 untouched benchmarks

Copy link

graphite-app bot commented Aug 31, 2024

Merge activity

… in loops (#5374)

when reporting diagnotics for code such as

```ts
let foo = {};
for (let i = 0; i < 10; i++) {
    foo = { ...foo, [i]: i };
}
```

we do not currently report **where** the accumulator is defined.
since this is constant for `Array.prototype.reduce`, it is not necessary.
however for loops, it makes sense to add this span to clearly show the user where the accumator is defined.
@DonIsaac DonIsaac force-pushed the c/08-31-refactor_linter_oxc_improve_code_comment_for_no-accumulating-spread_ branch from c9a59e3 to 024b585 Compare August 31, 2024 20:52
@DonIsaac DonIsaac force-pushed the c/08-31-refactor_linter_oxc_improve_diagnostic_for_no-accumulating-spread_in_loops branch from b4e686e to 69493d2 Compare August 31, 2024 20:52
Base automatically changed from c/08-31-refactor_linter_oxc_improve_code_comment_for_no-accumulating-spread_ to main August 31, 2024 20:56
@graphite-app graphite-app bot merged commit 69493d2 into main Aug 31, 2024
25 checks passed
@graphite-app graphite-app bot deleted the c/08-31-refactor_linter_oxc_improve_diagnostic_for_no-accumulating-spread_in_loops branch August 31, 2024 20:58
@oxc-bot oxc-bot mentioned this pull request Sep 2, 2024
Boshen added a commit that referenced this pull request Sep 2, 2024
## [0.9.2] - 2024-09-02

### Features

- f81e8a1 linter: Add `oxc/no-async-endpoint-handlers` (#5364)
(DonIsaac)
- b103737 linter: Improve no-accumulating-spread (#5302) (camc314)
- 9c22ce9 linter: Add hyperlinks to diagnostic messages (#5318)
(DonIsaac)
- 1967c67 linter/eslint: Implement no-new-func (#5360) (dalaoshu)
- b867e5f linter/eslint-plugin-promise: Implement catch-or-return
(#5121) (Jelle van der Waa)
- 8d781e7 linter/oxc: Differentiate between array/object in
`no-accumulating-spread` loop diagnostic (#5375) (camc314)
- db55444 linter/oxc: Add fixer for `double-comparisons` (#5378)
(camc314)
- e5c755a linter/promise: Add `spec-only` rule (#5124) (Jelle van der
Waa)
- 4c0861f linter/unicorn: Add fixer for `prefer-type-error` (#5311)
(camc314)
- 084c2d1 linter/vitest: Implement prefer-to-be-object (#5321)
(dalaoshu)

### Bug Fixes

- 11b93af linter/unicorn: Consistent-function-scoping false positive on
assignment expression (#5312) (Arian94)

### Performance

- f052a6d linter: `react/jsx_no_undef` faster check for unbound
references (#5349) (overlookmotel)
- 05636b7 linter: Avoid unnecessary work in `jsx_a11y/anchor_is_valid`
rule (#5341) (overlookmotel)

### Refactor

- afb038e linter: `react/jsx_no_undef` use loop instead of recursion
(#5347) (overlookmotel)
- fe62687 linter: Simplify skipping JSX elements in
`unicorn/consistent_function_scoping` (#5351) (overlookmotel)
- 381d9fe linter: Shorten code in `react/jsx_no_useless_fragment`
(#5350) (overlookmotel)
- 83b9a82 linter: Fix indentation in
`nextjs/no_script_component_in_head` rule (#5338) (overlookmotel)
- 89f0188 linter: Improve docs for `react/jsx_no_target_blank` rule
(#5342) (overlookmotel)
- 57050ab linter: Shorten code in
`jsx_a11y/aria_activedescendant_has_tabindex` rule (#5340)
(overlookmotel)
- ed31d67 linter/jest: Fix indentation in code comment (#5372) (camc314)
- 2499cb9 linter/oxc: Update rule docs for `erasing-op` (#5376)
(camc314)
- 69493d2 linter/oxc: Improve diagnostic for `no-accumulating-spread` in
loops (#5374) (camc314)
- 024b585 linter/oxc: Improve code comment for `no-accumulating-spread`
(#5373) (camc314)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-linter Area - Linter
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants