(expression, checker)
| 150527 | }; |
| 150528 | } |
| 150529 | function getIdentifiersFromErrorSpanExpression(expression, checker) { |
| 150530 | if (ts.isPropertyAccessExpression(expression.parent) && ts.isIdentifier(expression.parent.expression)) { |
| 150531 | return { identifiers: [expression.parent.expression], isCompleteFix: true }; |
| 150532 | } |
| 150533 | if (ts.isIdentifier(expression)) { |
| 150534 | return { identifiers: [expression], isCompleteFix: true }; |
| 150535 | } |
| 150536 | if (ts.isBinaryExpression(expression)) { |
| 150537 | var sides = void 0; |
| 150538 | var isCompleteFix = true; |
| 150539 | for (var _i = 0, _a = [expression.left, expression.right]; _i < _a.length; _i++) { |
| 150540 | var side = _a[_i]; |
| 150541 | var type = checker.getTypeAtLocation(side); |
| 150542 | if (checker.getPromisedTypeOfPromise(type)) { |
| 150543 | if (!ts.isIdentifier(side)) { |
| 150544 | isCompleteFix = false; |
| 150545 | continue; |
| 150546 | } |
| 150547 | (sides || (sides = [])).push(side); |
| 150548 | } |
| 150549 | } |
| 150550 | return sides && { identifiers: sides, isCompleteFix: isCompleteFix }; |
| 150551 | } |
| 150552 | } |
| 150553 | function symbolReferenceIsAlsoMissingAwait(reference, diagnostics, sourceFile, checker) { |
| 150554 | var errorNode = ts.isPropertyAccessExpression(reference.parent) ? reference.parent.name : |
| 150555 | ts.isBinaryExpression(reference.parent) ? reference.parent : |
no test coverage detected