-
-
Notifications
You must be signed in to change notification settings - Fork 727
fix(linter/prefer-array-flat-map): error for .flat(1.0)
#12360
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
fix(linter/prefer-array-flat-map): error for .flat(1.0)
#12360
Conversation
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
CodSpeed Instrumentation Performance ReportMerging #12360 will not alter performanceComparing Summary
|
|
Oh bollocks! Looks like both of our solutions are wrong! I'll revise. |
27037cb to
9c415b0
Compare
|
Well that was pretty complicated for a simple lint rule! |
Merge activity
|
Previously this rule did not produce an error for `.map(f).flat(1.0)`. This PR fixes that. Also round down the argument and produce errors for e.g. `.map(f).flat(1.9)`. This follows ECMA spec (see comments in code), and I've also verified that all the weird test cases match behavior of `.flat(...)` in NodeJS.
9c415b0 to
119d23a
Compare
## [1.8.0] - 2025-07-22 ### 🚀 Features - 6d2b549 napi/oxlint: Pass AST in buffer to JS (#12350) (overlookmotel) - 14f0159 linter/exhaustive-deps: Add auto-fixer (#12354) (Don Isaac) ### 🐛 Bug Fixes - 99e105f linter: Correct autofix in `unicorn/prefer-number-properties` for Infinity (#12445) (yefan) - 0b539e3 linter: `unicorn/catch-error-name` wasn't using the ignore property (#12446) (Parbez) - 05fba9b linter: Don't panic on `TSNonNullExpression` in `unicorn/prefer-array-find` (#12400) (Sysix) - 46e33d5 linter: Improve error handling in config file lookup (#12391) (camc314) - 4621872 linter: Parse second script block for `svelte` files (#12390) (Sysix) - fbe7eb4 linter/filename-case: Fix default config when no config is provided (#12389) (camc314) - fea9df4 linter: Report errors with the correct severity for custom plugins (#12362) (camc314) - 652c038 linter: Mark correctly enabled default rules for `--rules` (#12163) (Sysix) - eadc359 linter: Correct source text for vue files having script attributes containig ">" char inside (#12375) (Sysix) - 54d143a linter/exhaustive-deps: More descriptive messages for always-rerender violations (#12336) (Don Isaac) - dac4db9 linter/exhaustive-deps: Better diagnostics for missing dependencies (#12337) (Don Isaac) - 119d23a linter/prefer-array-flat-map: Error for `.flat(1.0)` (#12360) (overlookmotel) ### 🚜 Refactor - 2d9291c linter/prefer-number-properties: Simplify fixer logic (#12451) (camc314) - c5dff1e linter, napi/parser: Add `source_len` field to `RawTransferMetadata` (#12383) (overlookmotel) - 5e3b415 linter: Duplicate `RawTransferMetadata` in `oxc_linter` crate (#12382) (overlookmotel) - 773fd88 linter: Pass `&Allocator` into `Linter::run_external_rules` (#12374) (overlookmotel) - b10ed11 linter: Make unwrap unconditional (#12371) (overlookmotel) - a0631d4 linter: Move running external rules into feature-gated function (#12370) (overlookmotel) - 4fc4e7c linter: Make feature gates for `oxlint2` feature consistent (#12369) (overlookmotel) - 50b1786 linter: Clarify usage of `Allocator` and `AllocatorGuard` (#12332) (overlookmotel) - 26d3a39 linter: Remove `ModuleContentOwner` abstraction (#12331) (overlookmotel) ### 📚 Documentation - 3c21d94 linter: Correct comment on `RawTransferMetadata2` type (#12428) (overlookmotel) Co-authored-by: camc314 <18101008+camc314@users.noreply.github.com>

Previously this rule did not produce an error for
.map(f).flat(1.0). This PR fixes that.Also round down the argument and produce errors for e.g.
.map(f).flat(1.9). This follows ECMA spec (see comments in code), and I've also verified that all the weird test cases match behavior of.flat(...)in NodeJS.