From 71e0db6ec350250877097361496d457988a4cd75 Mon Sep 17 00:00:00 2001 From: magic-akari Date: Fri, 20 Oct 2023 19:00:32 +0800 Subject: [PATCH] Disallow `Infinity`, `-Infinity` and `NaN` as an enum key name --- src/compiler/checker.ts | 2 +- .../reference/enumWithInfinityProperty.errors.txt | 10 ++++++++++ .../baselines/reference/enumWithNaNProperty.errors.txt | 10 ++++++++++ .../enumWithNegativeInfinityProperty.errors.txt | 10 ++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/enumWithInfinityProperty.errors.txt create mode 100644 tests/baselines/reference/enumWithNaNProperty.errors.txt create mode 100644 tests/baselines/reference/enumWithNegativeInfinityProperty.errors.txt diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 69933033d3929..5ae3dfcbe844b 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -44729,7 +44729,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } else { const text = getTextOfPropertyName(member.name); - if (isNumericLiteralName(text) && !isInfinityOrNaNString(text)) { + if (isNumericLiteralName(text)) { error(member.name, Diagnostics.An_enum_member_cannot_have_a_numeric_name); } } diff --git a/tests/baselines/reference/enumWithInfinityProperty.errors.txt b/tests/baselines/reference/enumWithInfinityProperty.errors.txt new file mode 100644 index 0000000000000..27de0a69b0383 --- /dev/null +++ b/tests/baselines/reference/enumWithInfinityProperty.errors.txt @@ -0,0 +1,10 @@ +enumWithInfinityProperty.ts(2,5): error TS2452: An enum member cannot have a numeric name. + + +==== enumWithInfinityProperty.ts (1 errors) ==== + enum A { + Infinity = 1 + ~~~~~~~~ +!!! error TS2452: An enum member cannot have a numeric name. + } + \ No newline at end of file diff --git a/tests/baselines/reference/enumWithNaNProperty.errors.txt b/tests/baselines/reference/enumWithNaNProperty.errors.txt new file mode 100644 index 0000000000000..941fa099eefe2 --- /dev/null +++ b/tests/baselines/reference/enumWithNaNProperty.errors.txt @@ -0,0 +1,10 @@ +enumWithNaNProperty.ts(2,5): error TS2452: An enum member cannot have a numeric name. + + +==== enumWithNaNProperty.ts (1 errors) ==== + enum A { + NaN = 1 + ~~~ +!!! error TS2452: An enum member cannot have a numeric name. + } + \ No newline at end of file diff --git a/tests/baselines/reference/enumWithNegativeInfinityProperty.errors.txt b/tests/baselines/reference/enumWithNegativeInfinityProperty.errors.txt new file mode 100644 index 0000000000000..d9923989b8a3f --- /dev/null +++ b/tests/baselines/reference/enumWithNegativeInfinityProperty.errors.txt @@ -0,0 +1,10 @@ +enumWithNegativeInfinityProperty.ts(2,5): error TS2452: An enum member cannot have a numeric name. + + +==== enumWithNegativeInfinityProperty.ts (1 errors) ==== + enum A { + "-Infinity" = 1 + ~~~~~~~~~~~ +!!! error TS2452: An enum member cannot have a numeric name. + } + \ No newline at end of file