From 1c72da6e49b15ee160e162eaf24ad0047e7ac7ea Mon Sep 17 00:00:00 2001 From: Alexander T Date: Mon, 11 May 2020 21:44:48 +0300 Subject: [PATCH] fix(38463): show completions for index access properties --- src/services/stringCompletions.ts | 4 +--- .../fourslash/completionForStringLiteral14.ts | 18 ++++++++++++++++++ .../fourslash/completionForStringLiteral15.ts | 12 ++++++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 tests/cases/fourslash/completionForStringLiteral14.ts create mode 100644 tests/cases/fourslash/completionForStringLiteral15.ts diff --git a/src/services/stringCompletions.ts b/src/services/stringCompletions.ts index cc0b94507d8..27db312c521 100644 --- a/src/services/stringCompletions.ts +++ b/src/services/stringCompletions.ts @@ -223,9 +223,7 @@ namespace ts.Completions.StringCompletions { function stringLiteralCompletionsFromProperties(type: Type | undefined): StringLiteralCompletionsFromProperties | undefined { return type && { kind: StringLiteralCompletionKind.Properties, - symbols: type.getApparentProperties().filter(prop => - !isPrivateIdentifierPropertyDeclaration( - isTransientSymbol(prop) && prop.syntheticOrigin ? prop.syntheticOrigin.valueDeclaration : prop.valueDeclaration)), + symbols: filter(type.getApparentProperties(), prop => !(prop.valueDeclaration && isPrivateIdentifierPropertyDeclaration(prop.valueDeclaration))), hasIndexSignature: hasIndexSignature(type) }; } diff --git a/tests/cases/fourslash/completionForStringLiteral14.ts b/tests/cases/fourslash/completionForStringLiteral14.ts new file mode 100644 index 00000000000..b1a28df23ef --- /dev/null +++ b/tests/cases/fourslash/completionForStringLiteral14.ts @@ -0,0 +1,18 @@ +/// + +////interface Foo { +//// a: string; +//// b: boolean; +//// c: number; +////} +////type Bar = Record["[|/**/|]"]; + +const replacementSpan = test.ranges()[0] +verify.completions({ + marker: "", + exact: [ + { name: "a", replacementSpan }, + { name: "b", replacementSpan }, + { name: "c", replacementSpan } + ] +}); diff --git a/tests/cases/fourslash/completionForStringLiteral15.ts b/tests/cases/fourslash/completionForStringLiteral15.ts new file mode 100644 index 00000000000..3736e5e5b78 --- /dev/null +++ b/tests/cases/fourslash/completionForStringLiteral15.ts @@ -0,0 +1,12 @@ +/// + +////let x: { [_ in "foo"]: string } = { +//// "[|/**/|]" +////} + +verify.completions({ + marker: "", + exact: [ + { name: "foo", replacementSpan: test.ranges()[0] } + ] +});