From fdcb2ffd1beb0b1d3d47483bf3da372fb0443d2e Mon Sep 17 00:00:00 2001 From: Gabriela Araujo Britto Date: Wed, 2 Nov 2022 15:28:10 -0300 Subject: [PATCH] Fix services' type's `isLiteral` implementation (#50929) * fix services' type's isLiteral * update literal completions tests * remove booleans from literals --- src/services/services.ts | 2 +- tests/cases/fourslash/completionsLiterals.ts | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/services/services.ts b/src/services/services.ts index 618a2747669..42f6fd27077 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -511,7 +511,7 @@ namespace ts { return !!(this.flags & TypeFlags.UnionOrIntersection); } isLiteral(): this is LiteralType { - return !!(this.flags & TypeFlags.StringOrNumberLiteral); + return !!(this.flags & (TypeFlags.StringLiteral | TypeFlags.NumberLiteral | TypeFlags.BigIntLiteral)); } isStringLiteral(): this is StringLiteralType { return !!(this.flags & TypeFlags.StringLiteral); diff --git a/tests/cases/fourslash/completionsLiterals.ts b/tests/cases/fourslash/completionsLiterals.ts index 475d3dd247e..e25976417d3 100644 --- a/tests/cases/fourslash/completionsLiterals.ts +++ b/tests/cases/fourslash/completionsLiterals.ts @@ -1,6 +1,7 @@ /// ////const x: 0 | "one" = /**/; +////const y: 0 | "one" | 1n = /*1*/; verify.completions({ marker: "", @@ -10,3 +11,12 @@ verify.completions({ ], isNewIdentifierLocation: true, }); +verify.completions({ + marker: "1", + includes: [ + { name: "0", kind: "string", text: "0" }, + { name: '"one"', kind: "string", text: '"one"' }, + { name: "1n", kind: "string", text: "1n" }, + ], + isNewIdentifierLocation: true, +});