fix(35043): TS Server: references does not mark isDefinition o… (#36051)

This commit is contained in:
Alexander T
2020-01-18 00:26:36 +02:00
committed by Daniel Rosenwasser
parent ce4c4b6183
commit 94e8db7e07
9 changed files with 22 additions and 17 deletions

View File

@@ -337,9 +337,7 @@ namespace ts.FindAllReferences {
return {
...documentSpan,
isWriteAccess: isWriteAccessForReference(node),
isDefinition: node.kind === SyntaxKind.DefaultKeyword
|| !!getDeclarationFromName(node)
|| isLiteralComputedPropertyDeclarationName(node),
isDefinition: isDefinitionForReference(node),
isInString: kind === EntryKind.StringLiteral ? true : undefined,
};
}
@@ -470,6 +468,13 @@ namespace ts.FindAllReferences {
return !!decl && declarationIsWriteAccess(decl) || node.kind === SyntaxKind.DefaultKeyword || isWriteAccess(node);
}
function isDefinitionForReference(node: Node): boolean {
return node.kind === SyntaxKind.DefaultKeyword
|| !!getDeclarationFromName(node)
|| isLiteralComputedPropertyDeclarationName(node)
|| (node.kind === SyntaxKind.ConstructorKeyword && isConstructorDeclaration(node.parent));
}
/**
* True if 'decl' provides a value, as in `function f() {}`;
* false if 'decl' is just a location for a future write, as in 'let x;'