MCPcopy Index your code
hub / github.com/nodejs/node / checkAndAggregateYieldOperandTypes

Function checkAndAggregateYieldOperandTypes

test/fixtures/snapshot/typescript.js:77940–77959  ·  view source on GitHub ↗
(func, checkMode)

Source from the content-addressed store, hash-verified

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

Callers 1

getReturnTypeFromBodyFunction · 0.85

Calls 4

getContextualTypeFunction · 0.85
checkExpressionFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…