Skip to content

Commit eaeeb06

Browse files
committed
Handle when declarationSpan from declarationNode is undefined
1 parent 424f2c9 commit eaeeb06

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/services/goToDefinition.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -273,18 +273,21 @@ namespace ts.GoToDefinition {
273273
function createDefinitionInfoFromName(declaration: Declaration, symbolKind: ScriptElementKind, symbolName: string, containerName: string): DefinitionInfo {
274274
const name = getNameOfDeclaration(declaration) || declaration;
275275
const sourceFile = name.getSourceFile();
276-
const declarationNode = FindAllReferences.getDeclarationForDeclarationSpan(declaration)!;
277-
return {
276+
const result: DefinitionInfo = {
278277
fileName: sourceFile.fileName,
279278
textSpan: createTextSpanFromNode(name, sourceFile),
280279
kind: symbolKind,
281280
name: symbolName,
282281
containerKind: undefined!, // TODO: GH#18217
283282
containerName,
284-
declarationSpan: FindAllReferences.isDeclarationNodeWithStartAndEnd(declarationNode) ?
285-
createTextSpanFromNode(declarationNode.start, sourceFile, declarationNode.end) :
286-
createTextSpanFromNode(declarationNode, sourceFile),
287283
};
284+
const declarationNode = FindAllReferences.getDeclarationForDeclarationSpan(declaration);
285+
if (declarationNode) {
286+
result.declarationSpan = FindAllReferences.isDeclarationNodeWithStartAndEnd(declarationNode) ?
287+
createTextSpanFromNode(declarationNode.start, sourceFile, declarationNode.end) :
288+
createTextSpanFromNode(declarationNode, sourceFile);
289+
}
290+
return result;
288291
}
289292

290293
function createDefinitionFromSignatureDeclaration(typeChecker: TypeChecker, decl: SignatureDeclaration): DefinitionInfo {

0 commit comments

Comments
 (0)