Alexander S.
cdd1a91754
fix(linter): typescript/no-magic-numbers: remove double minus for reporting negative bigint numbers ( #5565 )
...
@DonIsaac small bug I found after 10x review
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-09-07 11:48:24 +08:00
Don Isaac
0ac420d6f9
refactor(linter): use meaningful names for diagnostic parameters ( #5564 )
...
Also add `pending` fix labels to many rules.
2024-09-06 18:14:56 -04:00
Alexander S.
be3a432106
feat(linter): implement typescript/no-magic-numbers ( #4745 )
...
Linter rule: https://eslint.org/docs/latest/rules/no-magic-numbers
and: https://typescript-eslint.io/rules/no-magic-numbers/
---------
Co-authored-by: Don Isaac <donald.isaac@gmail.com>
2024-09-06 20:52:13 +01:00
DonIsaac
af69393a1c
test(linter/no-useless-spread): ensure spreads on identifiers pass ( #5561 )
...
Closes #5405
2024-09-06 19:03:16 +00:00
overlookmotel
ce71982567
refactor(transformer): shorten code in JSX transform ( #5554 )
...
Pure refactor. Just shorten code.
2024-09-06 18:15:58 +00:00
Boshen
28b934ca74
fix(coverage): apply always_strict to test262 and typescript per the specifcation ( #5555 )
...
This also removes the confusing `SourceType::always_strict` field.
I hacked it with `SourceType::always_strict`, but what we actually want is add `'use strict'`.
This is technically a breaking change but I don't expect anyone using this outside of oxc.
The snapshot has a large diff due to every single line shifting by 1 row :-/
2024-09-06 17:14:01 +00:00
Boshen
b06052501a
refactor(semantic)!: remove source_type argument from SemanticBuilder::new ( #5553 )
...
Realized we can get the source type from the AST.
The next PR will introduce `unambiguous` to `SourceType` and directly set `Program::source_type` to either `script` or `module`.
2024-09-06 16:40:10 +00:00
Boshen
d62defb42d
fix(codegen): do not print trailing commas for ArrayExpression ( #5551 )
...
closes #5532
2024-09-06 16:35:10 +00:00
leaysgur
dec139529d
refactor(regular_expression): Align diagnostics ( #5543 )
...
Manage all diagnostics for LiteralParser, FlagsParser, PatternParser in one place, same message format.
2024-09-06 16:28:06 +00:00
DonIsaac
81a394d11d
refactor(linter): deduplicate code in oxc/no-async-await ( #5549 )
2024-09-06 14:56:30 +00:00
mysteryven
c8ab353a68
fix(linter/tree-shaking): align JSXMemberExpression's report ( #5548 )
...
Follow up #5450 .
[eslint-plugin-tree-shaking](463fa1f0be/src/rules/no-side-effects-in-initialization.ts (L673-L677) ) just report on `JSXMemberExpression.property`

2024-09-06 14:43:40 +00:00
overlookmotel
14ee086182
refactor(ast): inline AstKind::as_* methods ( #5547 )
...
One would hope compiler will inline these trivial methods anyway, but mark them `#[inline]` to make sure.
2024-09-06 14:31:17 +00:00
overlookmotel
fefbbc1a5e
docs(sourcemap): add trailing newline to README ( #5539 )
...
For consistency with our `.editorconfig`.
2024-09-06 15:24:52 +01:00
Jelle van der Waa
09aa86dcbe
feat(linter/eslint): implement sort-vars rule ( #5430 )
2024-09-06 09:49:46 -04:00
overlookmotel
dc924892cc
test: add trailing line breaks to conformance fixtures ( #5541 )
...
Continuation of #5537 . Ensure all conformance fixture files have a trailing line break.
2024-09-06 12:55:17 +00:00
overlookmotel
d8b29e752a
style: add trailing line breaks to JSON files ( #5544 )
...
For consistency with our `.editorconfig`.
2024-09-06 12:50:15 +00:00
overlookmotel
694f032a3d
style: add trailing line breaks to package.json files ( #5542 )
...
For consistency with our `.editorconfig`.
2024-09-06 12:43:44 +00:00
Edwin Lim
2ec2f7d829
feat(linter/eslint): implement no-alert ( #5535 )
...
Contributing to #479 !
Rule Details: [link](https://eslint.org/docs/latest/rules/no-alert )
Am new to the internals of parsers and linters so I kept the
implementation similar to ESLint's source code
Commented out the `globalThis` test cases in the pass array meant for
pre-ES2020 before `globalThis` was introduced, having clarified in the
Discord that it's ok to treat the built-in `globalThis` as always
present.
---------
Co-authored-by: Don Isaac <donald.isaac@gmail.com>
2024-09-06 08:40:20 -04:00
overlookmotel
7414ff89b6
style(editors): add trailing newline to .prettierignore ( #5540 )
...
For consistency with our `.editorconfig`.
2024-09-06 12:23:15 +00:00
overlookmotel
87a79d9cd0
test(transformer): add trailing line breaks to conformance fixtures ( #5537 )
...
Currently whether conformance fixture files have trailing line breaks is inconsistent - some have them, some don't. Make all of them have a trailing line break.
2024-09-06 12:02:46 +00:00
overlookmotel
e18c2edfcb
test(transformer): move RegExp transform conformance tests ( #5536 )
...
Rename transform conformance RegExp test fixtures folder from "esbuild-tests" to "regexp", to reflect that not all these tests are copied from ESBuild.
2024-09-06 12:02:45 +00:00
overlookmotel
9282647e6c
docs(transformer): comment on RegExp transform for potential improvement ( #5514 )
...
I think it's correct that we could do better here. Or is there some difference in behavior between `RegExp(...)` and `new RegExp(...)`?
2024-09-06 12:02:44 +00:00
overlookmotel
758a10c515
refactor(transformer): RegExp transform reuse var ( #5527 )
...
Nit. Use local `flags` var instead of `regexp.regex.flags`.
2024-09-06 12:02:44 +00:00
overlookmotel
9b7ecc7ee7
fix(transformer): RegExp transform only set span on final expression ( #5508 )
2024-09-06 12:02:43 +00:00
Boshen
bb9d9d1481
feat(oxc): raise MSRV to v1.76.0 (Minimum Supported Rust Version)
2024-09-06 20:00:34 +08:00
overlookmotel
fad0a0548b
refactor(transformer): RegExp transform unbox early ( #5504 )
...
Unbox the `RegExpLiteral` early to avoid all lookups thereafter going through the indirection of a `Box`.
2024-09-06 11:51:38 +00:00
overlookmotel
d1ece197c4
fix(transformer): RegExp transform handle Term::Quantifier ( #5501 )
...
`Term::Quantifier` contains a nested `Term` so we need to recurse into that `Term` to check if it contains any unsupported syntax.
2024-09-06 11:51:35 +00:00
Boshen
0c43d0cf8d
build: fix wasm publish
2024-09-06 19:39:13 +08:00
dalaoshu
a540215c91
docs(linter): update docs Examples for linter rules ( #5513 )
2024-09-06 07:23:06 -04:00
Boshen
c35fd0c50d
chore: link editors/vscode/LICENSE to root LICENSE
2024-09-06 19:19:17 +08:00
Boshen
ff4ce21852
chore: rm editors/vscode/LICENSE
2024-09-06 19:19:17 +08:00
oxc-bot
64eb2cccb7
release: crates v0.27.0 ( #5538 )
...
## [0.27.0] - 2024-09-06
- bd820f9 semantic: [**BREAKING**] Remove
`SymbolTable::get_symbol_id_from_name` and
`SymbolTable::get_scope_id_from_name` (#5480 ) (overlookmotel)
- cba93f5 ast: [**BREAKING**] Add `ThisExpression` variants to
`JSXElementName` and `JSXMemberExpressionObject` (#5466 ) (overlookmotel)
- 87c5df2 ast: [**BREAKING**] Rename `Expression::without_parentheses`
(#5448 ) (overlookmotel)
### Features
- e8bdd12 allocator: Add `AsMut` impl for `Box` (#5515 ) (overlookmotel)
- 90facd3 ast: Add `ContentHash` trait; remove noop `Hash`
implementation from `Span` (#5451 ) (rzvxa)
- 23285f4 ast: Add `ContentEq` trait. (#5427 ) (rzvxa)
- 59abf27 ast, parser: Add `oxc_regular_expression` types to the parser
and AST. (#5256 ) (rzvxa)
- 68a1c01 ast_tools: Add dedicated `Derive` trait. (#5278 ) (rzvxa)
- c782916 codegen: Print `type_parameters` in `TaggedTemplateExpression`
(#5438 ) (Dunqing)
- 4cb63fe index: Impl rayon related to trait for IndexVec (#5421 )
(IWANABETHATGUY)
- ba4b68c minifier: Remove parenthesized expression for dce (#5439 )
(Boshen)
- ed8ab6d oxc: Conditional expose `oxc_cfg` in `oxc` crate (#5524 )
(IWANABETHATGUY)
- 91b39c4 oxc_diagnostic: Impl DerefMut for OxcDiagnostic (#5474 )
(IWANABETHATGUY)
- 10279f5 parser: Add syntax error for hyphen in `JSXMemberExpression`
`<Foo.bar-baz />` (#5440 ) (Boshen)
- 0f50b1e semantic: Check for initializers in ambient
`VariableDeclaration`s (#5463 ) (DonIsaac)
- 62f7fff semantic: Check for non-declared, non-abstract object
accessors without bodies (#5461 ) (DonIsaac)
- 5407143 semantic: Check for non-declared, non-abstract class accessors
without bodies (#5460 ) (DonIsaac)
- 052e94c semantic: Check for parameter properties in constructor
overloads (#5459 ) (DonIsaac)
- 32d4bbb transformer: Add `TransformOptions::enable_all` method (#5495 )
(Boshen)
- c59d8b3 transformer: Support all /regex/ to `new RegExp` transforms
(#5387 ) (Dunqing)
- cedf7a4 xtask: Impl `as_ast_kind` method for each variant (#5491 )
(IWANABETHATGUY)
### Bug Fixes
- 0df1d9d ast, codegen, linter: Panics in fixers. (#5431 ) (rzvxa)
- fce549e diagnostics: Ignore `Interrupted` and `BrokenPipe` errors
while printing (#5526 ) (Boshen)
- ea7a52f napi/transform: Fix test (Boshen)
- 9b984b3 regex: Panic on displaying surrogated `UnicodeEscape`
characters. (#5469 ) (rzvxa)
- 88b7ddb regular_expression: Handle unterminated character class
(#5523 ) (leaysgur)
- 7a797ac semantic: Incorrect reference when `MemberExpression` used in
`TSPropertySignature` (#5525 ) (Dunqing)
- d8b9909 semantic: `IdentifierReference` within `TSPropertySignature`
cannot reference type-only import binding (#5441 ) (Dunqing)
- 8f9627d transformer: RegExp transform do not transform invalid regexps
(#5494 ) (overlookmotel)
- 2060efc transformer: RegExp transform don't transform all RegExps
(#5486 ) (overlookmotel)
- cfe5497 transformer: Do not create double reference in JSX transform
(#5414 ) (overlookmotel)
- 0617249 transformer/nullish-coalescing-operator: Incorrect reference
flags (#5408 ) (Dunqing)
- 0eb32a6 traverse: Invalid variable name generated by
`generate_uid_based_on_node` (#5407 ) (Dunqing)- b96bea4 Add back
lifetime (#5507 ) (IWANABETHATGUY)
### Performance
- bfabd8f syntax: Further optimize `is_identifier_name` (#5426 )
(overlookmotel)
- aeda84f syntax: Optimize `is_identifier_name` (#5425 ) (overlookmotel)
- ed8937e transformer: Memoize rope instance (#5518 ) (Dunqing)
- bfab091 transformer: Store needed options only on `RegExp` (#5484 )
(overlookmotel)
- b4765af transformer: Pre-calculate if unsupported patterns in RegExp
transform (#5483 ) (overlookmotel)
- 182ab91 transformer: Pre-calculate unsupported flags in RegExp
transform (#5482 ) (overlookmotel)
### Documentation
- 64db1b4 ast: Clarify docs for `RegExpPattern` (#5497 ) (overlookmotel)
- 3f204a9 span: Update docs about `ContentEq` `Vec` comparison speed
(#5478 ) (overlookmotel)- 00511fd Use `oxc_index` instead of `index_vec`
in doc comments (#5423 ) (IWANABETHATGUY)
### Refactor
- 9f6e0ed ast: Simplify `ContentEq` trait definition. (#5468 ) (rzvxa)
- a43e951 ast: Use loop instead of recursion (#5447 ) (overlookmotel)
- 2224cc4 ast: Renumber `JSXMemberExpressionObject` discriminants
(#5464 ) (overlookmotel)
- a952c47 ast: Use loop not recursion (#5449 ) (overlookmotel)
- d9d7e7c ast: Remove `IdentifierName` from `TSThisParameter` (#5327 )
(overlookmotel)
- ccc8a27 ast, ast_tools: Use full method path for generated derives
trait calls. (#5462 ) (rzvxa)
- fdb8857 linter: Use "parsed pattern" in `no_div_regex` rule. (#5417 )
(rzvxa)
- e7bd49d regular_expression: Correct typo (#5429 ) (overlookmotel)
- e4ed41d semantic: Change the reference flag to `ReferenceFlags::Type`
if it is used within a `TSTypeQuery` (#5444 ) (Dunqing)
- 94a6ac6 span: Use `Hasher` from `std` (#5476 ) (overlookmotel)
- b47aca0 syntax: Use `generate_derive` for `CloneIn` in types outside
of `oxc_ast` crate. (#5280 ) (rzvxa)
- a96866d transformer: Re-order imports (#5499 ) (overlookmotel)
- 6abde0a transformer: Clarify match in RegExp transform (#5498 )
(overlookmotel)
- 09c522a transformer: RegExp transform report pattern parsing errors
(#5496 ) (overlookmotel)
- dd19823 transformer: RegExp transform do not take ownership of
`Pattern` then reallocate it (#5492 ) (overlookmotel)
- 2514cc9 transformer/react: Move all entry points to implementation of
Traverse trait (#5473 ) (Dunqing)
- c984219 transformer/typescript: Move all entry points to
implementation of Traverse trait (#5422 ) (Dunqing)
### Styling
- 2a43fa4 linter: Introduce the writing style from PR #5491 and reduce
the if nesting (#5512 ) (dalaoshu)
### Testing
- 340b535 linter/no-unused-vars: Arrow functions in tagged templates
(#5510 ) (Don Isaac)
Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2024-09-06 19:06:29 +08:00
Boshen
f95d35eca7
chore: format Cross.toml
2024-09-06 18:51:08 +08:00
Valentinas Janeiko
80d80b70c0
ci: Passthrough OXC_VERSION and JEMALLOC_SYS_WITH_LG_PAGE to build container ( #5531 )
...
Fixes:
- https://github.com/oxc-project/oxc/issues/4891
Currently only Mac OS and Windows versions return correct version. Linux
versions still returns `dev`. This is caused by Mac OS and Windows
building on the host
([logs](https://github.com/oxc-project/oxc/actions/runs/10667173657/job/29564299213#step:6:16 )),
while Linux is building inside a container. Container builds do not have
access to host env variables by default.
2024-09-06 18:30:26 +08:00
Cam McHenry
ff88c1fc07
fix(linter): Don't mark binding rest elements as unused in TS function overloads ( #5470 )
...
- Fixes https://github.com/oxc-project/oxc/issues/5406
This implements a fix for the `BindingRestElement` symbol, which is
currently unhandled and gets automatically marked as unused. If we
happen to find that it is a child of declaration, then we will
automatically allow the binding rest element.
The code for this was based on what we currently do in
`is_allowed_param_because_of_method`:
5187f384cb/crates/oxc_linter/src/rules/eslint/no_unused_vars/allowed.rs (L258)
I opted not to refactor this to re-use the same code though, as I think
the duplication is still incidental and the implementations could
diverge in the future.
2024-09-06 08:30:28 +01:00
Boshen
fce549e648
fix(diagnostics): ignore Interrupted and BrokenPipe errors while printing ( #5526 )
...
closes #5452
2024-09-06 06:38:47 +00:00
Dunqing
7a797ac635
fix(semantic): incorrect reference when MemberExpression used in TSPropertySignature ( #5525 )
...
close: https://github.com/oxc-project/oxc/issues/5435#issuecomment-2333032168
2024-09-06 06:24:45 +00:00
rzvxa
b4f75967bd
refactor(ast_tools): add some minimal logging. ( #5519 )
2024-09-06 06:19:50 +00:00
Dunqing
ed8937e978
perf(transformer): memoize rope instance ( #5518 )
...
Currently only used in `jsx-source`, so memorize rope in JSXSource enough for now.
close : #5500
2024-09-06 06:08:49 +00:00
IWANABETHATGUY
ed8ab6d7c8
feat(oxc): conditional expose oxc_cfg in oxc crate ( #5524 )
...
This is useful when the downside user wants to use `oxc_cfg`, and easy
to reuse `petgraph` in `oxc_cfg`
2024-09-06 14:07:43 +08:00
Boshen
1bed5ce2a5
chore: run cargo +nightly fmt to sort imports ( #5503 )
...
They are never going to be stable are they ... cedf7a4daa/.rustfmt.toml (L8-L16)
2024-09-06 04:04:26 +00:00
Boshen
32d4bbb519
feat(transformer): add TransformOptions::enable_all method ( #5495 )
...
Make it **really** explicit about which transformer options are being
turned on. I also need this in monitor-oxc.
2024-09-06 12:04:06 +08:00
leaysgur
88b7ddb7e0
fix(regular_expression): Handle unterminated character class ( #5523 )
...
`/[/` is reported by `debug_assert!`, but should not.
2024-09-06 03:28:33 +00:00
rzvxa
10e8984d93
ci: fix paths in the .generated_ast_watch_list.yml. ( #5520 )
2024-09-06 03:23:26 +00:00
dalaoshu
2a43fa4efd
style(linter): introduce the writing style from PR #5491 and reduce the if nesting ( #5512 )
...
Related to #5491
2024-09-06 11:19:48 +08:00
Boshen
c3cfbfb480
chore: clippy::allow_attributes ( #5521 )
...
https://blog.rust-lang.org/2024/09/05/Rust-1.81.0.html#expectlint
https://rust-lang.github.io/rust-clippy/master/index.html#/allow_attributes
2024-09-06 03:07:02 +00:00
Cam McHenry
088733b3c8
fix(linter): handle loops in getter-return rule ( #5517 )
...
- Fixes https://github.com/oxc-project/oxc/issues/3935
Prior to this, it didn't seem like we were correctly continuing to
search the graph after we encountered a backedge (loop). Now, when
encountering a cycle, we will not automatically break or prune the
search.
2024-09-06 06:29:04 +03:30
overlookmotel
e8bdd12438
feat(allocator): add AsMut impl for Box ( #5515 )
2024-09-05 23:52:56 +00:00
Don Isaac
340b535715
test(linter/no-unused-vars): arrow functions in tagged templates ( #5510 )
...
Closes #5391
2024-09-05 14:55:39 -04:00
IWANABETHATGUY
b96bea4f0d
fix: add back lifetime ( #5507 )
...
closed #5506
2024-09-05 17:47:58 +00:00