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

Function inferTypeParameters

test/fixtures/snapshot/typescript.js:157434–157461  ·  view source on GitHub ↗
(genericType, usageType, typeParameter)

Source from the content-addressed store, hash-verified

157432 return builtinConstructors[type.symbol.escapedName](combineTypes(types));
157433 }
157434 function inferTypeParameters(genericType, usageType, typeParameter) {
157435 if (genericType === typeParameter) {
157436 return [usageType];
157437 }
157438 else if (genericType.flags & 3145728 /* TypeFlags.UnionOrIntersection */) {
157439 return ts.flatMap(genericType.types, function (t) { return inferTypeParameters(t, usageType, typeParameter); });
157440 }
157441 else if (ts.getObjectFlags(genericType) & 4 /* ObjectFlags.Reference */ && ts.getObjectFlags(usageType) & 4 /* ObjectFlags.Reference */) {
157442 // this is wrong because we need a reference to the targetType to, so we can check that it's also a reference
157443 var genericArgs = checker.getTypeArguments(genericType);
157444 var usageArgs = checker.getTypeArguments(usageType);
157445 var types = [];
157446 if (genericArgs && usageArgs) {
157447 for (var i = 0; i < genericArgs.length; i++) {
157448 if (usageArgs[i]) {
157449 types.push.apply(types, inferTypeParameters(genericArgs[i], usageArgs[i], typeParameter));
157450 }
157451 }
157452 }
157453 return types;
157454 }
157455 var genericSigs = checker.getSignaturesOfType(genericType, 0 /* SignatureKind.Call */);
157456 var usageSigs = checker.getSignaturesOfType(usageType, 0 /* SignatureKind.Call */);
157457 if (genericSigs.length === 1 && usageSigs.length === 1) {
157458 return inferFromSignatures(genericSigs[0], usageSigs[0], typeParameter);
157459 }
157460 return [];
157461 }
157462 function inferFromSignatures(genericSig, usageSig, typeParameter) {
157463 var types = [];
157464 for (var i = 0; i < genericSig.parameters.length; i++) {

Callers 2

inferFromSignaturesFunction · 0.85

Calls 3

inferFromSignaturesFunction · 0.85
flatMapMethod · 0.80
applyMethod · 0.45

Tested by

no test coverage detected