fix(transformer): correct symbol flags for lowered enums (#24269)

Closes #24226 — the first commit is @camc314's fix from there.

Lowered enums kept their `RegularEnum`/`ConstEnum` symbol flags, so the flags no longer matched the emitted JavaScript:

- Top-level enums become `var` → `FunctionScopedVariable`.
- Exported and nested enums become `let` → `BlockScopedVariable`.
- Merged enums lowered to an assignment only lose their enum bits.

This removes over 1,000 stale symbol-flag mismatches from the snapshots.

Unlike #24226 there is no pending state: enum member inlining now identifies enums through `EnumData` (#24268) instead of `SymbolFlags`, so the flags can be updated right when the enum is lowered.
This commit is contained in:
Dunqing committed 2026-07-07 16:48:19 +00:00
1 parent 1b829d846b
commit 84eeb5570b
6 files changed
+29 -1087

No files matched your search

+19 -8
View File
@@ -277,6 +277,10 @@ impl<'a> TypeScriptEnum {
);
if is_already_declared {
// The lowered output assigns to the existing runtime binding — drop only the
// enum bits and keep the flags describing that binding. Updating flags
// mid-traversal doesn't break member inlining — see `resolve_enum_member`.
*ctx.scoping_mut().symbol_flags_mut(enum_symbol_id) -= SymbolFlags::Enum;
let op = AssignmentOperator::Assign;
let left = ctx.create_bound_ident_reference(
decl.id.span,
@@ -289,11 +293,13 @@ impl<'a> TypeScriptEnum {
return Some(Statement::new_expression_statement(span, expr, ctx));
}
let kind = if is_export || is_not_top_scope {
VariableDeclarationKind::Let
let (kind, flags) = if is_export || is_not_top_scope {
(VariableDeclarationKind::Let, SymbolFlags::BlockScopedVariable)
} else {
VariableDeclarationKind::Var
(VariableDeclarationKind::Var, SymbolFlags::FunctionScopedVariable)
};
// The symbol flags now describe the emitted `var`/`let` binding.
*ctx.scoping_mut().symbol_flags_mut(enum_symbol_id) = flags;
let decls = {
let binding = BindingPattern::new_binding_identifier_with_symbol_id(
decl.id.span,
@@ -565,14 +571,19 @@ impl<'a> TypeScriptEnum {
let ref_id = ident.reference_id.get()?;
let symbol_id = ctx.scoping().get_reference(ref_id).symbol_id()?;
let flags = ctx.scoping().symbol_flags(symbol_id);
let is_const_enum = flags.is_const_enum() && self.optimize_const_enums;
let is_regular_enum = flags.contains(SymbolFlags::RegularEnum) && self.optimize_enums;
if !is_const_enum && !is_regular_enum {
// `SymbolFlags` can't identify enums here: once a declaration is lowered, its
// flags describe the emitted `var`/`let` binding, but references visited after
// it must still inline. The enum data in `Scoping` stays valid throughout.
let body_scopes = ctx.scoping().get_enum_body_scopes(symbol_id)?;
let optimize = if ctx.scoping().is_const_enum(symbol_id) {
self.optimize_const_enums
} else {
self.optimize_enums
};
if !optimize {
return None;
}
let body_scopes = ctx.scoping().get_enum_body_scopes(symbol_id)?;
for &body_scope_id in body_scopes {
if let Some(member_symbol_id) =
ctx.scoping().get_binding(body_scope_id, property_name.into())
+1 -74
View File
@@ -2,7 +2,7 @@ commit: 1fb0b771
semantic_babel Summary:
AST Parsed : 2236/2236 (100.00%)
Positive Passed: 2129/2236 (95.21%)
Positive Passed: 2137/2236 (95.57%)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/comments/decorators/decorators-after-export/input.js
Symbol flags mismatch for "_default":
after transform: SymbolId(3): SymbolFlags(Class)
@@ -17,9 +17,6 @@ semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/comment
Bindings mismatch:
after transform: ScopeId(1): ["A", "E"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/es2022/class-private-properties/await-in-private-property-in-params-of-async-arrow/input.js
Bindings mismatch:
@@ -67,9 +64,6 @@ semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/estree/
Bindings mismatch:
after transform: ScopeId(1): ["A", "a", "r"]
rebuilt : ScopeId(1): ["A"]
Symbol flags mismatch for "A":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/estree/typescript/loc-index-property/input.js
Bindings mismatch:
@@ -199,11 +193,6 @@ Bindings mismatch:
after transform: ScopeId(0): ["x"]
rebuilt : ScopeId(0): []
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/enum/const/input.ts
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(ConstEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/enum/declare/input.ts
Bindings mismatch:
after transform: ScopeId(0): ["E"]
@@ -219,24 +208,6 @@ Bindings mismatch:
after transform: ScopeId(0): ["E"]
rebuilt : ScopeId(0): []
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/enum/enum-as-or-satisfies-brackets/input.ts
Symbol flags mismatch for "as":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "satisfies":
after transform: SymbolId(1): SymbolFlags(RegularEnum)
rebuilt : SymbolId(2): SymbolFlags(FunctionScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/enum/export/input.ts
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(BlockScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/enum/export-const/input.ts
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(ConstEnum)
rebuilt : SymbolId(0): SymbolFlags(BlockScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/enum/export-declare-const/input.ts
Bindings mismatch:
after transform: ScopeId(0): ["E"]
@@ -246,41 +217,26 @@ semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescr
Bindings mismatch:
after transform: ScopeId(1): ["A", "B", "E"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/enum/members-reserved-words/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["E", "const", "default"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/enum/members-strings/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["E", "bar", "foo"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/enum/members-trailing-comma/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["A", "E"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/enum/members-trailing-comma-with-initializer/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["A", "E"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/export/declare/input.ts
Bindings mismatch:
@@ -306,9 +262,6 @@ semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescr
Bindings mismatch:
after transform: ScopeId(0): ["C", "D", "E", "a", "b"]
rebuilt : ScopeId(0): ["C", "D", "a", "b"]
Symbol flags mismatch for "D":
after transform: SymbolId(3): SymbolFlags(RegularEnum)
rebuilt : SymbolId(3): SymbolFlags(BlockScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/export/nested-same-name/input.ts
Symbol flags mismatch for "N":
@@ -410,11 +363,6 @@ Bindings mismatch:
after transform: ScopeId(0): ["as", "satisfies"]
rebuilt : ScopeId(0): []
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/regression/is-default-export/input.ts
Symbol flags mismatch for "E":
after transform: SymbolId(1): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(BlockScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/scope/callable-class/input.ts
Symbol flags mismatch for "C":
after transform: SymbolId(0): SymbolFlags(Class | Function | Ambient)
@@ -431,11 +379,6 @@ Bindings mismatch:
after transform: ScopeId(0): ["C"]
rebuilt : ScopeId(0): []
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/scope/enum-block-scoped/input.ts
Symbol flags mismatch for "Foo":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(BlockScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/scope/export-declare-function-after/input.ts
Bindings mismatch:
after transform: ScopeId(0): ["foo"]
@@ -446,16 +389,6 @@ Bindings mismatch:
after transform: ScopeId(0): ["foo"]
rebuilt : ScopeId(0): []
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/scope/export-enum-after/input.ts
Symbol flags mismatch for "Test":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/scope/export-enum-before/input.ts
Symbol flags mismatch for "Test":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/scope/export-namespace/input.ts
Bindings mismatch:
after transform: ScopeId(0): ["N"]
@@ -514,17 +447,11 @@ after transform: SymbolId(0): [Span { start: 6, end: 7 }, Span { start: 19, end:
rebuilt : SymbolId(0): []
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/scope/redeclaration-constenum-constenum/input.ts
Symbol flags mismatch for "Foo":
after transform: SymbolId(0): SymbolFlags(ConstEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol redeclarations mismatch for "Foo":
after transform: SymbolId(0): [Span { start: 11, end: 14 }, Span { start: 29, end: 32 }]
rebuilt : SymbolId(0): []
semantic Error: tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/scope/redeclaration-enum-enum/input.ts
Symbol flags mismatch for "Foo":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol redeclarations mismatch for "Foo":
after transform: SymbolId(0): [Span { start: 5, end: 8 }, Span { start: 17, end: 20 }]
rebuilt : SymbolId(0): []
+1 -30
View File
@@ -1,6 +1,6 @@
semantic_misc Summary:
AST Parsed : 70/70 (100.00%)
Positive Passed: 64/70 (91.43%)
Positive Passed: 65/70 (92.86%)
semantic Error: tasks/coverage/misc/pass/declare-let-private.ts
Bindings mismatch:
after transform: ScopeId(0): ["private"]
@@ -115,33 +115,4 @@ rebuilt : ScopeId(7): ["G"]
Bindings mismatch:
after transform: ScopeId(8): ["H", "baz"]
rebuilt : ScopeId(8): ["H"]
Symbol flags mismatch for "A":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "B":
after transform: SymbolId(2): SymbolFlags(RegularEnum)
rebuilt : SymbolId(2): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "C":
after transform: SymbolId(4): SymbolFlags(RegularEnum)
rebuilt : SymbolId(4): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "D":
after transform: SymbolId(6): SymbolFlags(RegularEnum)
rebuilt : SymbolId(6): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "E":
after transform: SymbolId(8): SymbolFlags(RegularEnum)
rebuilt : SymbolId(8): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "F":
after transform: SymbolId(10): SymbolFlags(RegularEnum)
rebuilt : SymbolId(10): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "G":
after transform: SymbolId(12): SymbolFlags(RegularEnum)
rebuilt : SymbolId(12): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "H":
after transform: SymbolId(14): SymbolFlags(RegularEnum)
rebuilt : SymbolId(14): SymbolFlags(FunctionScopedVariable)
semantic Error: tasks/coverage/misc/pass/oxc-8193.ts
Symbol flags mismatch for "A":
after transform: SymbolId(0): SymbolFlags(ConstEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
File diff suppressed because it is too large. Load diff
@@ -1,6 +1,6 @@
commit: 1fb0b771
Passed: 742/1165
Passed: 745/1165
# All Passed:
* babel-plugin-transform-logical-assignment-operators
@@ -1070,7 +1070,7 @@ x Output mismatch
x Output mismatch
# babel-plugin-transform-typescript (90/157)
# babel-plugin-transform-typescript (93/157)
* class/accessor-allowDeclareFields-false/input.ts
x TS(18010): An accessibility modifier cannot be used with a private
@@ -1163,22 +1163,11 @@ rebuilt : ScopeId(0): []
Bindings mismatch:
after transform: ScopeId(1): ["A", "E"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* enum/const/input.ts
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(ConstEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* enum/constant-folding/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["E", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* enum/enum-merging-inner-references/input.ts
Bindings mismatch:
@@ -1187,9 +1176,6 @@ rebuilt : ScopeId(1): ["Animals"]
Bindings mismatch:
after transform: ScopeId(2): ["Animals", "CatDog"]
rebuilt : ScopeId(2): ["Animals"]
Symbol flags mismatch for "Animals":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol redeclarations mismatch for "Animals":
after transform: SymbolId(0): [Span { start: 5, end: 12 }, Span { start: 41, end: 48 }]
rebuilt : SymbolId(0): []
@@ -1213,9 +1199,6 @@ rebuilt : SymbolId(0): []
Symbol reference IDs mismatch for "Dog":
after transform: SymbolId(1): [ReferenceId(1)]
rebuilt : SymbolId(1): []
Symbol flags mismatch for "Animals":
after transform: SymbolId(2): SymbolFlags(RegularEnum)
rebuilt : SymbolId(2): SymbolFlags(FunctionScopedVariable)
Symbol redeclarations mismatch for "Animals":
after transform: SymbolId(2): [Span { start: 38, end: 45 }, Span { start: 65, end: 72 }, Span { start: 92, end: 99 }]
rebuilt : SymbolId(2): []
@@ -1227,9 +1210,6 @@ rebuilt : ScopeId(1): ["E"]
Bindings mismatch:
after transform: ScopeId(2): ["B", "E"]
rebuilt : ScopeId(2): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(BlockScopedVariable)
Symbol redeclarations mismatch for "E":
after transform: SymbolId(0): [Span { start: 12, end: 13 }, Span { start: 40, end: 41 }]
rebuilt : SymbolId(0): []
@@ -1238,17 +1218,11 @@ rebuilt : SymbolId(0): []
Bindings mismatch:
after transform: ScopeId(1): ["E", "x", "y"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* enum/inner-references/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["E", "a", "b"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* enum/mix-references/input.ts
x Output mismatch
@@ -1259,9 +1233,6 @@ Missing ReferenceId: "Foo"
Bindings mismatch:
after transform: ScopeId(1): ["A", "B", "C", "D", "Foo"]
rebuilt : ScopeId(1): ["Foo"]
Symbol flags mismatch for "Foo":
after transform: SymbolId(1): SymbolFlags(RegularEnum)
rebuilt : SymbolId(1): SymbolFlags(FunctionScopedVariable)
Symbol reference IDs mismatch for "Foo":
after transform: SymbolId(7): [ReferenceId(4), ReferenceId(5), ReferenceId(6), ReferenceId(7), ReferenceId(8), ReferenceId(9), ReferenceId(10), ReferenceId(11), ReferenceId(12)]
rebuilt : SymbolId(2): [ReferenceId(0), ReferenceId(1), ReferenceId(3), ReferenceId(4), ReferenceId(5), ReferenceId(6), ReferenceId(7), ReferenceId(8), ReferenceId(9), ReferenceId(10), ReferenceId(12)]
@@ -1270,9 +1241,6 @@ rebuilt : SymbolId(2): [ReferenceId(0), ReferenceId(1), ReferenceId(3), R
Bindings mismatch:
after transform: ScopeId(1): ["E", "a", "b"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* enum/non-scoped/input.ts
Bindings mismatch:
@@ -1281,9 +1249,6 @@ rebuilt : ScopeId(1): ["E"]
Bindings mismatch:
after transform: ScopeId(2): ["E", "z"]
rebuilt : ScopeId(2): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol redeclarations mismatch for "E":
after transform: SymbolId(0): [Span { start: 5, end: 6 }, Span { start: 40, end: 41 }]
rebuilt : SymbolId(0): []
@@ -1295,47 +1260,27 @@ rebuilt : ScopeId(1): ["socketType"]
Bindings mismatch:
after transform: ScopeId(2): ["IPC", "SERVER", "SOCKET", "UV_READABLE", "UV_WRITABLE", "constants"]
rebuilt : ScopeId(2): ["constants"]
Symbol flags mismatch for "socketType":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol reference IDs mismatch for "socketType":
after transform: SymbolId(0): [ReferenceId(0), ReferenceId(1), ReferenceId(2), ReferenceId(10)]
rebuilt : SymbolId(0): [ReferenceId(7)]
Symbol flags mismatch for "constants":
after transform: SymbolId(4): SymbolFlags(RegularEnum)
rebuilt : SymbolId(2): SymbolFlags(FunctionScopedVariable)
* enum/reverse-mappings-syntactically-determinable/input.ts
x Output mismatch
* enum/scoped/input.ts
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(BlockScopedVariable)
* enum/string-value/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["A", "A2", "B", "B2", "E"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* enum/string-value-template/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["A", "E"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* enum/string-values-computed/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["A", "E"]
rebuilt : ScopeId(1): ["E"]
Symbol flags mismatch for "E":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* enum/ts5.0-const-foldable/input.ts
x Output mismatch
@@ -1375,20 +1320,9 @@ rebuilt : ScopeId(2): ["BB"]
Bindings mismatch:
after transform: ScopeId(12): ["BB", "L"]
rebuilt : ScopeId(3): ["BB"]
Symbol flags mismatch for "BB":
after transform: SymbolId(10): SymbolFlags(RegularEnum)
rebuilt : SymbolId(1): SymbolFlags(FunctionScopedVariable)
Symbol redeclarations mismatch for "BB":
after transform: SymbolId(10): [Span { start: 445, end: 447 }, Span { start: 461, end: 463 }]
rebuilt : SymbolId(1): []
Symbol flags mismatch for "BB2":
after transform: SymbolId(15): SymbolFlags(RegularEnum)
rebuilt : SymbolId(4): SymbolFlags(FunctionScopedVariable)
* exports/export-const-enums/input.ts
Symbol flags mismatch for "None":
after transform: SymbolId(0): SymbolFlags(ConstEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* exports/interface/input.ts
x Output mismatch
@@ -1413,17 +1347,11 @@ rebuilt : SymbolId(0): []
Bindings mismatch:
after transform: ScopeId(1): ["A", "Enum"]
rebuilt : ScopeId(1): ["Enum"]
Symbol flags mismatch for "Enum":
after transform: SymbolId(1): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* imports/enum-value/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["Enum", "id"]
rebuilt : ScopeId(1): ["Enum"]
Symbol flags mismatch for "Enum":
after transform: SymbolId(1): SymbolFlags(RegularEnum)
rebuilt : SymbolId(1): SymbolFlags(FunctionScopedVariable)
* imports/type-only-export-specifier-2/input.ts
x Output mismatch
@@ -1451,9 +1379,6 @@ rebuilt : SymbolId(0): []
Bindings mismatch:
after transform: ScopeId(1): ["A", "C"]
rebuilt : ScopeId(1): ["A"]
Symbol flags mismatch for "A":
after transform: SymbolId(0): SymbolFlags(RegularEnum | ValueModule)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol redeclarations mismatch for "A":
after transform: SymbolId(0): [Span { start: 5, end: 6 }, Span { start: 30, end: 31 }]
rebuilt : SymbolId(0): []
@@ -1620,9 +1545,6 @@ rebuilt : SymbolId(11): SymbolFlags(BlockScopedVariable)
Symbol flags mismatch for "b":
after transform: SymbolId(18): SymbolFlags(ValueModule)
rebuilt : SymbolId(14): SymbolFlags(BlockScopedVariable)
Symbol flags mismatch for "B":
after transform: SymbolId(19): SymbolFlags(RegularEnum)
rebuilt : SymbolId(16): SymbolFlags(BlockScopedVariable)
Symbol flags mismatch for "c":
after transform: SymbolId(20): SymbolFlags(ValueModule)
rebuilt : SymbolId(18): SymbolFlags(BlockScopedVariable)
@@ -1703,9 +1625,6 @@ rebuilt : SymbolId(9): SymbolFlags(Function)
Symbol redeclarations mismatch for "D":
after transform: SymbolId(6): [Span { start: 181, end: 182 }, Span { start: 207, end: 208 }]
rebuilt : SymbolId(9): []
Symbol flags mismatch for "H":
after transform: SymbolId(8): SymbolFlags(RegularEnum)
rebuilt : SymbolId(12): SymbolFlags(BlockScopedVariable)
Symbol flags mismatch for "F":
after transform: SymbolId(12): SymbolFlags(Class | ValueModule)
rebuilt : SymbolId(14): SymbolFlags(Class)
@@ -1715,9 +1634,6 @@ rebuilt : SymbolId(14): []
Symbol flags mismatch for "G":
after transform: SymbolId(14): SymbolFlags(ValueModule)
rebuilt : SymbolId(17): SymbolFlags(BlockScopedVariable)
Symbol flags mismatch for "L":
after transform: SymbolId(16): SymbolFlags(RegularEnum)
rebuilt : SymbolId(20): SymbolFlags(BlockScopedVariable)
* namespace/nested-namespace/input.ts
Bindings mismatch:
@@ -1729,9 +1645,6 @@ rebuilt : ScopeId(2): ["G"]
Symbol flags mismatch for "A":
after transform: SymbolId(0): SymbolFlags(ValueModule)
rebuilt : SymbolId(0): SymbolFlags(BlockScopedVariable)
Symbol flags mismatch for "G":
after transform: SymbolId(3): SymbolFlags(RegularEnum)
rebuilt : SymbolId(2): SymbolFlags(BlockScopedVariable)
* namespace/nested-shorthand/input.ts
Symbol flags mismatch for "X":
@@ -1766,9 +1679,6 @@ rebuilt : SymbolId(5): SymbolFlags(BlockScopedVariable)
Symbol redeclarations mismatch for "N":
after transform: SymbolId(3): [Span { start: 59, end: 60 }, Span { start: 115, end: 116 }, Span { start: 166, end: 167 }]
rebuilt : SymbolId(5): []
Symbol flags mismatch for "_N":
after transform: SymbolId(6): SymbolFlags(RegularEnum)
rebuilt : SymbolId(11): SymbolFlags(BlockScopedVariable)
* namespace/undeclared/input.ts
Symbol flags mismatch for "N":
@@ -1799,9 +1709,6 @@ x Output mismatch
Bindings mismatch:
after transform: ScopeId(1): ["A", "x", "y"]
rebuilt : ScopeId(1): ["A"]
Symbol flags mismatch for "A":
after transform: SymbolId(0): SymbolFlags(ConstEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* optimize-const-enums/merged/input.ts
Bindings mismatch:
@@ -1810,9 +1717,6 @@ rebuilt : ScopeId(1): ["A"]
Bindings mismatch:
after transform: ScopeId(2): ["A", "z"]
rebuilt : ScopeId(2): ["A"]
Symbol flags mismatch for "A":
after transform: SymbolId(0): SymbolFlags(ConstEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol redeclarations mismatch for "A":
after transform: SymbolId(0): [Span { start: 11, end: 12 }, Span { start: 36, end: 37 }]
rebuilt : SymbolId(0): []
@@ -67,18 +67,6 @@ rebuilt : ScopeId(3): ["C"]
Bindings mismatch:
after transform: ScopeId(4): ["D", "a", "b", "c"]
rebuilt : ScopeId(4): ["D"]
Symbol flags mismatch for "A":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "B":
after transform: SymbolId(6): SymbolFlags(RegularEnum)
rebuilt : SymbolId(2): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "C":
after transform: SymbolId(12): SymbolFlags(RegularEnum)
rebuilt : SymbolId(4): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "D":
after transform: SymbolId(16): SymbolFlags(RegularEnum)
rebuilt : SymbolId(6): SymbolFlags(FunctionScopedVariable)
Unresolved references mismatch:
after transform: ["Infinity", "NaN"]
rebuilt : ["Infinity"]
@@ -90,17 +78,11 @@ rebuilt : [ReferenceId(2), ReferenceId(5), ReferenceId(8), ReferenceId(12
Bindings mismatch:
after transform: ScopeId(1): ["Phase", "one", "two"]
rebuilt : ScopeId(1): ["Phase"]
Symbol flags mismatch for "Phase":
after transform: SymbolId(0): SymbolFlags(ConstEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* const-enum-value-ref-kept/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["Phase", "one", "two"]
rebuilt : ScopeId(1): ["Phase"]
Symbol flags mismatch for "Phase":
after transform: SymbolId(0): SymbolFlags(ConstEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* declare-and-definite-with-initializer/input.ts
@@ -151,27 +133,15 @@ rebuilt : ScopeId(6): ["NestInner"]
Symbol reference IDs mismatch for "x":
after transform: SymbolId(0): [ReferenceId(2), ReferenceId(4)]
rebuilt : SymbolId(0): [ReferenceId(7)]
Symbol flags mismatch for "Foo":
after transform: SymbolId(1): SymbolFlags(RegularEnum)
rebuilt : SymbolId(1): SymbolFlags(FunctionScopedVariable)
Symbol reference IDs mismatch for "Foo":
after transform: SymbolId(14): [ReferenceId(8), ReferenceId(9), ReferenceId(10), ReferenceId(11), ReferenceId(12), ReferenceId(13), ReferenceId(14)]
rebuilt : SymbolId(2): [ReferenceId(0), ReferenceId(1), ReferenceId(2), ReferenceId(3), ReferenceId(4), ReferenceId(5), ReferenceId(6), ReferenceId(8)]
Symbol flags mismatch for "Merge":
after transform: SymbolId(5): SymbolFlags(RegularEnum)
rebuilt : SymbolId(3): SymbolFlags(FunctionScopedVariable)
Symbol redeclarations mismatch for "Merge":
after transform: SymbolId(5): [Span { start: 70, end: 75 }, Span { start: 103, end: 108 }]
rebuilt : SymbolId(3): []
Symbol reference IDs mismatch for "Merge":
after transform: SymbolId(16): [ReferenceId(20), ReferenceId(21), ReferenceId(22)]
rebuilt : SymbolId(5): [ReferenceId(16), ReferenceId(17), ReferenceId(18), ReferenceId(19)]
Symbol flags mismatch for "NestOuter":
after transform: SymbolId(8): SymbolFlags(RegularEnum)
rebuilt : SymbolId(6): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "NestInner":
after transform: SymbolId(11): SymbolFlags(RegularEnum)
rebuilt : SymbolId(8): SymbolFlags(BlockScopedVariable)
Symbol reference IDs mismatch for "NestInner":
after transform: SymbolId(18): [ReferenceId(31), ReferenceId(32), ReferenceId(33), ReferenceId(34), ReferenceId(35)]
rebuilt : SymbolId(9): [ReferenceId(25), ReferenceId(26), ReferenceId(28), ReferenceId(29), ReferenceId(30), ReferenceId(31)]
@@ -180,9 +150,6 @@ rebuilt : SymbolId(9): [ReferenceId(25), ReferenceId(26), ReferenceId(28)
Bindings mismatch:
after transform: ScopeId(2): ["Color", "Green", "Primary", "Red"]
rebuilt : ScopeId(1): ["Color"]
Symbol flags mismatch for "Color":
after transform: SymbolId(4): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol reference IDs mismatch for "Color":
after transform: SymbolId(4): [ReferenceId(5), ReferenceId(6), ReferenceId(7), ReferenceId(12)]
rebuilt : SymbolId(0): [ReferenceId(6), ReferenceId(7), ReferenceId(8)]
@@ -197,21 +164,12 @@ rebuilt : ScopeId(2): ["Animal"]
Bindings mismatch:
after transform: ScopeId(3): ["AnimalSize", "LARGE_DOG", "SMALL_CAT"]
rebuilt : ScopeId(3): ["AnimalSize"]
Symbol flags mismatch for "Size":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol reference IDs mismatch for "Size":
after transform: SymbolId(0): [ReferenceId(0), ReferenceId(2), ReferenceId(7)]
rebuilt : SymbolId(0): [ReferenceId(3)]
Symbol flags mismatch for "Animal":
after transform: SymbolId(3): SymbolFlags(RegularEnum)
rebuilt : SymbolId(2): SymbolFlags(FunctionScopedVariable)
Symbol reference IDs mismatch for "Animal":
after transform: SymbolId(3): [ReferenceId(1), ReferenceId(3), ReferenceId(11)]
rebuilt : SymbolId(2): [ReferenceId(7)]
Symbol flags mismatch for "AnimalSize":
after transform: SymbolId(6): SymbolFlags(RegularEnum)
rebuilt : SymbolId(4): SymbolFlags(FunctionScopedVariable)
* enum-template-literal-number/input.ts
Bindings mismatch:
@@ -220,15 +178,9 @@ rebuilt : ScopeId(1): ["NumberEnum"]
Bindings mismatch:
after transform: ScopeId(2): ["COMPUTED_1", "COMPUTED_2", "ComputedEnum"]
rebuilt : ScopeId(2): ["ComputedEnum"]
Symbol flags mismatch for "NumberEnum":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol reference IDs mismatch for "NumberEnum":
after transform: SymbolId(0): [ReferenceId(0), ReferenceId(1), ReferenceId(2), ReferenceId(3), ReferenceId(13)]
rebuilt : SymbolId(0): [ReferenceId(9)]
Symbol flags mismatch for "ComputedEnum":
after transform: SymbolId(5): SymbolFlags(RegularEnum)
rebuilt : SymbolId(2): SymbolFlags(FunctionScopedVariable)
* enum-template-literal-trailing-quasi/input.ts
Bindings mismatch:
@@ -237,15 +189,9 @@ rebuilt : ScopeId(1): ["NumberEnum"]
Bindings mismatch:
after transform: ScopeId(2): ["C", "ComputedEnum", "D"]
rebuilt : ScopeId(2): ["ComputedEnum"]
Symbol flags mismatch for "NumberEnum":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol reference IDs mismatch for "NumberEnum":
after transform: SymbolId(0): [ReferenceId(0), ReferenceId(1), ReferenceId(2), ReferenceId(8)]
rebuilt : SymbolId(0): [ReferenceId(5)]
Symbol flags mismatch for "ComputedEnum":
after transform: SymbolId(3): SymbolFlags(RegularEnum)
rebuilt : SymbolId(2): SymbolFlags(FunctionScopedVariable)
* export-elimination/input.ts
Bindings mismatch:
@@ -293,14 +239,11 @@ Bindings mismatch:
after transform: ScopeId(2): ["x", "y"]
rebuilt : ScopeId(2): ["x"]
Symbol flags mismatch for "x":
after transform: SymbolId(0): SymbolFlags(RegularEnum | ValueModule)
after transform: SymbolId(0): SymbolFlags(ValueModule)
rebuilt : SymbolId(0): SymbolFlags(BlockScopedVariable)
Symbol redeclarations mismatch for "x":
after transform: SymbolId(0): [Span { start: 10, end: 11 }, Span { start: 39, end: 40 }]
rebuilt : SymbolId(0): []
Symbol flags mismatch for "y":
after transform: SymbolId(2): SymbolFlags(RegularEnum | ValueModule)
rebuilt : SymbolId(3): SymbolFlags(FunctionScopedVariable)
Symbol redeclarations mismatch for "y":
after transform: SymbolId(2): [Span { start: 59, end: 60 }, Span { start: 83, end: 84 }]
rebuilt : SymbolId(3): []
@@ -339,17 +282,11 @@ rebuilt : SymbolId(0): []
Bindings mismatch:
after transform: ScopeId(1): ["A", "B", "Mixed"]
rebuilt : ScopeId(1): ["Mixed"]
Symbol flags mismatch for "Mixed":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* optimize-enums/exported-not-removed/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["Direction", "Down", "Up"]
rebuilt : ScopeId(1): ["Direction"]
Symbol flags mismatch for "Direction":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(BlockScopedVariable)
* optimize-enums/merged-enum/input.ts
Unresolved references mismatch:
@@ -360,25 +297,16 @@ rebuilt : []
Bindings mismatch:
after transform: ScopeId(1): ["Runtime", "X", "Y"]
rebuilt : ScopeId(1): ["Runtime"]
Symbol flags mismatch for "Runtime":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* optimize-enums/optional-chain-value-kept/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["A", "B", "Foo"]
rebuilt : ScopeId(1): ["Foo"]
Symbol flags mismatch for "Foo":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* optimize-enums/passed-as-argument-kept/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["Active", "Inactive", "Status"]
rebuilt : ScopeId(1): ["Status"]
Symbol flags mismatch for "Status":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* optimize-enums/re-exported-not-removed/input.ts
Bindings mismatch:
@@ -387,28 +315,16 @@ rebuilt : ScopeId(1): ["A"]
Bindings mismatch:
after transform: ScopeId(2): ["B", "Y"]
rebuilt : ScopeId(2): ["B"]
Symbol flags mismatch for "A":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "B":
after transform: SymbolId(2): SymbolFlags(RegularEnum)
rebuilt : SymbolId(2): SymbolFlags(FunctionScopedVariable)
* optimize-enums/typeof-kept/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["Bar", "X"]
rebuilt : ScopeId(1): ["Bar"]
Symbol flags mismatch for "Bar":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* optimize-enums/value-usage-kept/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["A", "B", "Foo"]
rebuilt : ScopeId(1): ["Foo"]
Symbol flags mismatch for "Foo":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
* redeclarations/input.ts
Bindings mismatch:
@@ -614,30 +530,6 @@ rebuilt : ScopeId(8): ["MixedEnum"]
Bindings mismatch:
after transform: ScopeId(9): ["ComputedEnum", "computed", "expression"]
rebuilt : ScopeId(9): ["ComputedEnum"]
Symbol flags mismatch for "StringEnum":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "TemplateStringEnum":
after transform: SymbolId(3): SymbolFlags(RegularEnum)
rebuilt : SymbolId(2): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "NumberEnum":
after transform: SymbolId(6): SymbolFlags(RegularEnum)
rebuilt : SymbolId(4): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "UnaryEnum":
after transform: SymbolId(9): SymbolFlags(RegularEnum)
rebuilt : SymbolId(6): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "UnaryOtherEnum":
after transform: SymbolId(14): SymbolFlags(RegularEnum)
rebuilt : SymbolId(9): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "AutoIncrementEnum":
after transform: SymbolId(18): SymbolFlags(RegularEnum)
rebuilt : SymbolId(11): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "MixedEnum":
after transform: SymbolId(22): SymbolFlags(RegularEnum)
rebuilt : SymbolId(13): SymbolFlags(FunctionScopedVariable)
Symbol flags mismatch for "ComputedEnum":
after transform: SymbolId(25): SymbolFlags(RegularEnum)
rebuilt : SymbolId(15): SymbolFlags(FunctionScopedVariable)
* oxc/metadata/erased-import-no-type-keyword/input.ts
Bindings mismatch: