mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-19 20:37:00 -05:00
fix(41688): completions with infer keyword (#41704)
This commit is contained in:
@@ -993,7 +993,7 @@ namespace FourSlashInterface {
|
||||
export const keywords: readonly ExpectedCompletionEntryObject[] = keywordsWithUndefined.filter(k => k.name !== "undefined");
|
||||
|
||||
export const typeKeywords: readonly ExpectedCompletionEntryObject[] =
|
||||
["false", "null", "true", "void", "asserts", "any", "boolean", "keyof", "never", "readonly", "number", "object", "string", "symbol", "undefined", "unique", "unknown", "bigint"].map(keywordEntry);
|
||||
["false", "null", "true", "void", "asserts", "any", "boolean", "infer", "keyof", "never", "readonly", "number", "object", "string", "symbol", "undefined", "unique", "unknown", "bigint"].map(keywordEntry);
|
||||
|
||||
const globalTypeDecls: readonly ExpectedCompletionEntryObject[] = [
|
||||
interfaceEntry("Symbol"),
|
||||
@@ -1254,6 +1254,7 @@ namespace FourSlashInterface {
|
||||
"await",
|
||||
"boolean",
|
||||
"declare",
|
||||
"infer",
|
||||
"keyof",
|
||||
"module",
|
||||
"namespace",
|
||||
@@ -1456,6 +1457,7 @@ namespace FourSlashInterface {
|
||||
"await",
|
||||
"boolean",
|
||||
"declare",
|
||||
"infer",
|
||||
"keyof",
|
||||
"module",
|
||||
"namespace",
|
||||
|
||||
@@ -2266,6 +2266,7 @@ namespace ts.Completions {
|
||||
case SyntaxKind.ImportKeyword:
|
||||
case SyntaxKind.LetKeyword:
|
||||
case SyntaxKind.ConstKeyword:
|
||||
case SyntaxKind.InferKeyword:
|
||||
case SyntaxKind.TypeKeyword: // type htm|
|
||||
return true;
|
||||
|
||||
|
||||
@@ -1723,6 +1723,7 @@ namespace ts {
|
||||
SyntaxKind.BigIntKeyword,
|
||||
SyntaxKind.BooleanKeyword,
|
||||
SyntaxKind.FalseKeyword,
|
||||
SyntaxKind.InferKeyword,
|
||||
SyntaxKind.KeyOfKeyword,
|
||||
SyntaxKind.NeverKeyword,
|
||||
SyntaxKind.NullKeyword,
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
/// <reference path='fourslash.ts' />
|
||||
|
||||
//// type UType = 1;
|
||||
//// type Bar<T> = T extends { a: (x: infer /*1*/) => void; b: (x: infer U/*2*/) => void }
|
||||
//// ? U
|
||||
//// : never;
|
||||
|
||||
verify.completions({ marker: test.markers(), exact: undefined });
|
||||
10
tests/cases/fourslash/completionListInferKeyword.ts
Normal file
10
tests/cases/fourslash/completionListInferKeyword.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
/// <reference path='fourslash.ts' />
|
||||
|
||||
//// type Bar<T> = T extends { a: (x: in/**/) => void }
|
||||
//// ? U
|
||||
//// : never;
|
||||
|
||||
verify.completions({
|
||||
marker: "",
|
||||
includes: [{ name: "infer", kind: "keyword", sortText: completion.SortText.GlobalsOrKeywords }]
|
||||
});
|
||||
Reference in New Issue
Block a user