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

Function instantiateMappedGenericTupleType

test/fixtures/snapshot/typescript.js:63541–63556  ·  view source on GitHub ↗
(tupleType, mappedType, typeVariable, mapper)

Source from the content-addressed store, hash-verified

63539 return modifiers & 1 /* MappedTypeModifiers.IncludeReadonly */ ? true : modifiers & 2 /* MappedTypeModifiers.ExcludeReadonly */ ? false : state;
63540 }
63541 function instantiateMappedGenericTupleType(tupleType, mappedType, typeVariable, mapper) {
63542 // When a tuple type is generic (i.e. when it contains variadic elements), we want to eagerly map the
63543 // non-generic elements and defer mapping the generic elements. In order to facilitate this, we transform
63544 // M<[A, B?, ...T, ...C[]] into [...M<[A]>, ...M<[B?]>, ...M<T>, ...M<C[]>] and then rely on tuple type
63545 // normalization to resolve the non-generic parts of the resulting tuple.
63546 var elementFlags = tupleType.target.elementFlags;
63547 var elementTypes = ts.map(getTypeArguments(tupleType), function (t, i) {
63548 var singleton = elementFlags[i] & 8 /* ElementFlags.Variadic */ ? t :
63549 elementFlags[i] & 4 /* ElementFlags.Rest */ ? createArrayType(t) :
63550 createTupleType([t], [elementFlags[i]]);
63551 // The singleton is never a generic tuple type, so it is safe to recurse here.
63552 return instantiateMappedType(mappedType, prependTypeMapping(typeVariable, singleton, mapper));
63553 });
63554 var newReadonly = getModifiedReadonlyState(tupleType.target.readonly, getMappedTypeModifiers(mappedType));
63555 return createTupleType(elementTypes, ts.map(elementTypes, function (_) { return 8 /* ElementFlags.Variadic */; }), newReadonly);
63556 }
63557 function instantiateMappedArrayType(arrayType, mappedType, mapper) {
63558 var elementType = instantiateMappedTypeTemplate(mappedType, numberType, /*isOptional*/ true, mapper);
63559 return isErrorType(elementType) ? errorType :

Callers 1

instantiateMappedTypeFunction · 0.85

Calls 8

getTypeArgumentsFunction · 0.85
createArrayTypeFunction · 0.85
createTupleTypeFunction · 0.85
instantiateMappedTypeFunction · 0.85
prependTypeMappingFunction · 0.85
getModifiedReadonlyStateFunction · 0.85
getMappedTypeModifiersFunction · 0.85
mapMethod · 0.65

Tested by

no test coverage detected