Skip to content

Commit a958283

Browse files
committed
Fix binder for const enums
1 parent c68252a commit a958283

File tree

3 files changed

+5
-13
lines changed

3 files changed

+5
-13
lines changed

internal/binder/binder.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -794,8 +794,11 @@ func (b *Binder) bindModuleDeclaration(node *ast.Node) {
794794
state := b.declareModuleSymbol(node)
795795
if state != ast.ModuleInstanceStateNonInstantiated {
796796
symbol := node.AsModuleDeclaration().Symbol
797-
if symbol.Flags&(ast.SymbolFlagsFunction|ast.SymbolFlagsClass|ast.SymbolFlagsRegularEnum) != 0 || state != ast.ModuleInstanceStateConstEnumOnly {
798-
// if module was already merged with some function, class or non-const enum, treat it as non-const-enum-only
797+
if (symbol.Flags&(ast.SymbolFlagsFunction|ast.SymbolFlagsClass|ast.SymbolFlagsRegularEnum) == 0) &&
798+
state == ast.ModuleInstanceStateConstEnumOnly &&
799+
symbol.Flags&ast.SymbolFlagsConstEnumOnlyModule == 0 {
800+
symbol.Flags |= ast.SymbolFlagsConstEnumOnlyModule
801+
} else {
799802
symbol.Flags &^= ast.SymbolFlagsConstEnumOnlyModule
800803
}
801804
}

testdata/baselines/reference/submodule/compiler/constEnums.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,6 @@ var A2;
192192
})(C = B.C || (B.C = {}));
193193
})(B = A2.B || (A2.B = {}));
194194
})(A2 || (A2 = {}));
195-
var I1 = A1.B;
196195
var I2 = A2.B;
197196
function foo0(e) {
198197
if (e === 1 /* I.V1 */) {

testdata/baselines/reference/submodule/compiler/constEnums.js.diff

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)