From 228ce06461fad0fb260f4dd3ca0c1f8a5abecfba Mon Sep 17 00:00:00 2001 From: Charles Pierce Date: Wed, 5 Jul 2017 10:03:56 -0700 Subject: [PATCH] #15214 Remove nonpublic members from destructuring completion lists --- src/services/completions.ts | 2 +- .../fourslash/completionListInObjectBindingPattern14.ts | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/completionListInObjectBindingPattern14.ts diff --git a/src/services/completions.ts b/src/services/completions.ts index 410ba636d7b..f11130efa86 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -1002,7 +1002,7 @@ namespace ts.Completions { const typeForObject = typeChecker.getTypeAtLocation(objectLikeContainer); if (!typeForObject) return false; // In a binding pattern, get only known properties. Everywhere else we will get all possible properties. - typeMembers = typeChecker.getPropertiesOfType(typeForObject); + typeMembers = typeChecker.getPropertiesOfType(typeForObject).filter((symbol) => !(getDeclarationModifierFlagsFromSymbol(symbol) & ModifierFlags.NonPublicAccessibilityModifier)); existingMembers = (objectLikeContainer).elements; } } diff --git a/tests/cases/fourslash/completionListInObjectBindingPattern14.ts b/tests/cases/fourslash/completionListInObjectBindingPattern14.ts new file mode 100644 index 00000000000..425813a5543 --- /dev/null +++ b/tests/cases/fourslash/completionListInObjectBindingPattern14.ts @@ -0,0 +1,9 @@ +/// + +////const { b/**/ } = new class { +//// private ab; +//// protected bc; +////} + +goTo.marker(); +verify.completionListIsEmpty();