Commit graph

4091 commits

Author SHA1 Message Date
Dunqing
31e4c3b33e fix(isolated-declarations): declare global {} should be kept even if it is not exported (#3956)
close: #3952
2024-06-29 05:07:21 +00:00
Boshen
15ec254740
refactor(semantic): remove the unused Semantic::build2 function 2024-06-28 23:15:12 +08:00
Luca Bruno
750cb43624
fix(oxlint): gate custom allocators by feature flag (#3945)
This tweaks the conditional compilation of custom allocators by wiring
the dedicated Cargo feature flag `allocator` to the source code. It
ensures that allocator gating is directly checking the relevant feature
instead of trying to infer it from the build profile.
2024-06-28 21:34:46 +08:00
DonIsaac
94329e4c66 fix(linter): handle useful but empty constructors in no-useless-constructor (#3951)
Closes #3665
2024-06-28 02:12:20 +00:00
DonIsaac
6498a089ea fix(linter): no-useless-spread fixer with multiple spread elements (#3950)
Closes #3909
2024-06-28 02:06:58 +00:00
Jelle van der Waa
ea30aecb67
Coccinelle labels refactor (#3947)
Follow up of https://github.com/oxc-project/oxc/pull/3946
2024-06-27 19:11:46 -04:00
Jelle van der Waa
1cca2a8d92
refactor(eslint): convert with_labels to with_label where applicable (#3946)
Following earlier work in d6437fec0b prefer `with_label` over
`with_labels`. Automatically converted using CoccinelleForRust.

---

I noticed some conversions of `with_labels` to `with_label` for a single
span in https://github.com/oxc-project/oxc/pull/3854 and in my recent
pull requests. The Linux kernel uses Coccinelle to automatically
converted helper functions, so I was wondering if there was something
similar for Rust as Coccinelle only does C. It turns out that there is a
[Coccinelle for
Rust](https://gitlab.inria.fr/coccinelle/coccinelleforrust), so I wrote
a small Coccinelle rule to automatically convert all rules. (This PR
only touches eslint, I am happy to run it for the whole rules directory,
this is more a test if the project is willing to accept such massive
automatic refactors).

To convert this automatically build the tool, and save the snippet below
as `with_labels.cocci` and run:

```
~/code/coccinelleforrust/target/debug/cfr --apply --coccifile with_labels.cocci  crates/oxc_linter/src/rules/eslint
```

with_labels.cocci:
```
@@
expression E, OxcDiagnostic;
@@

OxcDiagnostic.
- with_labels([E.into()])
+ with_label(E)
```
2024-06-27 15:11:19 -04:00
Boshen
d80ebb16ef
chore: codecov ignore ast generated code 2024-06-27 22:03:01 +08:00
Boshen
4560b59e30
ci: passthrough CI env variable for cross build 2024-06-27 21:11:16 +08:00
github-actions[bot]
4e3e1a39eb
Release crates v0.16.0 (#3930)
## [0.16.0] - 2024-06-26

- 6796891 ast: [**BREAKING**] Rename all instances of `BigintLiteral` to
`BigIntLiteral`. (#3898) (rzvxa)

- 1f85f1a ast: [**BREAKING**] Revert adding `span` field to the
`BindingPattern` type. (#3899) (rzvxa)

- ae09a97 ast: [**BREAKING**] Remove `Modifiers` from ts nodes (#3846)
(Boshen)

- 1af5ed3 ast: [**BREAKING**] Replace `Modifiers` with `declare` and
`const` on `EnumDeclaration` (#3845) (Boshen)

- 0673677 ast: [**BREAKING**] Replace `Modifiers` with `declare` on
`Function` (#3844) (Boshen)

- ee6ec4e ast: [**BREAKING**] Replace `Modifiers` with `declare` and
`abstract` on `Class` (#3841) (Boshen)

- 9b38119 ast: [**BREAKING**] Replace `Modifiers` with `declare` on
`VariableDeclaration` (#3839) (Boshen)

- cfcef24 ast: [**BREAKING**] Add `directives` field to `TSModuleBlock`
(#3830) (Boshen)

- 4456034 ast: [**BREAKING**] Add `IdentifierReference` to
`ExportSpecifier` (#3820) (Boshen)

### Features

- 497769c ast: Add some visitor functions (#3785) (Dunqing)
- 4b06dc7 ast: Add TSType::TSIntrinsicKeyword to is_keyword (#3775)
(Dunqing)
- 5847e16 ast,parser: Add `intrinsic` keyword (#3767) (Boshen)
- 2e026e1 ast_codegen: Generate `ast_kind.rs`. (#3888) (rzvxa)
- 09f4d3c ast_codegen: Add `ImplGetSpanGenerator`. (#3852) (rzvxa)
- 3e78f98 cfg: Add depth first search with hash sets. (#3771) (rzvxa)
- 01da2f7 codegen: Print TSThisParameter for TSCallSignatureDeclaration
and TSMethodSignature (#3792) (Dunqing)
- 2821e0e codegen: Print readonly keyword for TSIndexSignature (#3791)
(Dunqing)
- 97575d8 codegen: Print TSClassImplements and TSThisParameter (#3786)
(Dunqing)
- 5e2baf3 isolated-declarations: Report error for expando functions
(#3872) (Dunqing)
- 2cdb34f isolated-declarations: Support for class function overloads
(#3811) (Dunqing)
- 231b8f0 isolated-declarations: Support for export default function
overloads (#3809) (Dunqing)
- a37138f isolated-declarations: Improve the inference template literal
(#3797) (Dunqing)
- b0d7355 isolated-declarations: Transform const expression correctly
(#3793) (Dunqing)
- b38c34d isolated-declarations: Support inferring
ParenthesizedExpression (#3769) (Dunqing)
- 4134de8 isolated-declarations: Add ts error code to the error message
(#3755) (Dunqing)
- 94202de isolated-declarations: Add `export {}` when needed (#3754)
(Dunqing)
- e95d8e3 isolated-declarations: Shrink span for arrow function that
needs an explicit return type (#3752) (Dunqing)
- df9971d isolated-declarations: Improve inferring the return type from
function (#3750) (Dunqing)
- 4aea2b1 isolated-declarations: Improve inferring the type of accessor
(#3749) (Dunqing)
- 9ea30c4 isolated-declarations: Treat AssignmentPattern as optional
(#3748) (Dunqing)
- dd540c8 minifier: Add skeleton for ReplaceGlobalDefines ast pass
(#3803) (Boshen)
- f3c3970 minifier: Add skeleton for RemoveDeadCode ast pass (#3802)
(Boshen)
- 4fb90eb oxc: Export isolated-declarations (#3765) (Boshen)
- d5f6aeb semantic: Check for illegal symbol modifiers (#3838) (Don
Isaac)
- 01572f0 sourcemap: Impl `std::fmt::Display` for `Error` (#3902)
(DonIsaac)
- 5501d5c transformer/typescript: Transform `import {} from "mod"` to
import `"mod"` (#3866) (Dunqing)
- 2a16ce0 traverse: Disable syntax check and disable build module record
(#3794) (Boshen)- d3cd3ea Oxc transform binding (#3896) (underfin)

### Bug Fixes

- 063cfde ast: Correct JSON serialization of `TSModuleBlock` (#3858)
(overlookmotel)
- 66f404c ast: Fix JSON serialization of `BindingPattern` (#3856)
(overlookmotel)
- 2766594 codegen: Print type parameters for MethodDefinition (#3922)
(Dunqing)
- 27f0531 isolated-declarations: Private constructor reaching
unreachable (#3921) (Dunqing)
- 59ce38b isolated-declarations: Inferring of UnrayExpression
incorrectly (#3920) (Dunqing)
- 58e54f4 isolated-declarations: Report an error for parameters if they
are ObjectPattern or ArrayPattern without an explicit type (#3810)
(Dunqing)
- cb8a272 isolated-declarations: Cannot infer nested `as const` (#3807)
(Dunqing)
- d8ecce5 isolated-declarations: Infer BigInt number as `bigint` type
(#3806) (Dunqing)
- 4e241fc isolated-declarations: Missing `const` after transformed const
enum (#3805) (Dunqing)
- 683c7b0 isolated-declarations: Shouldn’t add declare in declaration
with export default (#3804) (Dunqing)
- 7d47fc3 isolated-declarations: Should stripe async and generator
keyword after transformed (#3790) (Dunqing)
- 8ce794d isolated-declarations: Inferring an incorrect return type when
there is an arrow function inside a function (#3768) (Dunqing)
- d29316a isolated-declarations: Transform incorrectly when there are
multiple functions with the same name (#3753) (Dunqing)
- bf1c250 isolated-declarations: False positives for non-exported
binding elements (#3751) (Dunqing)
- 275349a parser: Parse function type parameter name `accessor` (#3926)
(Boshen)
- ef82c78 parser: Trailing comma is not allowed in
ParenthesizedExpression (#3885) (Dunqing)
- 13754cb parser: Change diagnostic to "modifier cannot be used here"
(#3853) (Boshen)
- 8c9fc63 semantic: Apply strict mode scope flag for strict mode TS
Modules (#3861) (overlookmotel)
- 99a40ce semantic: `export default foo` should have
`ExportLocalName::Default(NameSpan)` entry (#3823) (Boshen)
- 08fcfb3 transformer: Fix spans and scopes in TS enum transform (#3911)
(overlookmotel)
- 17ad8f7 transformer: Create new scopes for new blocks in TS transform
(#3908) (overlookmotel)
- d76f34b transformer: TODO comments for missing scopes (#3837)
(overlookmotel)
- e470731 transformer: TS transform handle when type exports first
(#3833) (overlookmotel)
- d774e54 transformer: TS transform generate do not copy statements
(#3832) (overlookmotel)
- ff1da27 transformer: Correct comment in example (#3831)
(overlookmotel)
- 6dcc3f4 transformer: Fix TS annotation transform scopes (#3816)
(overlookmotel)
- aea3e9a transformer: Correct spans for TS annotations transform
(#3782) (overlookmotel)

### Performance

- 92c21b2 diagnostics: Optimize string-buffer reallocations (#3897)
(Luca Bruno)
- 4bf405d parser: Add a few more inline hints to cursor functions
(#3894) (Boshen)
- 10d1de5 semantic: Remove uneccessary allocation in builder (#3867)
(DonIsaac)- 4f7ff7e Do not pass `&Atom` to functions (#3818)
(overlookmotel)

### Refactor

- 6f26087 ast: Add comment about alternatives to `AstBuilder::copy`
(#3905) (overlookmotel)
- 442aca3 ast: Add comment not to use `AstBuilder::copy` (#3891)
(overlookmotel)
- acf69fa ast: Refactor custom `Serialize` impls (#3859) (overlookmotel)
- 9e148e9 ast: Add line breaks (#3860) (overlookmotel)
- 363d3d5 ast: Add span field to the `BindingPattern` type. (#3855)
(rzvxa)
- a648748 ast: Shorten code in AST builder (#3835) (overlookmotel)
- 1206967 ast: Reduce allocations in AST builder (#3834) (overlookmotel)
- 2f5d50e isolated-declarations: Remove `Modifiers` (#3847) (Boshen)
- 8027b1e minifier: Change prepass to ast_passes::remove_parens (#3801)
(Boshen)
- a471e62 parser: Clean up `try_parse` (#3925) (Boshen)
- 3db2553 parser: Improve parsing of TypeScript type arguments (#3923)
(Boshen)
- 4cf3c76 parser: Improve parsing of TypeScript types (#3903) (Boshen)
- 187f078 parser: Improve parsing of
`parse_function_or_constructor_type` (#3892) (Boshen)
- 97d59fc parser: Move code around for parsing `Modifiers` (#3849)
(Boshen)
- 5ef28b7 transformer: Shorten code (#3912) (overlookmotel)
- d9f268d transformer: Shorten TS transform code (#3836) (overlookmotel)
- 21b0d01 transformer: Pass ref to function (#3781) (overlookmotel)
- 7c44703 transformer: Remove needless `pub` on TS enum transform
methods (#3774) (overlookmotel)
- 22c56d7 transformer: Move TSImportEqualsDeclaration transform code
(#3764) (overlookmotel)
- cd56aa9 transformer: Simplify TS export assignment transform (#3762)
(overlookmotel)
- 512740d transformer: Move and simplify TS enum transform entry point
(#3760) (overlookmotel)
- 1061baa traverse: Separate `#[scope]` attr (#3901) (overlookmotel)
- fcd21a6 traverse: Indicate scope entry point with
`scope(enter_before)` attr (#3882) (overlookmotel)
- 24979c9 traverse: Use camel case props internally (#3880)
(overlookmotel)
- 2045c92 traverse: Improve parsing attrs in traverse codegen (#3879)
(overlookmotel)- d6437fe Clean up some usages of `with_labels` (#3854)
(Boshen)

Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-06-27 20:38:31 +08:00
underfin
9e8709f06e
fix(sourcemap): should add tokens for unordered span (#3941)
close: https://github.com/oxc-project/oxc/issues/3843
2024-06-27 20:24:22 +08:00
Boshen
1d74db7774
ci: fix oxlint build 2024-06-27 15:37:59 +08:00
Boshen
7b5abf647f
ci: fix build 2024-06-27 15:19:38 +08:00
github-actions[bot]
06e4ce4f5d
Release oxlint v0.5.0 (#3940)
## [0.5.0] - 2024-06-27

- 6796891 ast: [**BREAKING**] Rename all instances of `BigintLiteral` to
`BigIntLiteral`. (#3898) (rzvxa)

- ae09a97 ast: [**BREAKING**] Remove `Modifiers` from ts nodes (#3846)
(Boshen)

- 1af5ed3 ast: [**BREAKING**] Replace `Modifiers` with `declare` and
`const` on `EnumDeclaration` (#3845) (Boshen)

- ee6ec4e ast: [**BREAKING**] Replace `Modifiers` with `declare` and
`abstract` on `Class` (#3841) (Boshen)

- 4456034 ast: [**BREAKING**] Add `IdentifierReference` to
`ExportSpecifier` (#3820) (Boshen)

- 0537d29 cfg: [**BREAKING**] Move control flow to its own crate.
(#3728) (rzvxa)

- 5c38a0f codegen: [**BREAKING**] New code gen API (#3740) (Boshen)

- 4bce59d semantic/cfg: [**BREAKING**] Re-export `petgraph` as
`control_flow::graph`. (#3722) (rzvxa)

### Features

- 3ae2628 linter: Change `no-import-assign` to correctness (#3928)
(Boshen)
- a89d501 linter: Implement
@typescript-eslint/no-non-null-asserted-nulli… (#3850) (kaykdm)
- fc48cb4 linter: eslint-plugin-jest/prefer-jest-mocked (#3865)
(cinchen)
- 63b98bd linter: Accept multiple fixes when fix code (#3842)
(mysteryven)
- 328445b linter: Support `vitest/no-disabled-tests` (#3717)
(mysteryven)
- 8c61f9c linter: Implement @typescript-eslint/no-non-null-assertion
(#3825) (kaykdm)
- 080ecbd linter: Add `no-fallthrough`. (#3673) (rzvxa)
- 9493fbe linter: Add `oxc/no-optional-chaining` rule (#3700)
(mysteryven)
- 139adfe linter: Add `@typescript-eslint/no-import-type-side_effects`
(#3699) (mysteryven)
- 5f84500 linter/eslint-plugin-react: Implement prefer-es6-class (#3812)
(Jelle van der Waa)
- fafe67c linter/import: Implement max-dependencies (#3814) (Jelle van
der Waa)
- d5f6aeb semantic: Check for illegal symbol modifiers (#3838) (Don
Isaac)

### Bug Fixes

- 4bd2c88 linter: Fix and promote `getter-return` to correctness.
(#3777) (rzvxa)
- 1190dee linter: False positives with setters in the `getter-return`
rule. (#3714) (rzvxa)
- de0690f linter: Do not run getter-return in typescript (#3693)
(Boshen)
- cf71c23 linter: Edge case with infinite loops. (#3672) (rzvxa)
- 5902331 oxlint: Properly report error (#3889) (Luca Bruno)
- 99a40ce semantic: `export default foo` should have
`ExportLocalName::Default(NameSpan)` entry (#3823) (Boshen)
- abd6ac8 semantic/cfg: Discrete finalization path after `NewFunction`s.
(#3671) (rzvxa)

### Performance
- 4f7ff7e Do not pass `&Atom` to functions (#3818) (overlookmotel)

### Refactor

- 4d2b7f1 linter: `LintContext` can now only be constructed with a cfg
enabled semantic. (#3761) (rzvxa)
- 7302429 linter/prefer_number_properties: Remove the unused
`IdentifierName` check (#3822) (Boshen)
- d8ad321 semantic: Make control flow generation optional. (#3737)
(rzvxa)

### Testing

- 887da40 linter: Enable `no-fallthrough` test with `disable-next-line`.
(#3766) (rzvxa)

Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-06-27 15:09:13 +08:00
Boshen
75592e0d4d
ci: fix reusable_prepare_release version output 2024-06-27 15:08:31 +08:00
Boshen
cd4bd6ec7f
chore(linter): change getter-return to nursery
relates #3935
2024-06-27 14:38:43 +08:00
Boshen
37fceefbbf
chore(linter): change no-fallthrough to pedantic
Because the code is still correct.
2024-06-27 14:37:44 +08:00
Boshen
9f2e09eade
chore: make npm/oxc-transform part of the crates release 2024-06-26 23:13:23 +08:00
Boshen
3ae2628832
feat(linter): change no-import-assign to correctness (#3928)
closes #3733
2024-06-26 22:43:45 +08:00
Jelle van der Waa
5f84500200
feat(linter/eslint-plugin-react): Implement prefer-es6-class (#3812)
Rule Detail:

[link](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/prefer-es6-class.md)

---------

Co-authored-by: Boshen <boshenc@gmail.com>
2024-06-26 22:20:16 +08:00
underfin
bbe8336c7b
feat(napi/transform): add crate-type: "lib" (#3876) 2024-06-26 21:57:53 +08:00
kaykdm
a89d501d51
feat(linter): implement @typescript-eslint/no-non-null-asserted-nulli… (#3850)
…sh-coalescing

Related issue: https://github.com/oxc-project/oxc/issues/2180

original implementation

- code:
https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/rules/no-non-null-asserted-nullish-coalescing.ts
- test:
https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/tests/rules/no-non-null-asserted-nullish-coalescing.test.ts
- doc:
https://typescript-eslint.io/rules/no-non-null-asserted-nullish-coalescing/
2024-06-26 21:57:33 +08:00
underfin
d3cd3ea2de
feat: oxc transform binding (#3896)
closes #3877

---------

Co-authored-by: Boshen <boshenc@gmail.com>
2024-06-26 21:57:19 +08:00
cinchen
fc48cb4560
feat(linter): eslint-plugin-jest/prefer-jest-mocked (#3865)
part of https://github.com/oxc-project/oxc/issues/492

Rule Detail:
[link](https://github.com/jest-community/eslint-plugin-jest/blob/main/src/rules/prefer-jest-mocked.ts)
2024-06-26 21:46:46 +08:00
Boshen
275349a9fe fix(parser): parse function type parameter name accessor (#3926)
fixes #3910
2024-06-26 13:34:24 +00:00
mysteryven
63b98bddd9 feat(linter): accept multiple fixes when fix code (#3842)
Want to add this because of there are bunch of fix codes in [consistent-type-import](e408b93e48/packages/eslint-plugin/src/rules/consistent-type-imports.ts (L610-L945)) are not easy to port.
2024-06-26 13:29:22 +00:00
Boshen
a471e62e2d refactor(parser): clean up try_parse (#3925) 2024-06-26 11:18:02 +00:00
Dunqing
253410017f
chore(ci): auto label for oxc_isolated_declarations (#3924) 2024-06-26 19:13:51 +08:00
Dunqing
27665945f1 fix(codegen): print type parameters for MethodDefinition (#3922)
close: #3918
2024-06-26 07:21:42 +00:00
Dunqing
27f0531aac fix(isolated-declarations): private constructor reaching unreachable (#3921)
fix: #3917
2024-06-26 07:21:38 +00:00
Dunqing
59ce38bb85 fix(isolated-declarations): inferring of UnrayExpression incorrectly (#3920)
close: #3914
2024-06-26 07:21:35 +00:00
Boshen
3db2553dc2 refactor(parser): improve parsing of TypeScript type arguments (#3923) 2024-06-26 07:16:18 +00:00
Boshen
4cf3c7645f refactor(parser): improve parsing of TypeScript types (#3903)
- [x] fix everything
2024-06-26 05:58:16 +00:00
overlookmotel
1061baabbf refactor(traverse): separate #[scope] attr (#3901)
Separate out attributes which communicate info to codegen related to scopes into `#[scope]` attr.

Before:

```rs
#[visited_node(scope(ScopeFlags::empty()))]
pub struct BlockStatement<'a> { /* ... */ }
```

After:

```rs
#[visited_node]
#[scope]
pub struct BlockStatement<'a> { /* ... */ }
```

I think this is clearer.
2024-06-26 05:43:10 +00:00
overlookmotel
5ef28b7375 refactor(transformer): shorten code (#3912)
Abbreviate `self.ctx.ast` to just `ast` to shorten code.
2024-06-26 05:16:07 +00:00
overlookmotel
08fcfb3c2f fix(transformer): fix spans and scopes in TS enum transform (#3911)
Fix scope and spans in TS `enum` transform.

Incomplete - not yet fixed either scopes or spans for the interior of the function which TS `enum` is transformed into, only what's outside the function.
2024-06-26 05:16:05 +00:00
overlookmotel
17ad8f7d93 fix(transformer): create new scopes for new blocks in TS transform (#3908)
Create scopes for new `BlockStatement`s inserted in TS transform, and update scope tree.
2024-06-26 05:16:02 +00:00
DonIsaac
01572f037d feat(sourcemap): impl std::fmt::Display for Error (#3902) 2024-06-26 05:10:48 +00:00
camc314
77a4a0b77c feat(minifier) minify conditional expressions (#3907) 2024-06-26 05:06:53 +00:00
overlookmotel
6f260871d7 refactor(ast): add comment about alternatives to AstBuilder::copy (#3905)
Expand on comment added in #3891.
2024-06-25 18:45:06 +00:00
Jelle van der Waa
fafe67c817
feat(linter/import): Implement max-dependencies (#3814)
Rule Detail:

[link](https://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/max-dependencies.md)

---

This lacks the handling of `require()` which seems to be the case for
most existing `import` rules.

Another "issue" could be if you have:
```
import { foo } from "./foo";
import { bar } from "./foo";
```

But then again there should be another rule to filter these duplicate
imports out and combine them into one.

Co-authored-by: Don Isaac <donald.isaac@gmail.com>
2024-06-25 13:18:01 -04:00
rzvxa
2e026e1b7f feat(ast_codegen): generate ast_kind.rs. (#3888)
[List of 68 blacklisted items](https://github.com/oxc-project/oxc/pull/3888/files#diff-59cbea4a1444e752992821d3429a5f27bf1027a530977d075ec89aa55995912aR11)
2024-06-25 15:47:04 +00:00
rzvxa
6796891e2e fix(ast)!: rename all instances of BigintLiteral to BigIntLiteral. (#3898)
Notice the casing! Just for the sake of consistency.
2024-06-25 14:39:42 +00:00
rzvxa
09f4d3c4d3 feat(ast_codegen): add ImplGetSpanGenerator. (#3852)
This one is ready to replace the handwritten module.
2024-06-25 14:39:39 +00:00
rzvxa
f6c4ec44ca feat(tasks/ast_codegen): prototype for codegen AST related code (#3815)
Part of https://github.com/oxc-project/oxc/issues/3819
2024-06-25 13:54:50 +00:00
Luca Bruno
92c21b266e
perf(diagnostics): optimize string-buffer reallocations (#3897)
This improves `GraphicalReportHandler` logic by using a string-buffer
with a capacity hint. That avoids growing the buffer from zero each
time, saving a bunch of reallocations.
2024-06-25 17:55:53 +08:00
rzvxa
1f85f1a5f7 refactor(ast)!: revert adding span field to the BindingPattern type. (#3899)
Since this is a temporary solution in the time that we are waiting for the `#[span]` hint, And there are already other workarounds used in our `ast_codegen` I propose removing it right away - sorry in my opinion adding it in the first place was a mistake - in favor of adding an edge case in the codegen. It is better to do the refactoring in the codegen instead of the production code which people may depend on.
2024-06-25 09:43:48 +00:00
Boshen
4bf405ddfc perf(parser): add a few more inline hints to cursor functions (#3894) 2024-06-25 06:00:46 +00:00
Boshen
187f0782c1 refactor(parser): improve parsing of parse_function_or_constructor_type (#3892)
part of #3502
2024-06-25 03:43:02 +00:00
overlookmotel
442aca3ba8
refactor(ast): add comment not to use AstBuilder::copy (#3891)
As discussed in #3483, `AstBuilder::copy` is unsound. It's going to be a
hard slog removing all uses of it. This PR adds a comment to please not
introduce any further usages of it in meantime.
2024-06-25 09:12:43 +08:00