diff --git a/internal/checker/checker.go b/internal/checker/checker.go index f0323ed53d..06abdf03e2 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -23066,6 +23066,8 @@ func (c *Checker) computeEnumMemberValues(node *ast.Node) { func (c *Checker) computeEnumMemberValue(member *ast.Node, autoValue jsnum.Number, previous *ast.Node) evaluator.Result { if ast.IsComputedNonLiteralName(member.Name()) { c.error(member.Name(), diagnostics.Computed_property_names_are_not_allowed_in_enums) + } else if ast.IsBigIntLiteral(member.Name()) { + c.error(member.Name(), diagnostics.An_enum_member_cannot_have_a_numeric_name) } else { text := ast.GetTextOfPropertyName(member.Name()) if isNumericLiteralName(text) && !isInfinityOrNaNString(text) { diff --git a/testdata/baselines/reference/submodule/compiler/enumWithBigint.errors.txt b/testdata/baselines/reference/submodule/compiler/enumWithBigint.errors.txt new file mode 100644 index 0000000000..a88660ce7c --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/enumWithBigint.errors.txt @@ -0,0 +1,10 @@ +enumWithBigint.ts(2,3): error TS2452: An enum member cannot have a numeric name. + + +==== enumWithBigint.ts (1 errors) ==== + enum E { + 0n = 0, + ~~ +!!! error TS2452: An enum member cannot have a numeric name. + } + \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/enumWithBigint.errors.txt.diff b/testdata/baselines/reference/submodule/compiler/enumWithBigint.errors.txt.diff deleted file mode 100644 index 27d2dca272..0000000000 --- a/testdata/baselines/reference/submodule/compiler/enumWithBigint.errors.txt.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- old.enumWithBigint.errors.txt -+++ new.enumWithBigint.errors.txt -@@= skipped -0, +0 lines =@@ --enumWithBigint.ts(2,3): error TS2452: An enum member cannot have a numeric name. -- -- --==== enumWithBigint.ts (1 errors) ==== -- enum E { -- 0n = 0, -- ~~ --!!! error TS2452: An enum member cannot have a numeric name. -- } -- -+ \ No newline at end of file