Skip to content

Commit

Permalink
fix(compiler-cli): Pass SourceFile to getLeadingTriviaWidth (#33588)
Browse files Browse the repository at this point in the history
This commit fixes a crash in the Angular Kythe indexer caused by failure
to retrieve `SourceFile` in a `Statement`.

Crash logs:
  TypeError: Cannot read property 'text' of undefined
    at Object.getTokenPosOfNode (typescript/stable/lib/typescript.js:8957:72)
    at NodeObject.getStart (typescript/stable/lib/typescript.js:121419:23)
    at NodeObject.getLeadingTriviaWidth (typescript/stable/lib/typescript.js:121439:25)
    at FactoryGenerator.generate (angular2/rc/packages/compiler-cli/src/ngtsc/shims/src/factory_generator.ts:64:49)
    at GeneratedShimsHostWrapper.getSourceFile (angular2/rc/packages/compiler-cli/src/ngtsc/shims/src/host.ts:88:26)
    at findSourceFile (typescript/stable/lib/typescript.js:90654:29)
    at typescript/stable/lib/typescript.js:90553:85
    at getSourceFileFromReferenceWorker (typescript/stable/lib/typescript.js:90520:34)
    at processSourceFile (typescript/stable/lib/typescript.js:90553:13)
    at processRootFile (typescript/stable/lib/typescript.js:90383:13)

PR Close #33588
  • Loading branch information
kyliau authored and atscott committed Nov 5, 2019
1 parent 0addaab commit 4b62ba9
Showing 1 changed file with 6 additions and 2 deletions.
Expand Up @@ -59,8 +59,12 @@ export class FactoryGenerator implements ShimGenerator {
let comment: string = '';
if (original.statements.length > 0) {
const firstStatement = original.statements[0];
if (firstStatement.getLeadingTriviaWidth() > 0) {
comment = firstStatement.getFullText().substr(0, firstStatement.getLeadingTriviaWidth());
// Must pass SourceFile to getLeadingTriviaWidth(), otherwise it'll try to
// get SourceFile by recursively looking up the parent of the Node and fail,
// because parent is undefined.
const leadingTriviaWidth = firstStatement.getLeadingTriviaWidth(original);
if (leadingTriviaWidth > 0) {
comment = firstStatement.getFullText().substr(0, leadingTriviaWidth);
}
}

Expand Down

0 comments on commit 4b62ba9

Please sign in to comment.