(node, valueUsage)
| 161448 | } |
| 161449 | } |
| 161450 | function collectUsages(node, valueUsage) { |
| 161451 | if (valueUsage === void 0) { valueUsage = 1 /* Usage.Read */; } |
| 161452 | if (inGenericContext) { |
| 161453 | var type = checker.getTypeAtLocation(node); |
| 161454 | recordTypeParameterUsages(type); |
| 161455 | } |
| 161456 | if (ts.isDeclaration(node) && node.symbol) { |
| 161457 | visibleDeclarationsInExtractedRange.push(node); |
| 161458 | } |
| 161459 | if (ts.isAssignmentExpression(node)) { |
| 161460 | // use 'write' as default usage for values |
| 161461 | collectUsages(node.left, 2 /* Usage.Write */); |
| 161462 | collectUsages(node.right); |
| 161463 | } |
| 161464 | else if (ts.isUnaryExpressionWithWrite(node)) { |
| 161465 | collectUsages(node.operand, 2 /* Usage.Write */); |
| 161466 | } |
| 161467 | else if (ts.isPropertyAccessExpression(node) || ts.isElementAccessExpression(node)) { |
| 161468 | // use 'write' as default usage for values |
| 161469 | ts.forEachChild(node, collectUsages); |
| 161470 | } |
| 161471 | else if (ts.isIdentifier(node)) { |
| 161472 | if (!node.parent) { |
| 161473 | return; |
| 161474 | } |
| 161475 | if (ts.isQualifiedName(node.parent) && node !== node.parent.left) { |
| 161476 | return; |
| 161477 | } |
| 161478 | if (ts.isPropertyAccessExpression(node.parent) && node !== node.parent.expression) { |
| 161479 | return; |
| 161480 | } |
| 161481 | recordUsage(node, valueUsage, /*isTypeNode*/ ts.isPartOfTypeNode(node)); |
| 161482 | } |
| 161483 | else { |
| 161484 | ts.forEachChild(node, collectUsages); |
| 161485 | } |
| 161486 | } |
| 161487 | function recordUsage(n, usage, isTypeNode) { |
| 161488 | var symbolId = recordUsagebySymbol(n, usage, isTypeNode); |
| 161489 | if (symbolId) { |
no test coverage detected