-
-
Notifications
You must be signed in to change notification settings - Fork 456
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: remove paranthesis expression #388
Conversation
8a3d800
to
ef180cd
Compare
Benchmark ResultsLinux
Windows
|
ef180cd
to
d25fd4d
Compare
I'm working on this in another branch, this is hard than I thought. JavaScript grammar are wild 😭 |
d25fd4d
to
58da061
Compare
58da061
to
f348068
Compare
Oh man this took longer than I thought, and I had to juggle a lot of decisions ... This is currently in a mergeable state, where the bulk of the work is done. Once merged, we'll be able to fix all the smaller issues one by one, instead of trying to fix everything altogether. I turned off some of the previous optimizations, because they are interfering with each other. I also turned off some of the tests, because the optimizations aren't done yet. In the next steps, I'll look into the bigger architecture first, mainly separate out the these interfering optimizations into separate ast passes. During the meantime, you guys can pick up any commented out test and try to learn some JavaScript Grammar 😄 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Things are getting smaller overall! Hooray!
Codecov Report
@@ Coverage Diff @@
## main #388 +/- ##
==========================================
- Coverage 89.54% 89.42% -0.13%
==========================================
Files 151 151
Lines 28093 28159 +66
==========================================
+ Hits 25156 25181 +25
- Misses 2937 2978 +41
... and 2 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a great work!
@@ -24,7 +25,7 @@ impl<'a> GetPrecedence for Expression<'a> { | |||
Self::NewExpression(expr) => expr.precedence(), | |||
Self::CallExpression(expr) => expr.precedence(), | |||
Self::MemberExpression(expr) => expr.precedence(), | |||
_ => Precedence::Lowest, | |||
_ => Precedence::highest(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the reason for this change? @Boshen
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The rest are primary expressions, which has the highest precedence.
[![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.0.22` -> `0.1.2`](https://renovatebot.com/diffs/npm/oxlint/0.0.22/0.1.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/oxlint/0.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/oxlint/0.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/oxlint/0.0.22/0.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/oxlint/0.0.22/0.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>oxc-project/oxc (oxlint)</summary> ### [`v0.1.2`](https://togithub.com/oxc-project/oxc/releases/tag/oxlint_v0.1.2): oxlint v0.1.2 [Compare Source](https://togithub.com/oxc-project/oxc/compare/821cc8e9c7cfb326ff546483bb2a32d12e018e4c...4a9e0c4bf4179bf5839b690be3690163ff00e2ef) #### Try it out! - Run `npx --yes oxlint@latest` from your terminal - Install the Vscode extension https://marketplace.visualstudio.com/items?itemName=oxc.oxc-vscode - Read the [usage guide](https://oxc-project.github.io/docs/guide/usage/linter.html) #### Svelte support `<script>` tag is linted by default. #### Features - feat(linter): <script> part of svelte file by [@​Boshen](https://togithub.com/Boshen) in [https://github.com/oxc-project/oxc/pull/1918](https://togithub.com/oxc-project/oxc/pull/1918) - feat(linter): disable no-unused-labels for svelte by [@​Boshen](https://togithub.com/Boshen) in [https://github.com/oxc-project/oxc/pull/1919](https://togithub.com/oxc-project/oxc/pull/1919) ### Fixes - fix(linter): change no-var to restriction [`bb6128b`](https://togithub.com/oxc-project/oxc/commit/bb6128b) - chore: add some useful informantion log by [@​IWANABETHATGUY](https://togithub.com/IWANABETHATGUY) in [https://github.com/oxc-project/oxc/pull/1912](https://togithub.com/oxc-project/oxc/pull/1912) - fix(linter) fix eslint config for filename case by [@​camc314](https://togithub.com/camc314) in [https://github.com/oxc-project/oxc/pull/1913](https://togithub.com/oxc-project/oxc/pull/1913) **Full Changelog**: oxc-project/oxc@oxlint_v0.1.1...oxlint_v0.1.2 ### [`v0.1.1`](https://togithub.com/oxc-project/oxc/releases/tag/oxlint_v0.1.1): oxlint v0.1.1 [Compare Source](https://togithub.com/oxc-project/oxc/compare/v0.1.0...821cc8e9c7cfb326ff546483bb2a32d12e018e4c) #### Try it out! - Run `npx --yes oxlint@latest` from your terminal - Install the Vscode extension https://marketplace.visualstudio.com/items?itemName=oxc.oxc-vscode - Read the [usage guide](https://oxc-project.github.io/docs/guide/usage/linter.html) #### Vue support `<script>` and `<script setup>` are linted by default. #### Astro support Frontmatter component script `---` and all `<script>` tags are linted by default. #### Configuration files (experimental) `-c ./eslintrc.json` will use the `rules` field for rule configuration, as documented in [ESLint's documentation](https://eslint.org/docs/latest/use/configure/rules#using-configuration-files). Unfortunately, only the `json` format is supported right now. The `extends` field will not take effect; normal `-D` and `-A` flags still apply. #### New Rules ##### Correctness - deepscan: bad object literal comparison by [@​camc314](https://togithub.com/camc314) in [https://github.com/oxc-project/oxc/pull/1844](https://togithub.com/oxc-project/oxc/pull/1844) - oxc: erasing op by [@​camc314](https://togithub.com/camc314) in [https://github.com/oxc-project/oxc/pull/1834](https://togithub.com/oxc-project/oxc/pull/1834) - oxc: only used in recursion by [@​camc314](https://togithub.com/camc314) in [https://github.com/oxc-project/oxc/pull/1833](https://togithub.com/oxc-project/oxc/pull/1833) - eslint: no irregular whitespace by [@​DeividAlmeida](https://togithub.com/DeividAlmeida) in [https://github.com/oxc-project/oxc/pull/1877](https://togithub.com/oxc-project/oxc/pull/1877) - eslint: no-unused-private-class-members rule by [@​Dunqing](https://togithub.com/Dunqing) in [https://github.com/oxc-project/oxc/pull/1820](https://togithub.com/oxc-project/oxc/pull/1820) - eslint: no-var by [@​zhangrunzhao](https://togithub.com/zhangrunzhao) in [https://github.com/oxc-project/oxc/pull/1890](https://togithub.com/oxc-project/oxc/pull/1890) - eslint-plugin-react: jsx-no-undef for by [@​XantreGodlike](https://togithub.com/XantreGodlike) in [https://github.com/oxc-project/oxc/pull/1862](https://togithub.com/oxc-project/oxc/pull/1862) - eslint-plugin-jsx-a11y: aria-role by [@​msdlisper](https://togithub.com/msdlisper) in [https://github.com/oxc-project/oxc/pull/1849](https://togithub.com/oxc-project/oxc/pull/1849) - eslint-plugin-jsx-a11y: lang by [@​msdlisper](https://togithub.com/msdlisper) in [https://github.com/oxc-project/oxc/pull/1812](https://togithub.com/oxc-project/oxc/pull/1812) - eslint-plugin-jsx-a11y: media-has-caption by [@​poteboy](https://togithub.com/poteboy) in [https://github.com/oxc-project/oxc/pull/1822](https://togithub.com/oxc-project/oxc/pull/1822) - eslint-plugin-jsx-a11y: mouse-events-have-key-events(correctness) by [@​Ken-HH24](https://togithub.com/Ken-HH24) in [https://github.com/oxc-project/oxc/pull/1867](https://togithub.com/oxc-project/oxc/pull/1867) - eslint-plugin-jsx-a11y: prefer-tag-over-role rule by [@​yossydev](https://togithub.com/yossydev) in [https://github.com/oxc-project/oxc/pull/1831](https://togithub.com/oxc-project/oxc/pull/1831) - eslint-plugin-jsx-a11y: aria-unsupported-elements by [@​re-taro](https://togithub.com/re-taro) in [https://github.com/oxc-project/oxc/pull/1855](https://togithub.com/oxc-project/oxc/pull/1855) - eslint-plugin-jsx-a11y: html_has_lang by [@​msdlisper](https://togithub.com/msdlisper) in [https://github.com/oxc-project/oxc/pull/1843](https://togithub.com/oxc-project/oxc/pull/1843) ##### Suspicious - oxc: approx constant by [@​camc314](https://togithub.com/camc314) in [https://github.com/oxc-project/oxc/pull/1818](https://togithub.com/oxc-project/oxc/pull/1818) - oxc: misrefactored assign op by [@​camc314](https://togithub.com/camc314) in [https://github.com/oxc-project/oxc/pull/1832](https://togithub.com/oxc-project/oxc/pull/1832) ##### Restriction - react: button has type by [@​camc314](https://togithub.com/camc314) in [https://github.com/oxc-project/oxc/pull/1785](https://togithub.com/oxc-project/oxc/pull/1785) - unicorn: prefer modern math apis by [@​camc314](https://togithub.com/camc314) in [https://github.com/oxc-project/oxc/pull/1620](https://togithub.com/oxc-project/oxc/pull/1620) #### Fixes - fix(linter): ignore anonymous functional components in arrays for eslint-plugin-react(jsx-key) by [@​maurice](https://togithub.com/maurice) in [https://github.com/oxc-project/oxc/pull/1858](https://togithub.com/oxc-project/oxc/pull/1858) - Prioritize ignored paths when linting by [@​clarkf](https://togithub.com/clarkf) in [https://github.com/oxc-project/oxc/pull/1878](https://togithub.com/oxc-project/oxc/pull/1878) - feat(linter): handle more cases for `const-comparisons` by [@​camc314](https://togithub.com/camc314) in [https://github.com/oxc-project/oxc/pull/1817](https://togithub.com/oxc-project/oxc/pull/1817) - feat(semantic): allow reserved keyword defined in ts module block by [@​Dunqing](https://togithub.com/Dunqing) in [https://github.com/oxc-project/oxc/pull/1907](https://togithub.com/oxc-project/oxc/pull/1907) - fix(parser): error on source larger than 4 GiB by [@​overlookmotel](https://togithub.com/overlookmotel) in [https://github.com/oxc-project/oxc/pull/1860](https://togithub.com/oxc-project/oxc/pull/1860) - fix(parser): fix incorrectly identified directives by [@​overlookmotel](https://togithub.com/overlookmotel) in [https://github.com/oxc-project/oxc/pull/1885](https://togithub.com/oxc-project/oxc/pull/1885) - fix(parser): terminate parsing if an EmptyParenthesizedExpression error occurs by [@​Dunqing](https://togithub.com/Dunqing) in [https://github.com/oxc-project/oxc/pull/1874](https://togithub.com/oxc-project/oxc/pull/1874) - fix(semantic): remove duplicate errors in ModuleDeclaration::ImportDeclaration by [@​Dunqing](https://togithub.com/Dunqing) in [https://github.com/oxc-project/oxc/pull/1846](https://togithub.com/oxc-project/oxc/pull/1846) - perf(linter): reduce the number of diagnostics for no_sparse_arrays by [@​camc314](https://togithub.com/camc314) in [https://github.com/oxc-project/oxc/pull/1895](https://togithub.com/oxc-project/oxc/pull/1895) #### New Contributors - [@​maurice](https://togithub.com/maurice) made their first contribution in [https://github.com/oxc-project/oxc/pull/1858](https://togithub.com/oxc-project/oxc/pull/1858) - [@​re-taro](https://togithub.com/re-taro) made their first contribution in [https://github.com/oxc-project/oxc/pull/1855](https://togithub.com/oxc-project/oxc/pull/1855) - [@​DeividAlmeida](https://togithub.com/DeividAlmeida) made their first contribution in [https://github.com/oxc-project/oxc/pull/1835](https://togithub.com/oxc-project/oxc/pull/1835) - [@​XantreGodlike](https://togithub.com/XantreGodlike) made their first contribution in [https://github.com/oxc-project/oxc/pull/1862](https://togithub.com/oxc-project/oxc/pull/1862) - [@​Qix-](https://togithub.com/Qix-) made their first contribution in [https://github.com/oxc-project/oxc/pull/1861](https://togithub.com/oxc-project/oxc/pull/1861) - [@​yossydev](https://togithub.com/yossydev) made their first contribution in [https://github.com/oxc-project/oxc/pull/1831](https://togithub.com/oxc-project/oxc/pull/1831) - [@​clarkf](https://togithub.com/clarkf) made their first contribution in [https://github.com/oxc-project/oxc/pull/1878](https://togithub.com/oxc-project/oxc/pull/1878) - [@​zhangrunzhao](https://togithub.com/zhangrunzhao) made their first contribution in [https://github.com/oxc-project/oxc/pull/1890](https://togithub.com/oxc-project/oxc/pull/1890) **Full Changelog**: oxc-project/oxc@oxlint_v0.0.22...oxlint_v0.1.1 ### [`v0.1.0`](https://togithub.com/oxc-project/oxc/releases/tag/v0.1.0): CLI v0.1.0 Ezno Type Checker [Compare Source](https://togithub.com/oxc-project/oxc/compare/a1accdca7f83694a6ea520d5cbfd090ea5dd271a...v0.1.0) `npx oxidation-compiler@latest check ./test.ts` ![image](https://togithub.com/Boshen/oxc/assets/1430279/c7308395-1856-43fa-b4b8-b239886ec259) #### New Contributors - [@​anonrig](https://togithub.com/anonrig) made their first contribution in [https://github.com/Boshen/oxc/pull/388](https://togithub.com/Boshen/oxc/pull/388) - [@​kaleidawave](https://togithub.com/kaleidawave) made their first contribution in [https://github.com/Boshen/oxc/pull/413](https://togithub.com/Boshen/oxc/pull/413) **Full Changelog**: https://github.com/Boshen/oxc/compare/v0.0.7... </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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5In0=-->
Work in progress.
Fixes #384