oxc/tasks
overlookmotel d4371e8f95
fix(transformer): use UIDs in TS namespace transforms (#3395)
Use the `TraverseCtx::generate_uid` method introduced in #3395 to fix
some of the TS namespace test cases.

But... I honestly have no idea what I'm doing here!

I am running up against a combination of 3 different areas where I know
very little:

1. I am unfamiliar with `Semantic`.
2. I am unfamiliar with Oxc's conventions for writing transforms.
3. I don't "speak" Typescript!

This PR should not be merged as is. I'm pretty sure it's wrong. I've
done it mostly just to test out `generate_uid`.

In particular:

1. Is `SymbolFlags::FunctionScopedVariable` the right flags to use in
all cases here?
2. `generate_uid` creates a symbol, and registers a binding for it in
the scope tree. So if there are any branches in this logic where `name`
doesn't actually get used after `generate_uid` is called, then it's not
right.
3. Identifiers which are added to AST should also have corresponding
`ReferenceId`s created for them (but I imagine this is also missing in
many other places in the transformer).

On point 2: We could split up `generate_uid` into 2 functions. One
function would find a valid UID name *but not register a binding for
it*. If you want to actually use that name, you'd call a 2nd function to
generate the binding. Would that be a better API?

Could someone help me out to progress this please?

(Sorry my lack of knowledge is a bit useless here. I will learn all
these things in time, but just trying to be honest about where I'm at
right now. I'm sure I could figure it out myself, but it would take me
hours, whereas others will probably look at it and know what to do in
about 5 mins.)
2024-05-27 08:53:13 +08:00
..
benchmark chore(deps): lock file maintenance npm packages (#3421) 2024-05-26 18:29:48 +00:00
common chore: update toml format 2024-05-21 22:15:47 +08:00
coverage fix(parser): fix lexer error while parsing parenthesized arrow expressions (#3400) 2024-05-24 09:59:17 +00:00
javascript_globals chore: update Cargo.toml and deny.yaml 2024-03-05 16:31:05 +08:00
lint_rules refactor(linter): merge deepscan rules into oxc rules (#3327) 2024-05-17 11:56:06 +00:00
minsize chore(minsize): remove brotlic because it takes too long to compile (#2954) 2024-04-13 13:24:25 +08:00
prettier_conformance refactor: compile less test binaries to speed up CI (#3414) 2024-05-26 07:21:44 +00:00
rulegen feat(rulegen): preserve languageOptions as a comment (#3410) 2024-05-25 15:44:24 +00:00
transform_conformance fix(transformer): use UIDs in TS namespace transforms (#3395) 2024-05-27 08:53:13 +08:00
website fix(website): hack schemars to render code snippet in markdown (#3417) 2024-05-26 10:36:53 +00:00
libs.txt refactor(benchmark): use more complicated files (#1811) 2023-12-25 17:27:02 +08:00