allow typeof this after for-loops (#46181)

This commit is contained in:
Zzzen
2021-10-28 01:26:05 +08:00
committed by GitHub
parent f424dfc18a
commit 8a68c8616d
6 changed files with 170 additions and 2 deletions

View File

@@ -22496,8 +22496,11 @@ namespace ts {
function getFlowCacheKey(node: Node, declaredType: Type, initialType: Type, flowContainer: Node | undefined): string | undefined {
switch (node.kind) {
case SyntaxKind.Identifier:
const symbol = getResolvedSymbol(node as Identifier);
return symbol !== unknownSymbol ? `${flowContainer ? getNodeId(flowContainer) : "-1"}|${getTypeId(declaredType)}|${getTypeId(initialType)}|${getSymbolId(symbol)}` : undefined;
if (!isThisInTypeQuery(node)) {
const symbol = getResolvedSymbol(node as Identifier);
return symbol !== unknownSymbol ? `${flowContainer ? getNodeId(flowContainer) : "-1"}|${getTypeId(declaredType)}|${getTypeId(initialType)}|${getSymbolId(symbol)}` : undefined;
}
// falls through
case SyntaxKind.ThisKeyword:
return `0|${flowContainer ? getNodeId(flowContainer) : "-1"}|${getTypeId(declaredType)}|${getTypeId(initialType)}`;
case SyntaxKind.NonNullExpression: