From 2ce627c6dd8ac4bce85c87f3f41e3649ca870ddd Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Fri, 10 Oct 2014 17:07:13 -0700 Subject: [PATCH] Handle union properties completions on apparant types --- src/compiler/checker.ts | 2 +- .../completionEntryForUnionProperty2.ts | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/completionEntryForUnionProperty2.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 5bcf1871f7d..56dc73237f3 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -7916,7 +7916,7 @@ module ts { var symbols: Symbol[] = []; var name = symbol.name; forEach(getSymbolLinks(symbol).unionType.types, t => { - symbols.push(getPropertyOfType(t, name)); + symbols.push(getPropertyOfType(getApparentType(t), name)); }); return symbols; } diff --git a/tests/cases/fourslash/completionEntryForUnionProperty2.ts b/tests/cases/fourslash/completionEntryForUnionProperty2.ts new file mode 100644 index 00000000000..fef5e0dfb50 --- /dev/null +++ b/tests/cases/fourslash/completionEntryForUnionProperty2.ts @@ -0,0 +1,19 @@ +/// + +////interface One { +//// commonProperty: number; +//// commonFunction(): number; +////} +//// +////interface Two { +//// commonProperty: string +//// commonFunction(): number; +////} +//// +////var x : One | Two; +//// +////x.commonProperty./**/ + +goTo.marker(); +verify.memberListContains("toString", "() => string", undefined, undefined, "method"); +verify.memberListCount(1); \ No newline at end of file