From b57d6e1df45578798a7fd044075e677c31ef662e Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Wed, 25 May 2022 01:16:48 +0300 Subject: [PATCH] fix(49131): allow type keyword inside functions (#49134) --- src/harness/fourslashInterfaceImpl.ts | 2 + src/services/completions.ts | 1 + .../completionsCommentsClassMembers.baseline | 216 ++++++++++++++++++ ...completionsCommentsCommentParsing.baseline | 60 +++++ ...etionsCommentsFunctionDeclaration.baseline | 36 +++ ...letionsCommentsFunctionExpression.baseline | 24 ++ .../cases/fourslash/typeKeywordInFunction.ts | 10 + 7 files changed, 349 insertions(+) create mode 100644 tests/cases/fourslash/typeKeywordInFunction.ts diff --git a/src/harness/fourslashInterfaceImpl.ts b/src/harness/fourslashInterfaceImpl.ts index a4412ca8826..ab830bb0a5e 100644 --- a/src/harness/fourslashInterfaceImpl.ts +++ b/src/harness/fourslashInterfaceImpl.ts @@ -1498,6 +1498,7 @@ namespace FourSlashInterface { "throw", "true", "try", + "type", "typeof", "var", "void", @@ -1649,6 +1650,7 @@ namespace FourSlashInterface { "throw", "true", "try", + "type", "typeof", "var", "void", diff --git a/src/services/completions.ts b/src/services/completions.ts index 27066f7b72e..52a7bc89d4d 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -3988,6 +3988,7 @@ namespace ts.Completions { return kind === SyntaxKind.AsyncKeyword || kind === SyntaxKind.AwaitKeyword || kind === SyntaxKind.AsKeyword + || kind === SyntaxKind.TypeKeyword || !isContextualKeyword(kind) && !isClassMemberCompletionKeyword(kind); } diff --git a/tests/baselines/reference/completionsCommentsClassMembers.baseline b/tests/baselines/reference/completionsCommentsClassMembers.baseline index 6180976aaba..c09142c2a91 100644 --- a/tests/baselines/reference/completionsCommentsClassMembers.baseline +++ b/tests/baselines/reference/completionsCommentsClassMembers.baseline @@ -4223,6 +4223,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -11284,6 +11296,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -16098,6 +16122,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -23159,6 +23195,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -27224,6 +27272,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -32445,6 +32505,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -36464,6 +36536,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -41639,6 +41723,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -46860,6 +46956,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -52081,6 +52189,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -57302,6 +57422,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -61362,6 +61494,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -65422,6 +65566,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -69482,6 +69638,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -73542,6 +73710,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -77602,6 +77782,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -81662,6 +81854,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -96035,6 +96239,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", diff --git a/tests/baselines/reference/completionsCommentsCommentParsing.baseline b/tests/baselines/reference/completionsCommentsCommentParsing.baseline index d4a9a88a0a1..99a71cece80 100644 --- a/tests/baselines/reference/completionsCommentsCommentParsing.baseline +++ b/tests/baselines/reference/completionsCommentsCommentParsing.baseline @@ -5057,6 +5057,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -11349,6 +11361,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -17125,6 +17149,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -28569,6 +28605,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -34861,6 +34909,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", diff --git a/tests/baselines/reference/completionsCommentsFunctionDeclaration.baseline b/tests/baselines/reference/completionsCommentsFunctionDeclaration.baseline index 3c056e5f263..4e3bcb80145 100644 --- a/tests/baselines/reference/completionsCommentsFunctionDeclaration.baseline +++ b/tests/baselines/reference/completionsCommentsFunctionDeclaration.baseline @@ -3568,6 +3568,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -7197,6 +7209,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -11356,6 +11380,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", diff --git a/tests/baselines/reference/completionsCommentsFunctionExpression.baseline b/tests/baselines/reference/completionsCommentsFunctionExpression.baseline index e153a2ecdaf..4fac96f0abb 100644 --- a/tests/baselines/reference/completionsCommentsFunctionExpression.baseline +++ b/tests/baselines/reference/completionsCommentsFunctionExpression.baseline @@ -11647,6 +11647,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -15990,6 +16002,18 @@ } ] }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", diff --git a/tests/cases/fourslash/typeKeywordInFunction.ts b/tests/cases/fourslash/typeKeywordInFunction.ts new file mode 100644 index 00000000000..2c1f4bac1b1 --- /dev/null +++ b/tests/cases/fourslash/typeKeywordInFunction.ts @@ -0,0 +1,10 @@ +/// + +////function a() { +//// ty/**/ +////} + +verify.completions({ + marker: "", + includes: [{ name: "type", sortText: completion.SortText.GlobalsOrKeywords }] +});