-
-
Notifications
You must be signed in to change notification settings - Fork 380
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): rewrite react/require-render-return #3276
refactor(linter): rewrite react/require-render-return #3276
Conversation
Your org has enabled the Graphite merge queue for merging into mainAdd 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. |
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @mysteryven and the rest of your teammates on Graphite |
CodSpeed Performance ReportMerging #3276 will not alter performanceComparing Summary
|
a2b989a
to
c414d12
Compare
I don't get this ... https://github.com/jsx-eslint/eslint-plugin-react/blob/d97e3ed96afe77a56fdc6fc7bdec11c28bc256e2/lib/rules/require-render-return.js#L45-L47 Why does it need to save the component and then evaluate it on program exit? |
If we are inside the render method, are we able to find explicit returns through the control flow graph 🤔 ? Do you wanna playaround with the cfg and see if there's anything in it that could help? |
After reviewing the hook rule, I have a poor concept of cfg, it will be fun to give it a try! |
c414d12
to
db4ef3e
Compare
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [oxlint](https://oxc-project.github.io) ([source](https://togithub.com/oxc-project/oxc/tree/HEAD/npm/oxlint)) | [`0.3.2` -> `0.3.5`](https://renovatebot.com/diffs/npm/oxlint/0.3.2/0.3.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/oxlint/0.3.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/oxlint/0.3.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/oxlint/0.3.2/0.3.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/oxlint/0.3.2/0.3.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>oxc-project/oxc (oxlint)</summary> ### [`v0.3.5`](https://togithub.com/oxc-project/oxc/releases/tag/oxlint_v0.3.5): oxlint v0.3.5 [Compare Source](https://togithub.com/oxc-project/oxc/compare/7193d75e9444ae8c2ba757b3bc64459abd0e128a...754d9f4c98aab052cf6b2756f7af12557042708d) #### What's Changed - feat(linter): add use-isnan fixer for (in)equality operations by [@​DonIsaac](https://togithub.com/DonIsaac) in [oxc-project/oxc#3284 - feat(linter/eslint): Implement fixer for unicode-bom rule by [@​jelly](https://togithub.com/jelly) in [oxc-project/oxc#3259 - fix(linter/no-direct-mutation-state): false positive when class is declared inside a `CallExpression` by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3294 - fix(parser): parse `DecoratorCallExpression` when `Arguments` contains `MemberExpression` by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3265 - perf(ast): inline all `ASTBuilder` methods by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3295 - perf(lexer): dedupe numeric separator check by [@​DonIsaac](https://togithub.com/DonIsaac) in [oxc-project/oxc#3283 - perf(linter): rewrite react/require-render-return by [@​mysteryven](https://togithub.com/mysteryven) in [oxc-project/oxc#3276 #### New Contributors - [@​g-plane](https://togithub.com/g-plane) made their first contribution in [oxc-project/oxc#3268 **Full Changelog**: oxc-project/oxc@oxlint_v0.3.4...oxlint_v0.3.5 ### [`v0.3.4`](https://togithub.com/oxc-project/oxc/releases/tag/oxlint_v0.3.4): oxlint v0.3.4 [Compare Source](https://togithub.com/oxc-project/oxc/compare/6149e49ef79a22004e36820c81afcb0c755fcc81...7193d75e9444ae8c2ba757b3bc64459abd0e128a) #### What's Changed - [feat(linter): move react/rules_of_hooks to nursery](https://togithub.com/oxc-project/oxc/commit/6edcae86cda8922ea8f9e5eae91290018e1b1637) - feat(linter/eslint): Implement max-classes-per-file by [@​jelly](https://togithub.com/jelly) in [oxc-project/oxc#3241 - **Full Changelog**: oxc-project/oxc@oxlint_v0.3.3...oxlint_v0.3.4 *** ### From v0.3.3 #### What's Changed ##### Features - add `--symlinks` to allow symbolic walking by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3244 - add `--format github` for github check annotation by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3191 - change the category of all react-perf rules to perf by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#3243 - remove deprecated eslint v9 rules `no-return-await` and `no-mixed-operators` by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3188 - move prefer-node-protocol to restriction by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3171 ##### New Rules - react/rules-of-hooks by [@​rzvxa](https://togithub.com/rzvxa) in [oxc-project/oxc#3071 - eslint/radix by [@​KubaJastrz](https://togithub.com/KubaJastrz) in [oxc-project/oxc#3167 - eslint/no-new-native-nonconstructor by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3187 - eslint/unicode-bom by [@​jelly](https://togithub.com/jelly) in [oxc-project/oxc#3239 - eslint/no-empty-function rule by [@​jelly](https://togithub.com/jelly) in [oxc-project/oxc#3181 - eslint-plugin-next/no-duplicate-head by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3174 - eslint-plugin-next/no-page-custom-font by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#3185 - eslint-plugin-next/no-styled-jsx-in-document by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#3184 - unicorn/no-anonymous-default-export by [@​1zumii](https://togithub.com/1zumii) in [oxc-project/oxc#3220 ##### Bug Fixes - improve `prefer-string-starts-ends-with` rule by [@​camc314](https://togithub.com/camc314) in [oxc-project/oxc#3176 - import/export: improve multiple exports error message by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#3160 - import/named: handle `import { default as foo }` by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3255 - shorten eslint/eqeqeq rule error message's span by [@​mysteryven](https://togithub.com/mysteryven) in [oxc-project/oxc#3193 - fix(parser): correctly parse cls.fn<C> = x by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#3208 #### New Contributors - [@​KubaJastrz](https://togithub.com/KubaJastrz) made their first contribution in [oxc-project/oxc#3167 - [@​1zumii](https://togithub.com/1zumii) made their first contribution in [oxc-project/oxc#3220 **Full Changelog**: oxc-project/oxc@oxlint_v0.3.2...oxlint_v0.3.3 ### [`v0.3.3`](https://togithub.com/oxc-project/oxc/releases/tag/oxlint_v0.3.3): oxlint v0.3.3 [Compare Source](https://togithub.com/oxc-project/oxc/compare/a7940868c6e66d16814ebef5c8dbbfd9b948a0cd...6149e49ef79a22004e36820c81afcb0c755fcc81) #### What's Changed ##### Features - add `--symlinks` to allow symbolic walking by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3244 - add `--format github` for github check annotation by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3191 - change the category of all react-perf rules to perf by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#3243 - remove deprecated eslint v9 rules `no-return-await` and `no-mixed-operators` by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3188 - move prefer-node-protocol to restriction by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3171 ##### New Rules - react/rules-of-hooks by [@​rzvxa](https://togithub.com/rzvxa) in [oxc-project/oxc#3071 - eslint/radix by [@​KubaJastrz](https://togithub.com/KubaJastrz) in [oxc-project/oxc#3167 - eslint/no-new-native-nonconstructor by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3187 - eslint/unicode-bom by [@​jelly](https://togithub.com/jelly) in [oxc-project/oxc#3239 - eslint/no-empty-function rule by [@​jelly](https://togithub.com/jelly) in [oxc-project/oxc#3181 - eslint-plugin-next/no-duplicate-head by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3174 - eslint-plugin-next/no-page-custom-font by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#3185 - eslint-plugin-next/no-styled-jsx-in-document by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#3184 - unicorn/no-anonymous-default-export by [@​1zumii](https://togithub.com/1zumii) in [oxc-project/oxc#3220 ##### Bug Fixes - improve `prefer-string-starts-ends-with` rule by [@​camc314](https://togithub.com/camc314) in [oxc-project/oxc#3176 - import/export: improve multiple exports error message by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#3160 - import/named: handle `import { default as foo }` by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#3255 - shorten eslint/eqeqeq rule error message's span by [@​mysteryven](https://togithub.com/mysteryven) in [oxc-project/oxc#3193 - fix(parser): correctly parse cls.fn<C> = x by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#3208 #### New Contributors - [@​KubaJastrz](https://togithub.com/KubaJastrz) made their first contribution in [oxc-project/oxc#3167 - [@​1zumii](https://togithub.com/1zumii) made their first contribution in [oxc-project/oxc#3220 **Full Changelog**: oxc-project/oxc@oxlint_v0.3.2...oxlint_v0.3.3 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNTEuMiIsInVwZGF0ZWRJblZlciI6IjM3LjM2My41IiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
Closes: #3245
It's gone now, curious about why didn't have performance improvement.
This picture generated by running all the rules.