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