diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 786d73dd06c..a7d862fb673 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -16795,7 +16795,11 @@ namespace ts { return symbols; } else if (symbol.flags & SymbolFlags.Transient) { - const target = getSymbolLinks(symbol).target; + let target: Symbol; + let next: Symbol = symbol; + while (next = getSymbolLinks(next).target) { + target = next; + } if (target) { return [target]; } diff --git a/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts b/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts new file mode 100644 index 00000000000..cb5e702dc90 --- /dev/null +++ b/tests/cases/fourslash/findAllRefsForObjectLiteralProperties.ts @@ -0,0 +1,20 @@ +/// + +////var x = { +//// [|property|]: {} +////}; +//// +////x.[|property|]; +//// +////let {[|property|]: pVar} = x; + + +let ranges = test.ranges(); +for (let range of ranges) { + goTo.position(range.start); + + verify.referencesCountIs(ranges.length); + for (let expectedReference of ranges) { + verify.referencesAtPositionContains(expectedReference); + } +} \ No newline at end of file