Boshen
2f5afff9bd
fix(parser): fix crash on TSTemplateLiteralType in function return position ( #2089 )
...
```
interface Helpers {
inspect(): `~~~~\n${string}\n~~~~`;
}
```
2024-01-19 23:14:05 +08:00
Boshen
4706765d2a
refactor(parser): reduce Token size from 32 to 16 bytes ( #1962 )
...
Part of #1880
`Token` size is reduced from 32 to 16 bytes by changing the previous
token value `Option<&'a str>` to a u32 index handle.
It would be nice if this handle is eliminated entirely because
the normal case for a string is always
`&source_text[token.span.start.token.span.end]`
Unfortunately, JavaScript allows escaped characters to appear in
identifiers, strings and templates. These strings need to be unescaped
for equality checks, i.e. `"\a" === "a"`.
This leads us to adding a `escaped_strings[]` vec for storing these
unescaped and allocated
strings.
Performance regression for adding this vec should be minimal because
escaped strings are rare.
Background Reading:
* https://floooh.github.io/2018/06/17/handles-vs-pointers.html
2024-01-09 15:17:02 +08:00
IWANABETHATGUY
4bbc977971
chore: upgrade rustc toolchain to stable 1.75.0 ( #1853 )
...
ref:
https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html
2023-12-29 12:20:51 +08:00
magic-akari
5b2696b711
refactor(parser): report this parameter error ( #1788 )
...
- follow up: #1728
2023-12-23 22:09:14 +08:00
magic-akari
a2858ed452
refactor(ast): introduce ThisParameter ( #1728 )
...
Most TypeScript types can be eliminated during the code generation phase
by not printing the corresponding AST nodes.
The changes in this PR enable applying a similar technique to the `this`
parameter.
2023-12-19 13:20:33 +08:00
Boshen
19e77b0af3
fix(parser): false postive for "Missing initializer in const declaration" in declare + namespace ( #1724 )
...
closes #1723
2023-12-18 17:03:42 +08:00
magic-akari
a7e0706dbc
fix(parser): correct import_kind of TSImportEqualsDeclaration ( #1449 )
2023-11-20 16:57:38 +08:00
Boshen
47872200e5
refactor(ast): clean up some methods
2023-10-15 10:49:35 +08:00
IWANABETHATGUY
266253c142
fix: ts parsing error ( #940 )
...
Fixed https://github.com/web-infra-dev/oxc/issues/932
2023-09-29 22:02:56 +13:00
Boshen
70189f9758
refactor(ast): change the arguments order for some new functions
2023-09-16 16:07:52 +08:00
EliLichtblau
6a9d57061c
TSTypeName change identifer name to identifier reference ( #804 )
...
When initially written types were not in the symbol table. Now that
types are in the symbol table it makes sense given
```ts
type A = 1
type B = A
```
that you can get to the symbol id for for A from type B = A.
Please correct me if I'm wrong about how I implemented this. I also
verified that occurrence (I believe this is the correct word) behaves
how I would expect.
```ts
type RecursiveType = string | {[x: string]: RecursiveType}
```
Does populate a reference.
---------
Co-authored-by: Boshen <boshenc@gmail.com>
2023-08-28 11:42:21 +08:00
Boshen
12798e075f
refactor: improve code coverage a little bit
2023-08-25 23:07:14 +08:00
Yunfei He
e7c2313817
feat(ast): add SymbolId and ReferenceId ( #755 )
...
Closes #510
2023-08-19 18:09:47 +08:00
Boshen
e25f6e2dd4
chore(rust): rust cargo fmt and fix clippy warnings
2023-07-04 15:41:30 +08:00
Boshen
925cee20c1
feat(parser): parse TypeScript this function parameter ( #464 )
2023-06-20 21:56:28 +08:00
Boshen
1ed8df2d83
feat(parser): parse const type parameter from TypeScript v5.0 ( #416 )
2023-06-08 22:26:35 +08:00
Boshen
ad33954f52
refactor(ast): remove redundant prefix field from UnaryExpression
2023-05-22 22:32:47 +08:00
Boshen
ad2835f11b
chore(rustfmt): run cargo fmt
2023-05-21 11:52:26 +08:00
Boshen
2812591e4a
chore(rust): allow clippy::new_without_default
2023-05-13 15:07:00 +08:00
Boshen
14720e7c69
refactor: move SourceType from oxc_ast to oxc_span ( #351 )
...
related #350
2023-05-12 23:16:14 +08:00
Boshen
65a445f512
refactor: move operator to oxc_syntax ( #341 )
2023-05-08 15:35:01 +08:00
Boshen
99fdaad03a
chore(rust): bump bitflags to v2
2023-05-04 12:24:47 +08:00
Boshen
cd276c2850
feat: add oxc_span crate ( #323 )
2023-04-27 21:51:15 +08:00
Boshen
f79f0eb631
refactor(oxc_ast): change SourceType::with_ methods to return Self
2023-04-16 21:32:00 +08:00
Boshen
ca0e80691c
refactor(oxc_parser): remove unused re_lex_as_typescript_r_angle
2023-04-16 12:15:49 +08:00
Boshen
96ad67db92
fix(parser): clean up type arguments parsing ( #242 )
...
closes #169
2023-04-02 12:06:52 +08:00
Boshen
b11f774c41
refactor(oxc_parser): clean up doc
2023-04-01 19:03:33 +08:00
Boshen
d917348f9b
refactor(ast,parser): move parsing context from ast to parser
2023-04-01 18:01:33 +08:00
Boshen
f2fcbb30c3
refactor(oxc_parser): removed not needed generic from unexpected function
2023-04-01 15:59:42 +08:00
yangchenye
929b0efebb
feat(linter): implement isolated_declaration ( #209 )
...
* feat(linter): implement isolated_declaration
* Implement check for class elements
* Set up Export SymbolFlag and store declaration AST in Symbol
* Fix tests and comments
2023-03-26 04:37:10 -07:00
yangchenye
4549fb3cdd
fix(parser): parse decorator with separate grammar ( #192 )
2023-03-19 11:35:59 +08:00
Boshen
f36e3301fd
refactor(lexer): change TokenValue::String(Atom) to TokenValue::String(&str) ( #174 )
2023-03-13 09:33:44 +08:00
Boshen
c2f760f1ed
chore: run `types -w" to fix all typos
2023-03-11 23:37:19 +08:00
Boshen
a5f00e8e1c
refactor(oxc_ast): remove unnecessary SourceTypeBuilder
2023-03-11 16:21:14 +08:00
Boshen
2ee0b40656
chore: fix clippy warnings
2023-03-10 11:09:44 -08:00
Boshen
4d32bfb55e
refactor: remove all declarations of const fn, which is useless for us
2023-03-07 21:29:47 +08:00
Boshen
c8e968f35d
perf(ast): shrink some struct sizes
...
relates #138
2023-03-06 06:29:18 -08:00
Ye Yangchen
b06ab627bf
fix(oxc_parser) correct span for decorators
2023-03-02 21:34:24 -08:00
Shannon Rothe
6647752e03
refactor(ast): change Option<Vec> to Vec for decorators ( #84 )
...
* remove `Option<Vec>` from `FormalParameter`
* `unwrap` -> `unwrap_or_else`
* prefer `AstBuilder` helper
* implement `consume_decorators`
2023-03-02 15:52:46 +08:00
Ye Yangchen
d8c6caf57f
feat(oxc_parser): Parse modifiers before declaration
2023-03-01 22:50:23 -08:00
Ye Yangchen
0bf8f817f5
feat(oxc_parser): Port isStartOfDeclaration form tsc
2023-02-27 12:27:44 +08:00
Boshen
4f4a9802b7
refactor(diagnostics,parser): move diagnostics to parser
2023-02-22 19:23:01 +08:00
Boshen
4c6407b152
refactor(ast): s/node/span
...
This corrects the jargon for span. The term `node` came from `estree`,
which is a bit misleading here in Rust.
closes #9
2023-02-21 19:17:49 +08:00
Boshen
a733856536
refactor(ast,parser): use u32 for node spans
...
The next PR will fix the jargon where Node = Span.
relates to #9
2023-02-21 16:02:23 +08:00
Boshen
0bbbc7768f
perf(oxc_parser): use u8 for offset
2023-02-21 13:11:58 +08:00
Boshen
1fdc635638
feat(parser): add parser
2023-02-11 05:26:49 -08:00