diff --git a/packages/compiler/src/aot/summary_resolver.ts b/packages/compiler/src/aot/summary_resolver.ts index a78f088c8c..0f2c1f855e 100644 --- a/packages/compiler/src/aot/summary_resolver.ts +++ b/packages/compiler/src/aot/summary_resolver.ts @@ -65,13 +65,15 @@ export class AotSummaryResolver implements SummaryResolver { } resolveSummary(staticSymbol: StaticSymbol): Summary|null { - staticSymbol.assertNoMembers(); - let summary = this.summaryCache.get(staticSymbol); + const rootSymbol = staticSymbol.members.length ? + this.staticSymbolCache.get(staticSymbol.filePath, staticSymbol.name) : + staticSymbol; + let summary = this.summaryCache.get(rootSymbol); if (!summary) { this._loadSummaryFile(staticSymbol.filePath); summary = this.summaryCache.get(staticSymbol) !; } - return summary || null; + return (rootSymbol === staticSymbol && summary) || null; } getSymbolsOf(filePath: string): StaticSymbol[]|null { diff --git a/packages/compiler/test/aot/summary_resolver_spec.ts b/packages/compiler/test/aot/summary_resolver_spec.ts index efff637a50..87832a1539 100644 --- a/packages/compiler/test/aot/summary_resolver_spec.ts +++ b/packages/compiler/test/aot/summary_resolver_spec.ts @@ -95,6 +95,15 @@ export function main() { expect(host.isSourceFile).toHaveBeenCalledWith('someFile.ts'); }); }); + + describe('regression', () => { + // #18170 + it('should support resolving symbol with members ', () => { + init(); + expect(summaryResolver.resolveSummary(symbolCache.get('/src.d.ts', 'Src', ['One', 'Two']))) + .toBeNull(); + }); + }); }); }