tupleTypeForSizesTypesDefaultType

fun tupleTypeForSizesTypesDefaultType(    sizeRange: A_Type,     typeTuple: A_Tuple,     defaultType: A_Type): A_Type

Create the tuple type specified by the arguments. The size range indicates the allowable tuple sizes for conforming tuples, the type tuple indicates the types of leading elements (if a conforming tuple is long enough to include those indices), and the default type is the type of the remaining elements. Canonize the tuple type to the simplest representation that includes exactly those tuples that a naive tuple type constructed from these parameters would include. In particular, if no tuples are possible then answer bottom, otherwise remove any final occurrences of the default from the end of the type tuple, trimming it to no more than the maximum size in the range.

Return

A canonized tuple type with the specified properties.

Parameters

sizeRange

The allowed sizes of conforming tuples.

typeTuple

The types of the initial elements of conforming tuples.

defaultType

The type of remaining elements of conforming tuples.