(func, checkMode)
| 77938 | return createTypeFromGenericGlobalType(globalGeneratorType, [yieldType, returnType, nextType]); |
| 77939 | } |
| 77940 | function checkAndAggregateYieldOperandTypes(func, checkMode) { |
| 77941 | var yieldTypes = []; |
| 77942 | var nextTypes = []; |
| 77943 | var isAsync = (ts.getFunctionFlags(func) & 2 /* FunctionFlags.Async */) !== 0; |
| 77944 | ts.forEachYieldExpression(func.body, function (yieldExpression) { |
| 77945 | var yieldExpressionType = yieldExpression.expression ? checkExpression(yieldExpression.expression, checkMode) : undefinedWideningType; |
| 77946 | ts.pushIfUnique(yieldTypes, getYieldedTypeOfYieldExpression(yieldExpression, yieldExpressionType, anyType, isAsync)); |
| 77947 | var nextType; |
| 77948 | if (yieldExpression.asteriskToken) { |
| 77949 | var iterationTypes = getIterationTypesOfIterable(yieldExpressionType, isAsync ? 19 /* IterationUse.AsyncYieldStar */ : 17 /* IterationUse.YieldStar */, yieldExpression.expression); |
| 77950 | nextType = iterationTypes && iterationTypes.nextType; |
| 77951 | } |
| 77952 | else { |
| 77953 | nextType = getContextualType(yieldExpression); |
| 77954 | } |
| 77955 | if (nextType) |
| 77956 | ts.pushIfUnique(nextTypes, nextType); |
| 77957 | }); |
| 77958 | return { yieldTypes: yieldTypes, nextTypes: nextTypes }; |
| 77959 | } |
| 77960 | function getYieldedTypeOfYieldExpression(node, expressionType, sentType, isAsync) { |
| 77961 | var errorNode = node.expression || node; |
| 77962 | // A `yield*` expression effectively yields everything that its operand yields |
no test coverage detected
searching dependent graphs…